diff options
author | Marek Olšák <[email protected]> | 2020-04-27 01:03:38 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-04-29 15:58:45 +0000 |
commit | a2542deb63adb3b5536947bcf9610c0ceca9da28 (patch) | |
tree | cd61eb1c61654584b1afccb5e4ae61a567071137 /src/mesa | |
parent | ffa314eab32b94956db1e0cd54d833333b050635 (diff) |
mesa: report GL_INVALID_OPERATION for invalid glTextureBuffer target
This fixes:
KHR-GL46.direct_state_access.textures_buffer_errors
KHR-GL46.direct_state_access.textures_buffer_range_errors
Fixes: 98e64e538af - main: Added entry point for glTextureBuffer
Reviewed-by: Timothy Arceri <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4759>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/teximage.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 7eddbc33f95..19bad75b20e 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -6362,10 +6362,10 @@ texture_buffer_range(struct gl_context *ctx, */ static bool check_texture_buffer_target(struct gl_context *ctx, GLenum target, - const char *caller) + const char *caller, bool dsa) { if (target != GL_TEXTURE_BUFFER_ARB) { - _mesa_error(ctx, GL_INVALID_ENUM, + _mesa_error(ctx, dsa ? GL_INVALID_OPERATION : GL_INVALID_ENUM, "%s(texture target is not GL_TEXTURE_BUFFER)", caller); return false; } @@ -6435,7 +6435,7 @@ _mesa_TexBuffer(GLenum target, GLenum internalFormat, GLuint buffer) /* Need to catch a bad target before it gets to * _mesa_get_current_tex_object. */ - if (!check_texture_buffer_target(ctx, target, "glTexBuffer")) + if (!check_texture_buffer_target(ctx, target, "glTexBuffer", false)) return; if (buffer) { @@ -6467,7 +6467,7 @@ _mesa_TexBufferRange(GLenum target, GLenum internalFormat, GLuint buffer, /* Need to catch a bad target before it gets to * _mesa_get_current_tex_object. */ - if (!check_texture_buffer_target(ctx, target, "glTexBufferRange")) + if (!check_texture_buffer_target(ctx, target, "glTexBufferRange", false)) return; if (buffer) { @@ -6516,7 +6516,7 @@ _mesa_TextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalFormat if (!texObj) return; - if (!check_texture_buffer_target(ctx, target, "glTextureBufferRangeEXT")) + if (!check_texture_buffer_target(ctx, target, "glTextureBufferRangeEXT", true)) return; if (buffer) { @@ -6566,7 +6566,7 @@ _mesa_TextureBuffer(GLuint texture, GLenum internalFormat, GLuint buffer) if (!texObj) return; - if (!check_texture_buffer_target(ctx, texObj->Target, "glTextureBuffer")) + if (!check_texture_buffer_target(ctx, texObj->Target, "glTextureBuffer", true)) return; texture_buffer_range(ctx, texObj, internalFormat, @@ -6595,7 +6595,7 @@ _mesa_TextureBufferEXT(GLuint texture, GLenum target, "glTextureBufferEXT"); if (!texObj || - !check_texture_buffer_target(ctx, texObj->Target, "glTextureBufferEXT")) + !check_texture_buffer_target(ctx, texObj->Target, "glTextureBufferEXT", true)) return; texture_buffer_range(ctx, texObj, internalFormat, @@ -6625,7 +6625,7 @@ _mesa_MultiTexBufferEXT(GLenum texunit, GLenum target, "glMultiTexBufferEXT"); if (!texObj || - !check_texture_buffer_target(ctx, texObj->Target, "glMultiTexBufferEXT")) + !check_texture_buffer_target(ctx, texObj->Target, "glMultiTexBufferEXT", false)) return; texture_buffer_range(ctx, texObj, internalFormat, @@ -6670,7 +6670,7 @@ _mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer, return; if (!check_texture_buffer_target(ctx, texObj->Target, - "glTextureBufferRange")) + "glTextureBufferRange", true)) return; texture_buffer_range(ctx, texObj, internalFormat, |