[Mesa-dev] [PATCH 1/3] mesa: remove unneeded error check in create_textures()
Ian Romanick
idr at freedesktop.org
Tue Oct 6 13:03:17 PDT 2015
On 10/06/2015 09:31 AM, Mark Janes wrote:
> Mark Janes <mark.a.janes at intel.com> writes:
>
>> 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
>
> In subsequent testing I found this BDW failure to be a pre-existing and
> intermittent. It is not due to this patch set.
>
>>
>> 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
But are the assertion and fixes still accurate?
>>
>> -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
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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