mesa: add KHR_no_error support for glBufferSubData()

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Timothy Arceri 2017-05-12 21:36:25 +10:00
parent 7ec12293be
commit b3888b7a68
3 changed files with 22 additions and 4 deletions

View file

@ -5051,7 +5051,8 @@
<glx ignore="true"/>
</function>
<function name="BufferSubData" es1="1.1" es2="2.0" marshal="custom">
<function name="BufferSubData" es1="1.1" es2="2.0" marshal="custom"
no_error="true">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr" counter="true"/>

View file

@ -1872,9 +1872,14 @@ buffer_sub_data(GLenum target, GLuint buffer, GLintptr offset,
return;
}
} else {
bufObj = get_buffer(ctx, func, target, GL_INVALID_OPERATION);
if (!bufObj)
return;
if (no_error) {
struct gl_buffer_object **bufObjPtr = get_buffer_target(ctx, target);
bufObj = *bufObjPtr;
} else {
bufObj = get_buffer(ctx, func, target, GL_INVALID_OPERATION);
if (!bufObj)
return;
}
}
if (no_error || validate_buffer_sub_data(ctx, bufObj, offset, size, func))
@ -1882,6 +1887,15 @@ buffer_sub_data(GLenum target, GLuint buffer, GLintptr offset,
}
void GLAPIENTRY
_mesa_BufferSubData_no_error(GLenum target, GLintptr offset,
GLsizeiptr size, const GLvoid *data)
{
buffer_sub_data(target, 0, offset, size, data, false, true,
"glBufferSubData");
}
void GLAPIENTRY
_mesa_BufferSubData(GLenum target, GLintptr offset,
GLsizeiptr size, const GLvoid *data)

View file

@ -193,6 +193,9 @@ _mesa_NamedBufferData(GLuint buffer, GLsizeiptr size,
const GLvoid *data, GLenum usage);
void GLAPIENTRY
_mesa_BufferSubData_no_error(GLenum target, GLintptr offset,
GLsizeiptr size, const GLvoid *data);
void GLAPIENTRY
_mesa_BufferSubData(GLenum target, GLintptr offset,
GLsizeiptr size, const GLvoid *data);