Re: [Mesa-dev] [PATCH 10/23] main: Add entry point for CopyNamedBufferSubData.

2015-02-20 Thread Martin Peres

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.

2015-02-11 Thread Laura Ekstrand
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