Brian Paul wrote: > Thomas & Jose, I think you are most familiar with this code... > > The attached patch fixes a bug I found with softpipe and > glDrawPixels(GL_STENCIL_INDEX). > > The failing case was basically: > > glClear(GL_STENCIL_BUFFER_BIT); > ... > glDrawPixels(GL_STENCIL_INDEX). > > Drawing stencil images is done by mapping the stencil buffer, writing > the stencil values then unmapping the stencil buffer. > > With softpipe, a glClear() call just sets tile 'clear' flags; it > doesn't actually write to the framebuffer. > > So when we mapped the stencil buffer to do the glDrawPixels we weren't > getting the glClear()'d values. Later, the tile cache was getting > flushed and that would overwrite the glDrawPixels() values. > > The attached patch flushes the driver's render cache when we get a > pipe_transfer object. Also, I think the > PIPE_TEXTURE_USAGE_RENDER_TARGET flag needs to be set on the z/stencil > buffer (since we do render to it). > > -Brian > > Hi, Brian.
The conditional flush mechanism is such that when a driver has "buffered" an operation without flushing it to the "hardware", it should indicate that to the state-tracker. Typically in the HW driver case that means that commands have been queued in a batch buffer that is not yet flushed. However, if there is a pending clear in the softpipe driver, it should perhaps indicate that to the state-tracker, and the conditional flush code in st_teximage_flush_before_map() would take care of the flush. I think that would be the solution which is most consistent with how the HW drivers work. I've had the discussion about PIPE_TEXTURE_USAGE_RENDER_TARGET with Keith and José before (for the dri state tracker) and IIRC the meaning of that define is strictly color render target. It really comes down to whether we define RENDER_TARGET as anything being written to or any color buffer being written to. Currently I think it's the latter. /Thomas ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev