[Piglit] [PATCH] DSA: fix error value for *TextureSubImage* when target doesn't match

Fredrik Höglund fredrik at kde.org
Thu Apr 23 06:30:31 PDT 2015

On Thursday 23 April 2015, Arthur Huillet wrote:
> Hi,
> On Thu, 23 Apr 2015 14:26:32 +0300
> Martin Peres <martin.peres at linux.intel.com> wrote:
> > >>> Does the patch look OK to you?
> > >> Yeah, patch looks perfectly fine. But I'd like to hear from Laura (or
> > >> Martin perhaps, who reviewed a lot of these) about whether this was
> > >> done on purpose or not, pending a spec fix.
> > 
> > I am not aware of any bug report filed by Laura on this. Given that she 
> > wrote this code in October last year, I am sure she would have received 
> > an answer from Khronos if she had filed a bug. This would suggest it is 
> > a bug in the test.
> > 
> > Let's wait for her comment to make sure of it.
> > 
> > Anyway, thanks for the patch Arthur! I know it can be frustrating to 
> > have to check every failing test while wondering whether this is a test 
> > or a driver bug. We should encourage developers writing piglit tests to 
> > try them on multiple drivers that already support the extension they are 
> > testing. This is however impossible to mandate.
> Asking Piglit contributors to test their tests (...) on more than one implementation
> is certainly a good idea, but it's not always practical. I think it is easier to ask,
> for the tests for which it is appropriate (like the ones I fixed), to quote the part
> of the specification that they are testing. This also has the advantage of making 
> the reviewers' life easier - I don't think many people know by heart what error 
> is supposed to be returned by a particular error condition, so having a piece of 
> spec to check is helpful.
> I'll go a little further and suggest that in order to review a "GL_INVALID_*" 
> test properly, you *need* to look at the spec. So better quote it directly.
> Here are more examples from DSA:
> "bind-texture-unit.c:63:
>     glGenTextures(1, &name);
>     glBindTextureUnit(0, name);
>     pass &= piglit_check_gl_error(GL_INVALID_ENUM);
> But here's the spec:
>     "An INVALID_OPERATION error is generated by BindTextureUnit if tex-
> ture is not zero or the name of an existing texture object."
> So I believe INVALID_OPERATION is the correct thing to return (will send a patch
> when I can).
> Then, bind-texture-unit.c:70:
>     /* 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);
> I haven't been able to find the relevant language to justify
> I won't send a patch since I can't back up my claim with spec."

I posted an analysis of these failures here a couple of weeks ago:


> > Do you try your tests against Intel's or AMD's driver for Windows? If 
> > so, why not start working on them in the open and push them to piglit 
> > since it now supports Windows?
> I'm a Linux engineer and if I can avoid working on Windows, I will. :)

More information about the Piglit mailing list