[Mesa-dev] [PATCH 1/3] mesa: remove unneeded error check in create_textures()
Mark Janes
mark.a.janes at intel.com
Mon Oct 5 16:18:41 PDT 2015
I tested this patch and found:
regressions:
spec.arb_shader_storage_buffer_object.layout-std140-write-shader (BDW only)
expected[1] = 1.00. Read value: 0.00
spec.arb_copy_image.arb_copy_image-srgb-copy (assertion)
arb_copy_image-srgb-copy: src/mesa/main/texobj.c:1739:
_mesa_BindTexture: Assertion `newTexObj->TargetIndex == targetIndex'
failed.
fixes:
spec.!opengl 1_0.gl-1.0-beginend-coverage
spec.!opengl 1_0.gl-1.0-no-op-paths
spec.arb_copy_image.arb_copy_image-formats
-Mark
Brian Paul <brianp at vmware.com> writes:
> Callers of create_texture() will either pass target=0 or a validated
> GL texture target enum so no need to do another error check inside
> the loop.
> ---
> src/mesa/main/texobj.c | 11 ++---------
> 1 file changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
> index 173e43c..aa4b38c 100644
> --- a/src/mesa/main/texobj.c
> +++ b/src/mesa/main/texobj.c
> @@ -1211,6 +1211,7 @@ _mesa_create_nameless_texture(struct gl_context *ctx, GLenum target)
> * glCreateTextures should throw errors if target = 0. This is not exposed to
> * the rest of Mesa to encourage Mesa internals to use nameless textures,
> * which do not require expensive hash lookups.
> + * \param target either 0 or a a valid / error-checked texture target enum
> */
> static void
> create_textures(struct gl_context *ctx, GLenum target,
> @@ -1219,6 +1220,7 @@ create_textures(struct gl_context *ctx, GLenum target,
> GLuint first;
> GLint i;
> const char *func = dsa ? "Create" : "Gen";
> + const GLint targetIndex = _mesa_tex_target_to_index(ctx, target);
>
> if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE))
> _mesa_debug(ctx, "gl%sTextures %d\n", func, n);
> @@ -1241,7 +1243,6 @@ create_textures(struct gl_context *ctx, GLenum target,
> /* Allocate new, empty texture objects */
> for (i = 0; i < n; i++) {
> struct gl_texture_object *texObj;
> - GLint targetIndex;
> GLuint name = first + i;
> texObj = ctx->Driver.NewTextureObject(ctx, name, target);
> if (!texObj) {
> @@ -1252,14 +1253,6 @@ create_textures(struct gl_context *ctx, GLenum target,
>
> /* Initialize the target index if target is non-zero. */
> if (target != 0) {
> - targetIndex = _mesa_tex_target_to_index(ctx, texObj->Target);
> - if (targetIndex < 0) { /* Bad Target */
> - mtx_unlock(&ctx->Shared->Mutex);
> - _mesa_error(ctx, GL_INVALID_ENUM, "gl%sTextures(target = %s)",
> - func, _mesa_enum_to_string(texObj->Target));
> - return;
> - }
> - assert(targetIndex < NUM_TEXTURE_TARGETS);
> texObj->TargetIndex = targetIndex;
> }
>
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list