On Mon, Aug 22, 2011 at 3:33 AM, Ian Romanick <[email protected]> wrote: > From: Ian Romanick <[email protected]> > > This doesn't implement any of the "cool" features of MapBufferRange. > Adding this function is necessary for the next commit in the series. >
Looks ok to me. Reviewed-by: Alex Deucher <[email protected]> > Cc: Maciej Cencora <[email protected]> > Cc: Alex Deucher <[email protected]> > --- > .../drivers/dri/radeon/radeon_buffer_objects.c | 33 > ++++++++++++++++++++ > 1 files changed, 33 insertions(+), 0 deletions(-) > > diff --git a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > index ee63436..e106d98 100644 > --- a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > +++ b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c > @@ -198,6 +198,38 @@ radeonMapBuffer(struct gl_context * ctx, > > > /** > + * Called via glMapBufferRange() > + */ > +static void * > +radeonMapBufferRange(struct gl_context * ctx, > + GLintptr offset, GLsizeiptr length, > + GLbitfield access, struct gl_buffer_object *obj) > +{ > + struct radeon_buffer_object *radeon_obj = get_radeon_buffer_object(obj); > + const GLboolean write_only = > + (access & (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT)) == GL_MAP_WRITE_BIT; > + > + if (write_only) { > + ctx->Driver.Flush(ctx); > + } > + > + if (radeon_obj->bo == NULL) { > + obj->Pointer = NULL; > + return NULL; > + } > + > + obj->Offset = offset; > + obj->Length = length; > + obj->AccessFlags = access; > + > + radeon_bo_map(radeon_obj->bo, write_only); > + > + obj->Pointer = radeon_obj->bo->ptr + offset; > + return obj->Pointer; > +} > + > + > +/** > * Called via glUnmapBufferARB() > */ > static GLboolean > @@ -226,5 +258,6 @@ radeonInitBufferObjectFuncs(struct dd_function_table > *functions) > functions->BufferSubData = radeonBufferSubData; > functions->GetBufferSubData = radeonGetBufferSubData; > functions->MapBuffer = radeonMapBuffer; > + functions->MapBufferRange = radeonMapBufferRange; > functions->UnmapBuffer = radeonUnmapBuffer; > } > -- > 1.7.4.4 > > _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
