[Mesa-dev] [PATCH 5/4] mesa: Refactor error checking for GL_TEXTURE_BASE_LEVEL vs texture targets
Ian Romanick
idr at freedesktop.org
Thu Jan 21 10:30:34 PST 2016
On 01/20/2016 08:29 PM, Jason Ekstrand wrote:
>
> On Jan 20, 2016 6:20 PM, "Ian Romanick" <idr at freedesktop.org
> <mailto:idr at freedesktop.org>> wrote:
>>
>> From: Ian Romanick <ian.d.romanick at intel.com
> <mailto:ian.d.romanick at intel.com>>
>>
>> Add a big spec quotation justifying the error generated, which has
>> changed over the GL versions.
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com
> <mailto:ian.d.romanick at intel.com>>
>> ---
>>
>> I intended to send this out with the other four, but I selected the
>> wrong SHA from the list.
>>
>> src/mesa/main/texparam.c | 31 ++++++++++++++++++++++++-------
>> 1 file changed, 24 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
>> index 89f286c..ee50b5a 100644
>> --- a/src/mesa/main/texparam.c
>> +++ b/src/mesa/main/texparam.c
>> @@ -369,8 +369,31 @@ set_tex_parameteri(struct gl_context *ctx,
>> if (texObj->BaseLevel == params[0])
>> return GL_FALSE;
>>
>> + /* Section 8.10 (Texture Parameters) of the OpenGL 4.5 Core
> Profile spec
>> + * says:
>> + *
>> + * "An INVALID_OPERATION error is generated if the
> effective target
>> + * is either TEXTURE_2D_MULTISAMPLE or
> TEXTURE_2D_MULTISAMPLE_ARRAY,
>> + * and pname TEXTURE_BASE_LEVEL is set to a value other
> than zero.
>> + *
>> + * ...
>> + *
>> + * An INVALID_OPERATION error is generated if the effective
> target
>> + * is TEXTURE_RECTANGLE and pname TEXTURE_BASE_LEVEL is set
> to any
>> + * value other than zero."
>
> Do we really need the "pname"s? IMHO, they make it harder to read.
I'm not sure what you mean. The pnames in the spec quote or ... ?
> Other than that, the series looks good.
>
> Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com
> <mailto:jason.ekstrand at intel.com>>
>
>> + *
>> + * Note that section 3.8.8 (Texture Parameters) of the OpenGL
> 3.3 Core
>> + * Profile spec said:
>> + *
>> + * "The error INVALID_VALUE is generated if
> TEXTURE_BASE_LEVEL is
>> + * set to any value other than zero."
>> + *
>> + * We take the 4.5 language as a correction to the 3.3, and we
> implement
>> + * that on all GL versions.
>> + */
>> if ((texObj->Target == GL_TEXTURE_2D_MULTISAMPLE ||
>> - texObj->Target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY) &&
> params[0] != 0)
>> + texObj->Target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY ||
>> + texObj->Target == GL_TEXTURE_RECTANGLE) && params[0] != 0)
>> goto invalid_operation;
>>
>> if (params[0] < 0) {
>> @@ -378,12 +401,6 @@ set_tex_parameteri(struct gl_context *ctx,
>> "glTex%sParameter(param=%d)", suffix, params[0]);
>> return GL_FALSE;
>> }
>> - if (texObj->Target == GL_TEXTURE_RECTANGLE_ARB && params[0] != 0) {
>> - _mesa_error(ctx, GL_INVALID_OPERATION,
>> - "glTex%sParameter(target=%s, param=%d)", suffix,
>> - _mesa_enum_to_string(texObj->Target), params[0]);
>> - return GL_FALSE;
>> - }
>> incomplete(ctx, texObj);
>>
>> /** See note about ARB_texture_storage below */
>> --
>> 2.5.0
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list