Keith Whitwell wrote:
> On Thu, 2009-03-05 at 08:45 -0800, Michel Dänzer wrote:
>> Note that I think this won't necessarily avoid the flushes, as the
>> render target will likely change before/after the surface_copy().

Flushing colorbuffer cache because of a colorbuffer change can be done
in a few dwords and doesn't require a CS flush. Switching from 3D to 2D
requires two CS flushes and a WAIT_UNTIL.

>> The comment above util_blit_pixels_tex() says
>>
>>  * Overlapping regions are acceptable.

Right, because it can create a temporary surface and do two blits. I
don't have that kind of freedom in the pipe because I have to write my
own CSO whenever I do that.

>> Although util_blit_pixels_tex may not be usable directly, if feasible I
>> think it would be nice to have some kind of default surface_copy
>> implementation using a textured quad, so that doesn't need to be
>> re-implemented in each driver.
>>
> 
> Agreed.  In particular it should be possible for drivers to "play with
> themselves" during these types of operations, and then have a parental
> figure come in and clean things up afterwards.  

With r300 I just mark invalidated CSO state as dirty so it will be
re-emitted during the next non-custom render call. It would be a lot
better if state trackers knew how to break down some of these calls into
lower-level constructs. (surface_fill is done by rendering a point,
surface_copy by rendering a quad, etc....)

~ C.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to