Bug 5840

Summary: Mesa does not remove no-op state changes occuring outside rendering commands
Product: Mesa Reporter: Aapo Tahkola <aet>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED WONTFIX QA Contact:
Severity: enhancement    
Priority: low CC: glisse
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Test program

Description Aapo Tahkola 2006-02-09 00:29:06 UTC
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.
Comment 1 Aapo Tahkola 2006-02-09 00:34:40 UTC
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
Comment 2 Brian Paul 2006-02-19 06:25:24 UTC
In the future, we may be implementing a more elaborate state-tracking mechanism
which would avoid problems like this.
Comment 3 Adam Jackson 2008-02-24 18:22:21 UTC
Mass reopen.  The "LATER" resolution is lame, I'm deleting it.  Consider LATER to have arrived.
Comment 4 Corbin Simpson 2010-03-27 04:40:14 UTC
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.