[Piglit] [PATCH 1/2] DSA: fix incorrect errors expected for BindTextureUnit()
Fredrik Höglund
fredrik at kde.org
Fri Apr 24 08:12:28 PDT 2015
On Friday 24 April 2015, Arthur Huillet wrote:
> From: Arthur Huillet <ahuillet at nvidia.com>
>
> Updated BindTextureUnit() to match the OpenGL specification: GL_INVALID_OPERATION
> is expected when the texture object doesn't exist, not GL_INVALID_ENUM.
> When the texture unit doesn't exist, the specification doesn't strictly speaking
> define the error, and although BindTextures() uses GL_INVALID_OPERATION for this
> case, table 2.3 serves as a default and states that GL_INVALID_VALUE is the
> correct error.
>
> Signed-off-by: Arthur Huillet <ahuillet at nvidia.com>
> ---
> .../arb_direct_state_access/bind-texture-unit.c | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/tests/spec/arb_direct_state_access/bind-texture-unit.c b/tests/spec/arb_direct_state_access/bind-texture-unit.c
> index b6a98a9..e257d3f 100644
> --- a/tests/spec/arb_direct_state_access/bind-texture-unit.c
> +++ b/tests/spec/arb_direct_state_access/bind-texture-unit.c
> @@ -53,21 +53,35 @@ piglit_display(void)
> GLint nunits;
>
> /* Throw some invalid inputs at BindTextureUnit. */
> - /* Non-gen-d texture name */
> +
> +
> + /* GL spec section 8.1:
> + "An INVALID_OPERATION error is generated by BindTextureUnit if tex-
> + ture is not zero or the name of an existing textuire object." */
There is a typo on this line ^^^^
I think it would be a good idea to mention which version of the GL spec
the quotes are from. Piglit also uses 8-column tabs for indentation.
With those nitpicks fixed:
Reviewed-by: Fredrik Höglund <fredrik at kde.org>
> +
> + /* Texture name doesn't exist */
> glBindTextureUnit(0, name);
> pass &= piglit_check_gl_error(GL_INVALID_OPERATION);
>
> - /* No target */
> + /* Texture name exists, but texture object does not */
> glGenTextures(1, &name);
> glBindTextureUnit(0, name);
> - pass &= piglit_check_gl_error(GL_INVALID_ENUM);
> + pass &= piglit_check_gl_error(GL_INVALID_OPERATION);
> +
> + /* GL spec section 8.1 says of BindTextures:
> + "An INVALID_OPERATION error is generated if first + count is greater
> + than the number of texture image units supported by the
> + implementation."
> + However, it doesn't say the same about BindTextureUnit.
> + Table 2.3 implies that a numeric argument out of range yields
> + INVALID_VALUE, not INVALID_OPERATION. */
>
> /* Texture unit doesn't exist */
> glDeleteTextures(1, &name);
> glCreateTextures(GL_TEXTURE_2D, 1, &name);
> glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &nunits);
> glBindTextureUnit(nunits, name); /* Too High */
> - pass &= piglit_check_gl_error(GL_INVALID_OPERATION);
> + pass &= piglit_check_gl_error(GL_INVALID_VALUE);
>
> /* Trivial, but should work. */
> glBindTextureUnit(1, name);
>
More information about the Piglit
mailing list