On Fri, 2010-04-09 at 09:02 -0700, Keith Whitwell wrote: > On Fri, 2010-04-09 at 08:59 -0700, Roland Scheidegger wrote: > > On 09.04.2010 17:49, Keith Whitwell wrote: > > > On Fri, 2010-04-09 at 08:45 -0700, Roland Scheidegger wrote: > > >> Module: Mesa > > >> Branch: gallium-resources > > >> Commit: faf53328d1154c51d8a59513f2bfcae62272b0bf > > >> URL: > > >> http://cgit.freedesktop.org/mesa/mesa/commit/?id=faf53328d1154c51d8a59513f2bfcae62272b0bf > > >> > > >> Author: Roland Scheidegger <srol...@vmware.com> > > >> Date: Fri Apr 9 17:44:24 2010 +0200 > > >> > > >> gallium: fix comments for changed USAGE flags > > >> > > >> --- > > >> > > >> src/gallium/auxiliary/util/u_simple_screen.h | 9 +++++---- > > >> src/gallium/drivers/svga/svga_winsys.h | 10 ++++------ > > >> src/gallium/include/pipe/p_screen.h | 2 +- > > >> src/gallium/include/state_tracker/sw_winsys.h | 2 +- > > >> 4 files changed, 11 insertions(+), 12 deletions(-) > > >> > > >> diff --git a/src/gallium/auxiliary/util/u_simple_screen.h > > >> b/src/gallium/auxiliary/util/u_simple_screen.h > > >> index 0042277..1ba59af 100644 > > >> --- a/src/gallium/auxiliary/util/u_simple_screen.h > > >> +++ b/src/gallium/auxiliary/util/u_simple_screen.h > > >> @@ -73,9 +73,10 @@ struct pipe_winsys > > >> * window systems must then implement that interface (rather than the > > >> * other way around...). > > >> * > > >> - * usage is a bitmask of > > >> PIPE_BUFFER_USAGE_PIXEL/VERTEX/INDEX/CONSTANT. This > > >> - * usage argument is only an optimization hint, not a guarantee, > > >> therefore > > >> - * proper behavior must be observed in all circumstances. > > >> + * usage is a bitmask of PIPE_BIND_*. > > >> + * XXX is this true? > > >> + * This usage argument is only an optimization hint, not a guarantee, > > >> + * therefore proper behavior must be observed in all circumstances. > > > > > > The new flags are no longer hints - they are supposed actually specify > > > which operations are permitted on a resource. > > > > > > Unfortunately I don't think this is very well enforced yet -- I intend > > > to add a "debug" layer to sit between state-tracker and driver, based on > > > the drivers/identity layer, which will check for violations of this & > > > other rules. > > > > Ok, I thought this to be the case, but wasn't sure. I'll fix the comment. > > In the svga code, I actually couldn't figure out the usage flags when a > > winsys buffer is created. It looks like usage is always 0, except for > > queries it uses SVGA_BUFFER_USAGE_PINNED. Of course, that's not a > > resource but a winsys buffer, but as far as I can tell this ends up in a > > pb_buffer usage flag. Not sure if that's ok or supposed to be like that... > > Jose has looked at this more recently than I have...
pb_buffer sits between pipe driver and the winsys, and needs to pass custom buffer flags unmodified from svga to the winsys. SVGA_BUFFER_USAGE_PINNED is one of those usages. PIPE_BIND_* don't matter at this level. What matters at the pipebuffer level is CPU/GPU READ/WRITE flags. Perhaps it might make sense to modify pipebuffer and its users to use pipebuffer specifc PB_BUFFER_*** flags instead of the gallium ones. Jose ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev