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
