Re: [Mesa-dev] [PATCH 10/23] main: Add entry point for CopyNamedBufferSubData.
Looks good to me. Reviewed-by: Martin Peres martin.pe...@linux.intel.com On 12/02/2015 04:05, Laura Ekstrand wrote: v2: remove _mesa in front of static software fallback. --- src/mapi/glapi/gen/ARB_direct_state_access.xml | 8 +++ src/mesa/main/bufferobj.c | 99 +- src/mesa/main/bufferobj.h | 12 src/mesa/main/tests/dispatch_sanity.cpp| 1 + 4 files changed, 87 insertions(+), 33 deletions(-) diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index 6d70b8e..042b2a8 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -35,6 +35,14 @@ param name=data type=const GLvoid * / /function + function name=CopyNamedBufferSubData offset=assign + param name=readBuffer type=GLuint / + param name=writeBuffer type=GLuint / + param name=readOffset type=GLintptr / + param name=writeOffset type=GLintptr / + param name=size type=GLsizeiptr / + /function + !-- Texture object functions -- function name=CreateTextures offset=assign diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index fc01d02..7225b64 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -761,11 +761,11 @@ _mesa_buffer_unmap(struct gl_context *ctx, struct gl_buffer_object *bufObj, * Called via glCopyBufferSubData(). */ static void -_mesa_copy_buffer_subdata(struct gl_context *ctx, - struct gl_buffer_object *src, - struct gl_buffer_object *dst, - GLintptr readOffset, GLintptr writeOffset, - GLsizeiptr size) +copy_buffer_sub_data_fallback(struct gl_context *ctx, + struct gl_buffer_object *src, + struct gl_buffer_object *dst, + GLintptr readOffset, GLintptr writeOffset, + GLsizeiptr size) { GLubyte *srcPtr, *dstPtr; @@ -1120,7 +1120,7 @@ _mesa_init_buffer_object_functions(struct dd_function_table *driver) driver-FlushMappedBufferRange = _mesa_buffer_flush_mapped_range; /* GL_ARB_copy_buffer */ - driver-CopyBufferSubData = _mesa_copy_buffer_subdata; + driver-CopyBufferSubData = copy_buffer_sub_data_fallback; } @@ -2101,65 +2101,54 @@ _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params) } -void GLAPIENTRY -_mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget, -GLintptr readOffset, GLintptr writeOffset, -GLsizeiptr size) +void +_mesa_copy_buffer_sub_data(struct gl_context *ctx, + struct gl_buffer_object *src, + struct gl_buffer_object *dst, + GLintptr readOffset, GLintptr writeOffset, + GLsizeiptr size, const char *func) { - GET_CURRENT_CONTEXT(ctx); - struct gl_buffer_object *src, *dst; - - src = get_buffer(ctx, glCopyBufferSubData, readTarget, -GL_INVALID_OPERATION); - if (!src) - return; - - dst = get_buffer(ctx, glCopyBufferSubData, writeTarget, -GL_INVALID_OPERATION); - if (!dst) - return; - if (_mesa_check_disallowed_mapping(src)) { _mesa_error(ctx, GL_INVALID_OPERATION, - glCopyBufferSubData(readBuffer is mapped)); + %s(readBuffer is mapped), func); return; } if (_mesa_check_disallowed_mapping(dst)) { _mesa_error(ctx, GL_INVALID_OPERATION, - glCopyBufferSubData(writeBuffer is mapped)); + %s(writeBuffer is mapped), func); return; } if (readOffset 0) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(readOffset = %d), (int) readOffset); + %s(readOffset %d 0), func, (int) readOffset); return; } if (writeOffset 0) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(writeOffset = %d), (int) writeOffset); + %s(writeOffset %d 0), func, (int) writeOffset); return; } if (size 0) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(writeOffset = %d), (int) size); + %s(size %d 0), func, (int) size); return; } if (readOffset + size src-Size) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(readOffset + size = %d), - (int) (readOffset + size)); + %s(readOffset %d + size %d src_buffer_size %d), func, + (int) readOffset, (int) size, (int) src-Size); return; } if (writeOffset + size dst-Size) {
[Mesa-dev] [PATCH 10/23] main: Add entry point for CopyNamedBufferSubData.
v2: remove _mesa in front of static software fallback. --- src/mapi/glapi/gen/ARB_direct_state_access.xml | 8 +++ src/mesa/main/bufferobj.c | 99 +- src/mesa/main/bufferobj.h | 12 src/mesa/main/tests/dispatch_sanity.cpp| 1 + 4 files changed, 87 insertions(+), 33 deletions(-) diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index 6d70b8e..042b2a8 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -35,6 +35,14 @@ param name=data type=const GLvoid * / /function + function name=CopyNamedBufferSubData offset=assign + param name=readBuffer type=GLuint / + param name=writeBuffer type=GLuint / + param name=readOffset type=GLintptr / + param name=writeOffset type=GLintptr / + param name=size type=GLsizeiptr / + /function + !-- Texture object functions -- function name=CreateTextures offset=assign diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index fc01d02..7225b64 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -761,11 +761,11 @@ _mesa_buffer_unmap(struct gl_context *ctx, struct gl_buffer_object *bufObj, * Called via glCopyBufferSubData(). */ static void -_mesa_copy_buffer_subdata(struct gl_context *ctx, - struct gl_buffer_object *src, - struct gl_buffer_object *dst, - GLintptr readOffset, GLintptr writeOffset, - GLsizeiptr size) +copy_buffer_sub_data_fallback(struct gl_context *ctx, + struct gl_buffer_object *src, + struct gl_buffer_object *dst, + GLintptr readOffset, GLintptr writeOffset, + GLsizeiptr size) { GLubyte *srcPtr, *dstPtr; @@ -1120,7 +1120,7 @@ _mesa_init_buffer_object_functions(struct dd_function_table *driver) driver-FlushMappedBufferRange = _mesa_buffer_flush_mapped_range; /* GL_ARB_copy_buffer */ - driver-CopyBufferSubData = _mesa_copy_buffer_subdata; + driver-CopyBufferSubData = copy_buffer_sub_data_fallback; } @@ -2101,65 +2101,54 @@ _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params) } -void GLAPIENTRY -_mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget, -GLintptr readOffset, GLintptr writeOffset, -GLsizeiptr size) +void +_mesa_copy_buffer_sub_data(struct gl_context *ctx, + struct gl_buffer_object *src, + struct gl_buffer_object *dst, + GLintptr readOffset, GLintptr writeOffset, + GLsizeiptr size, const char *func) { - GET_CURRENT_CONTEXT(ctx); - struct gl_buffer_object *src, *dst; - - src = get_buffer(ctx, glCopyBufferSubData, readTarget, -GL_INVALID_OPERATION); - if (!src) - return; - - dst = get_buffer(ctx, glCopyBufferSubData, writeTarget, -GL_INVALID_OPERATION); - if (!dst) - return; - if (_mesa_check_disallowed_mapping(src)) { _mesa_error(ctx, GL_INVALID_OPERATION, - glCopyBufferSubData(readBuffer is mapped)); + %s(readBuffer is mapped), func); return; } if (_mesa_check_disallowed_mapping(dst)) { _mesa_error(ctx, GL_INVALID_OPERATION, - glCopyBufferSubData(writeBuffer is mapped)); + %s(writeBuffer is mapped), func); return; } if (readOffset 0) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(readOffset = %d), (int) readOffset); + %s(readOffset %d 0), func, (int) readOffset); return; } if (writeOffset 0) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(writeOffset = %d), (int) writeOffset); + %s(writeOffset %d 0), func, (int) writeOffset); return; } if (size 0) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(writeOffset = %d), (int) size); + %s(size %d 0), func, (int) size); return; } if (readOffset + size src-Size) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(readOffset + size = %d), - (int) (readOffset + size)); + %s(readOffset %d + size %d src_buffer_size %d), func, + (int) readOffset, (int) size, (int) src-Size); return; } if (writeOffset + size dst-Size) { _mesa_error(ctx, GL_INVALID_VALUE, - glCopyBufferSubData(writeOffset + size = %d), - (int) (writeOffset + size)); + %s(writeOffset %d + size %d