mesa: add KHR_no_error support to copy buffer subdata functions

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Timothy Arceri 2017-05-04 14:48:02 +10:00
parent 5e86bfaee3
commit f9e6820652
4 changed files with 43 additions and 3 deletions

View File

@ -11,7 +11,7 @@
<enum name="COPY_READ_BUFFER" value="0x8F36"/>
<enum name="COPY_WRITE_BUFFER" value="0x8F37"/>
<function name="CopyBufferSubData" es2="3.0">
<function name="CopyBufferSubData" es2="3.0" no_error="true">
<param name="readTarget" type="GLenum"/>
<param name="writeTarget" type="GLenum"/>
<param name="readOffset" type="GLintptr"/>

View File

@ -75,7 +75,7 @@
<param name="data" type="const GLvoid *" />
</function>
<function name="CopyNamedBufferSubData">
<function name="CopyNamedBufferSubData" no_error="true">
<param name="readBuffer" type="GLuint" />
<param name="writeBuffer" type="GLuint" />
<param name="readOffset" type="GLintptr" />

View File

@ -2348,6 +2348,24 @@ copy_buffer_sub_data(struct gl_context *ctx, struct gl_buffer_object *src,
ctx->Driver.CopyBufferSubData(ctx, src, dst, readOffset, writeOffset, size);
}
void GLAPIENTRY
_mesa_CopyBufferSubData_no_error(GLenum readTarget, GLenum writeTarget,
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object **src_ptr = get_buffer_target(ctx, readTarget);
struct gl_buffer_object *src = *src_ptr;
struct gl_buffer_object **dst_ptr = get_buffer_target(ctx, writeTarget);
struct gl_buffer_object *dst = *dst_ptr;
dst->MinMaxCacheDirty = true;
ctx->Driver.CopyBufferSubData(ctx, src, dst, readOffset, writeOffset,
size);
}
void GLAPIENTRY
_mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget,
GLintptr readOffset, GLintptr writeOffset,
@ -2370,6 +2388,21 @@ _mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget,
"glCopyBufferSubData");
}
void GLAPIENTRY
_mesa_CopyNamedBufferSubData_no_error(GLuint readBuffer, GLuint writeBuffer,
GLintptr readOffset,
GLintptr writeOffset, GLsizeiptr size)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *src = _mesa_lookup_bufferobj(ctx, readBuffer);
struct gl_buffer_object *dst = _mesa_lookup_bufferobj(ctx, writeBuffer);
dst->MinMaxCacheDirty = true;
ctx->Driver.CopyBufferSubData(ctx, src, dst, readOffset, writeOffset,
size);
}
void GLAPIENTRY
_mesa_CopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer,
GLintptr readOffset, GLintptr writeOffset,

View File

@ -254,13 +254,20 @@ _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params);
void GLAPIENTRY
_mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params);
void GLAPIENTRY
_mesa_CopyBufferSubData_no_error(GLenum readTarget, GLenum writeTarget,
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size);
void GLAPIENTRY
_mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget,
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size);
void GLAPIENTRY
_mesa_CopyNamedBufferSubData_no_error(GLuint readBuffer, GLuint writeBuffer,
GLintptr readOffset,
GLintptr writeOffset, GLsizeiptr size);
void GLAPIENTRY
_mesa_CopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer,
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size);