On Tue, Jan 17, 2012 at 5:29 PM, Ian Romanick <[email protected]> wrote: > From: Ian Romanick <[email protected]> > > The default access flags for OpenGL ES (via GL_OES_map_buffer) and > desktop OpenGL are different. The code previously tried to handle > this, but the decision was made at compile time. Since the same > driver binary can be used for both OpenGL ES and desktop OpenGL, the > decision must be made at run-time. > > This should fix bug #44433. It appears that the test case does > various map and unmap operations and inspects the state of the buffer > object around each. When it sees that GL_BUFFER_ACCESS does not match > its expectations, it fails. > > Signed-off-by: Ian Romanick <[email protected]> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44433 > --- > src/mesa/drivers/dri/intel/intel_buffer_objects.c | 2 +- > src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c | 2 +- > .../drivers/dri/radeon/radeon_buffer_objects.c | 2 +- > src/mesa/main/bufferobj.c | 21 +++++++++---------- > src/mesa/main/bufferobj.h | 3 +- > src/mesa/state_tracker/st_cb_bufferobjects.c | 2 +- > 6 files changed, 16 insertions(+), 16 deletions(-) > > diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c > b/src/mesa/drivers/dri/intel/intel_buffer_objects.c > index 03dd179..600f01c 100644 > --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c > +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c > @@ -72,7 +72,7 @@ intel_bufferobj_alloc(struct gl_context * ctx, GLuint name, > GLenum target) > { > struct intel_buffer_object *obj = CALLOC_STRUCT(intel_buffer_object); > > - _mesa_initialize_buffer_object(&obj->Base, name, target); > + _mesa_initialize_buffer_object(ctx, &obj->Base, name, target); > > obj->buffer = NULL; > > diff --git a/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c > b/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c > index dc5b152..f7ad895 100644 > --- a/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c > +++ b/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c > @@ -56,7 +56,7 @@ nouveau_bufferobj_new(struct gl_context *ctx, GLuint > buffer, GLenum target) > if (!nbo) > return NULL; > > - _mesa_initialize_buffer_object(&nbo->base, buffer, target); > + _mesa_initialize_buffer_object(ctx, &nbo->base, buffer, target); > > return &nbo->base; > } > diff --git a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > index 7b59c03..5abc52b 100644 > --- a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > +++ b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > @@ -46,7 +46,7 @@ radeonNewBufferObject(struct gl_context * ctx, > { > struct radeon_buffer_object *obj = CALLOC_STRUCT(radeon_buffer_object); > > - _mesa_initialize_buffer_object(&obj->Base, name, target); > + _mesa_initialize_buffer_object(ctx, &obj->Base, name, target); > > obj->bo = NULL; > > diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c > index 5f8071f..6ac2092 100644 > --- a/src/mesa/main/bufferobj.c > +++ b/src/mesa/main/bufferobj.c > @@ -49,11 +49,9 @@ > /*#define BOUNDS_CHECK*/ > > > -#if FEATURE_OES_mapbuffer > -#define DEFAULT_ACCESS GL_MAP_WRITE_BIT > -#else > -#define DEFAULT_ACCESS (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT) > -#endif > +#define DEFAULT_ACCESS(ctx) \ > + (ctx->API == API_OPENGLES) \ > + ? GL_MAP_WRITE_BIT : (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT);
How about changing the macro to an inline function? -Brian _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
