I guess this puts an end to one witch hunt. As far as I can see, fixing this inside Mesa would make state atom system used in radeon disappear as it wouldnt serve any use. Instead, the state would be fetched in prior to rendering. This might however be little problematic as certain regs (might) need to be written in some defined order. Another solution would be to have low level state machine that sits in drm or user space. In theory it might be possible to systematicly provide protection against DOS attacks as the hardware state is always known. (It is very common that certain register value is only valid in conjunction with rest of the hardware state) Caveat of this is obviously the amount of extra CPU overhead.
Created attachment 4579 [details] Test program Program representing a typical rendering sequence used in many applications. Taking out the offending bits yells speed boost of ~10x
In the future, we may be implementing a more elaborate state-tracking mechanism which would avoid problems like this.
Mass reopen. The "LATER" resolution is lame, I'm deleting it. Consider LATER to have arrived.
Between Gallium and the planned GL 3.x support not depending on Mesa, I'd say that this isn't really a serious problem anymore, but feel free to re-open if you think I'm being a tool.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.