Bug 98250 - dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterIiv/texparameterIuiv failure
Summary: dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameter...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Intel 3D Bugs Mailing List
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: i965-deqp
  Show dependency treegraph
 
Reported: 2016-10-14 08:18 UTC by Randy
Modified: 2016-11-15 06:54 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Randy 2016-10-14 08:18:47 UTC
Two cases failed on SKL GT2


dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterIiv.qpa: <Result StatusCode="Fail">Incorrect error was reported</Result>
dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterIuiv.qpa: <Result StatusCode="Fail">Incorrect error was reported</Result>


The signature is a little different to bug 98249

  <Text>glTexParameterIiv(GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_BORDER_COLOR, { 0, 0, 9347417, 0 });</Text>
  <Text>GL_INVALID_ENUM was expected but got GL_NO_ERROR</Text>

Mesa git top commit: 389d6dedbe75defe07216ad761569a9b94f44e58
dEQP git top commit: ca988480be945772473f9256b6ae91fa6aa62bd1
Comment 1 Samuel Iglesias Gonsálvez 2016-11-03 11:39:43 UTC
Notice that this subtest is expecting an OpenGL ES 3.2 context to run, so that can be confusing as, in OpenGL ES 3.1, GL_TEXTURE_BORDER_COLOR is not allowed in  glTexParameterI{i,ui}v(). See file modules/gles31/functional/es31fNegativeTextureApiTests.cpp, function texparameterIiv().

However in OpenGL ES 3.2, glTexParameterI{i,ui}v() called with GL_TEXTURE_BORDER_COLOR pname accepts any 4 values. See OpenGL ES 3.2 spec, section 8.10 "Texture Parameters".

The test is passing an array of 2 values as argument and expects the driver to detect that it is invalid. Nevertheless, the argument is a pointer to the array and the driver, internally, will pick 4 values reading the rest from the stack and it cannot know that the user gave less values than expected.

I submitted a patch for dEQP:

https://android-review.googlesource.com/299257
Comment 2 Samuel Iglesias Gonsálvez 2016-11-03 11:50:00 UTC
I will wait to have the dEQP fix in the tests before closing this bug as RESOLVED - NOTOURBUG.
Comment 3 Samuel Iglesias Gonsálvez 2016-11-07 08:28:32 UTC
(In reply to Samuel Iglesias from comment #2)
> I will wait to have the dEQP fix in the tests before closing this bug as
> RESOLVED - NOTOURBUG.

Found that I was wrong. OpenGL ES 3.2 says in section 8.10. "TEXTURE PARAMETERS", at the end of the section:

"An INVALID_ENUM error is generated if target is TEXTURE_2D_-
MULTISAMPLE or TEXTURE_2D_MULTISAMPLE_ARRAY , and pname is any
sampler state from table 21.12."

And GL_TEXTURE_BORDER_COLOR is present in that table. I am going to write a patch for it.
Comment 4 Samuel Iglesias Gonsálvez 2016-11-15 06:54:35 UTC
(In reply to Samuel Iglesias from comment #3)
> (In reply to Samuel Iglesias from comment #2)
> > I will wait to have the dEQP fix in the tests before closing this bug as
> > RESOLVED - NOTOURBUG.
> 
> Found that I was wrong. OpenGL ES 3.2 says in section 8.10. "TEXTURE
> PARAMETERS", at the end of the section:
> 
> "An INVALID_ENUM error is generated if target is TEXTURE_2D_-
> MULTISAMPLE or TEXTURE_2D_MULTISAMPLE_ARRAY , and pname is any
> sampler state from table 21.12."
> 
> And GL_TEXTURE_BORDER_COLOR is present in that table. I am going to write a
> patch for it.

Patch pushed to master:

commit 308b06d471ba41177659d438632053cdce702b39
Author: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Date:   Mon Nov 7 11:49:13 2016 +0100

    main: return error if asking for GL_TEXTURE_BORDER_COLOR in TEXTURE_2D_MULTISAMPLE{_ARRAY} through TexParameter{i,Ii,Iui}v()


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.