Enabling gles3.1 on gen8 generated a CTS regression: /tmp/build_root/m64/bin/cts/glcts --deqp-case=ES2-CTS.gtf.GL2FixedTests.buffer_objects.buffer_objects dEQP Core GL-CTS-2.0 (0x0052484b) starting.. target implementation = 'intel-gbm' Test case 'ES2-CTS.gtf.GL2FixedTests.buffer_objects.buffer_objects'.. #+ Error when binding not generated buffer #+ Error testing genBuffers Fail (Fail) DONE! Test run totals: Passed: 0/1 (0.00%) Failed: 1/1 (100.00%) Not supported: 0/1 (0.00%) Warnings: 0/1 (0.00%) Standard Error Mesa: User error: GL_INVALID_OPERATION in glBufferData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferSubData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferSubData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferSubData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferData(no buffer bound) Mesa: User error: GL_INVALID_OPERATION in glBufferSubData(no buffer bound) Mesa: User error: GL_INVALID_VALUE in glGenBuffers(n -1 < 0) Mesa: User error: GL_INVALID_VALUE in glDeleteBuffersARB(n) Mesa: User error: GL_INVALID_OPERATION in glBindBuffer(non-gen name) bisected to: e97b207654a1c0b2c27b6ad6579b5570a83ce8cd Author: Jordan Justen <jordan.l.justen@intel.com> AuthorDate: Tue Dec 15 15:53:20 2015 -0800 Commit: Jordan Justen <jordan.l.justen@intel.com> CommitDate: Wed Dec 16 20:37:40 2015 -0800 i965/screen: Allow OpenGLES 3.1 for gen8+ OpenGLES 3.1 cannot be enabled for gen 7 (Ivy Bridge, Haswell) since they are still missing ARB_stencil_texturing. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
I don't think Jordans patch should be blamed in this case. I believe this is the actual reason for the regression: " commit 6c3de8996fbe9447e092cc75ccdd6f720fabaf4d Author: Marta Lofstedt <marta.lofstedt@intel.com> Date: Wed Aug 19 20:25:22 2015 +0200 mesa/es3.1 : Align OpenGL ES 3.1 glBindVertexBuffer error handling with OpenGL Core According to OpenGL ES 3.1 specification 10.3.1: "An INVALID_OPERATION error is generated if buffer is not zero or a name returned from a previous call to GenBuffers, or if such a name has since been deleted with DeleteBuffers." This error check was previously limited to OpenGL Core. " Without above patch ES31-CTS-vertex_attrib_binding.negative-bindVertexBuffer will fail. I attach a patch that moves up the test to varray. With this patch both GL2FixedTests.buffer_objects.buffer_objects and ES31-CTS-vertex_attrib_binding.negative-bindVertexBuffer will pass. Before sending it up to the mesa list. I just need to investigate if it is OK to also move up the GL_CORE test. Judging from the comment in varray is done by the same reason I did the test in bufferobj.c. But there could be some other GL_CORE path to mesa_handle_bind_buffer_gen relying on this check.
Created attachment 120583 [details] Patch that fix the problem both for GLES2 and GLES3.1
Note to myself, the attached patch cause piglit regressions, provide a proper fix.
Created attachment 120896 [details] Patch that solved the problem without piglit regressions My previous patch had piglit regressions. This one does not.
I send up the patch: http://patchwork.freedesktop.org/patch/69755/
Fixed by: commit 2bcacc69b9935f073e271527771b4fb42081dcb6 Author: Marta Lofstedt <marta.lofstedt@intel.com> Date: Fri Jan 8 14:55:55 2016 +0100 mesa: Move sanity check of BindVertexBuffer for OpenGL ES 3.1
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.