(In reply to Markus Stange [:mstange] from comment #7) > Ah, nice, that probably explains why the testcase I attached to this bug runs much better today than when I filed this bug. > > Then I wonder how the overproduction problem shown in the profiles from bug 1879824 comment 7 can be addressed. Do we have to dynamically adapt the maximum size based on the observed consumption rate? Possibly, if I drop the max buffers to 64 or even 32 for bug 1879824, the animation appears to run more smoothly. It might be good if we had a more intelligent way of throttling the JS in these circumstances, instead of stopping the main thread in its tracks. I can't work out why it is so slow. The CPU is doing a fair amount of work, but doesn't appear to be maxing out on one thread. The GPU also doesn't appear that taxed, with a small amount on one of the smaller engines in process explorer. It mainly seems to be sitting in the function FillRoundedRectangleTessellator::SendGeometry and below, most of that in RoundedRectangleTessellationSink::AddBeziers and below.
Bug 1831609 Comment 8 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
(In reply to Markus Stange [:mstange] from comment #7) > Ah, nice, that probably explains why the testcase I attached to this bug runs much better today than when I filed this bug. > > Then I wonder how the overproduction problem shown in the profiles from bug 1879824 comment 7 can be addressed. Do we have to dynamically adapt the maximum size based on the observed consumption rate? Possibly, if I drop the max buffers to 64 or even 32 for bug 1879824, the animation appears to run more smoothly. It might be good if we had a more intelligent way of throttling the JS in these circumstances, instead of stopping the main thread in its tracks. I can't work out why it is so slow. The CPU is doing a fair amount of work, but doesn't appear to be maxing out on one thread. The GPU also doesn't appear that taxed, with a small amount on one of the smaller engines in process explorer. It mainly seems to be sitting in the function FillRoundedRectangleTessellator::SendGeometry and below, most of that in RoundedRectangleTessellationSink::AddBeziers and below. Update: to future readers, looks like the reasons are set out in bug 1879824 comment 11 and bugs that it links to.