System Environment: -------------------------- Platform: BDW Libdrm: (master)libdrm-2.4.58-21-gd7c0a08bc576deb07df6c3f91f393ca8edd0c4bf Mesa: (10.4)fffe533f08d7c0cc61841195216e54587a1b77ad Xserver: (server-1.16-branch)xorg-server-1.16.3-1-gf39ac527baab8a38d023e3a8416757ccfcead42a Xf86_video_intel:(master)2.99.917-26-gee79d1885509a2a94acb80e0c416cb276ba7c453 Libva: (master)e97ac9e78cd475a13e722c455e34d5d39d0f059d Libva_intel_driver:(master)1a4e98338b8b498895eabe3a151f48e5c624bb63 Kernel: (drm-intel-fixes)e3e6efcd638d3caa18d9e89f235c7d6fc32c1f0b Piglit fdf804da1479e216bb1eb7f84984a29d266ba0a5 Bug detailed description: ----------------------------- This new case fail on BDW with mesa master and 10.4 branch. Test on IVB, it works well. output: libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so Failed to compile fragment shader /GFX/Test/Piglit/piglit/tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag: 0:6(12): error: extension `GL_ARB_gpu_shader5' unsupported in fragment shader Shader source: // [config] // expect_result: pass // glsl_version: 1.30 // [end config] #version 130 #extension GL_ARB_gpu_shader5: require uniform int i; uniform vec4 coord; uniform sampler2DShadow s[5]; void main() { float f = textureProjGradOffset(s[i], coord, coord.xy, coord.zw, ivec2(-5, 3)); gl_FragColor = vec4(0, f, 0, 1); } PIGLIT: {"result": "fail" } Reproduce steps: ---------------------------- 1. xinit 2. ./bin/glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.30
I think Jason fixed this with: http://cgit.freedesktop.org/piglit/commit/?id=62b62677a7d132e0ec4c9b5594d71cf9d1f70859
Test Piglit commit 62b62677a7d132e0ec4c9b5594d71cf9d1f70859. It still fails. Failed to compile fragment shader tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag: 0:7(12): error: extension `GL_ARB_gpu_shader5' unsupported in fragment shader Shader source: // [config] // expect_result: pass // glsl_version: 1.30 // require_extensions: GL_ARB_gpu_shader5 // [end config] #version 130 #extension GL_ARB_gpu_shader5: require uniform int i; uniform vec4 coord; uniform sampler2DShadow s[5]; void main() { float f = textureProjGradOffset(s[i], coord, coord.xy, coord.zw, ivec2(-5, 3)); gl_FragColor = vec4(0, f, 0, 1); } PIGLIT: {"result": "fail" }
Ah. The test uses #version 130. That's wrong. ARB_gpu_shader5's spec says >=150, so we only expose the extension in core profiles. I'm not sure how this could work on IVB.
Patch sent to the piglit list: http://lists.freedesktop.org/archives/piglit/2015-January/014084.html
Fixed in piglit master.
Test Piglit commit 6c92c42d88fe87, GLSL 1.50 is not supported output: libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so libGL: Error in /etc/drirc line 1, column 0: no element found. libGL: Error in /root/.drirc line 1, column 0: no element found. libGL: Error in /etc/drirc line 1, column 0: no element found. libGL: Error in /root/.drirc line 1, column 0: no element found. Failed to compile fragment shader tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag: 0:6(10): error: GLSL 1.50 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES Shader source: // [config] // expect_result: pass // glsl_version: 1.50 // require_extensions: GL_ARB_gpu_shader5 // [end config] #version 150 #extension GL_ARB_gpu_shader5: require uniform int i; uniform vec4 coord; uniform sampler2DShadow s[5]; void main() { float f = textureProjGradOffset(s[i], coord, coord.xy, coord.zw, ivec2(-5, 3)); gl_FragColor = vec4(0, f, 0, 1); } PIGLIT: {"result": "fail" }
You need to be passing a glsl version of 1.50 to glslparsertest. That should turn it into a skip on platforms that don't support 1.5. Piglit will do this automatically based on the metadata at the top of the file.
No, the problem is that we don't expose GL_ARB_gpu_shader5 on Gen8+ yet. We somehow missed that earlier. In order to enable it, we at minimum need a few imulExtended bug fixes.
Updating the summary to reflect the actual problem.
I believe Matt recently submitted some fixes for imul fairly recently, but I may be misremembering. Do we have a list of what remains to be done?
I wrote a patch series to implement this. Matt found some issues, and who knows if it still applies. I asked him to look at it then because the tests were passing piglit and he said we needed better tests. http://lists.freedesktop.org/archives/mesa-dev/2014-December/073286.html
(In reply to Ben Widawsky from comment #11) > I wrote a patch series to implement this. Matt found some issues, and who > knows if it still applies. I asked him to look at it then because the tests > were passing piglit and he said we needed better tests. > > http://lists.freedesktop.org/archives/mesa-dev/2014-December/073286.html Hi Ben, I notice there are 20 patches in this link. shell I test them all?
(In reply to lu hua from comment #12) > (In reply to Ben Widawsky from comment #11) > > I wrote a patch series to implement this. Matt found some issues, and who > > knows if it still applies. I asked him to look at it then because the tests > > were passing piglit and he said we needed better tests. > > > > http://lists.freedesktop.org/archives/mesa-dev/2014-December/073286.html > > Hi Ben, > I notice there are 20 patches in this link. shell I test them all? I don't think so. Some fixes need to be made to them.
I was mostly putting the link there so we don't forgot about the series if someone wants to fix this. Lu Hua, I think it would be good if we got testing on them to see if it catches other bugs that we don't know about (assuming we'll eventually upstream a modified version of that series). However, like Matt said, fixes are probably needed, so consider it a low priority. Setting to NEEDINFO to make sure Lu sees it. Lu, feel free to go back to New after you see it.
Test on the latest mesa master branch(commit 72d4f6c67f8a96956a1) and the latest Piglit. It still fails. output: libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so Failed to compile fragment shader tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag: 0:6(10): error: GLSL 1.50 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES Shader source: // [config] // expect_result: pass // glsl_version: 1.50 // require_extensions: GL_ARB_gpu_shader5 // [end config] #version 150 #extension GL_ARB_gpu_shader5: require uniform int i; uniform vec4 coord; uniform sampler2DShadow s[5]; void main() { float f = textureProjGradOffset(s[i], coord, coord.xy, coord.zw, ivec2(-5, 3)); gl_FragColor = vec4(0, f, 0, 1); } PIGLIT: {"result": "fail" }
Hua Please try by command: ./bin/glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.50 Or ./piglit-run.py --no-concurrency -t spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag tests/quick.tests shuo Since I think the command "./bin/glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.30" is not right, since this case based on GLSL 1.50 not 1.30, and the last argv should be 1.50 instead of 1.30
run "./bin/glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.50", it still fails. root@x-bdw05:/GFX/Test/Piglit/piglit# ./bin/glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.50 libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so Failed to compile fragment shader tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag: 0:7(12): error: extension `GL_ARB_gpu_shader5' unsupported in fragment shader Shader source: // [config] // expect_result: pass // glsl_version: 1.50 // require_extensions: GL_ARB_gpu_shader5 // [end config] #version 150 #extension GL_ARB_gpu_shader5: require uniform int i; uniform vec4 coord; uniform sampler2DShadow s[5]; void main() { float f = textureProjGradOffset(s[i], coord, coord.xy, coord.zw, ivec2(-5, 3)); gl_FragColor = vec4(0, f, 0, 1); } PIGLIT: {"result": "fail" }
Yeah, this is still not turned on upstream...we really should've gotten this done for 10.5.0... :(
Didn't remember that there was a bug outstanding. I fixed multiplication and turned ARB_gpu_shader5 on with commit ff6ee39c19adc59225d1f0664695c669cd7e5a94 Author: Matt Turner <mattst88@gmail.com> Date: Fri Apr 24 11:28:06 2015 -0700 i965: Enable ARB_gpu_shader5 on Gen8+.
Test on mesa commit b5045e29917a783be74becee5e72566e2b0e3535, It still fails and reports "GLSL 1.50 is not supported" libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so Failed to compile fragment shader tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag: 0:6(10): error: GLSL 1.50 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES Shader source: // [config] // expect_result: pass // glsl_version: 1.50 // require_extensions: GL_ARB_gpu_shader5 // [end config] #version 150 #extension GL_ARB_gpu_shader5: require uniform int i; uniform vec4 coord; uniform sampler2DShadow s[5]; void main() { float f = textureProjGradOffset(s[i], coord, coord.xy, coord.zw, ivec2(-5, 3)); gl_FragColor = vec4(0, f, 0, 1); } PIGLIT: {"result": "fail" }
That must be a problem on your end - Broadwell supported GLSL 1.50 the day I upstreamed the code. Note that you have to run it like this: glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.50 adding "1.50" on the command line lets glslparsertest know that it needs to make a OpenGL Core Profile context. Otherwise, you get a compatibility (3.0) context that only supports GLSL 1.30. It works here.
(In reply to Kenneth Graunke from comment #21) > That must be a problem on your end - Broadwell supported GLSL 1.50 the day I > upstreamed the code. > > Note that you have to run it like this: > > glslparsertest > tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass > 1.50 > > adding "1.50" on the command line lets glslparsertest know that it needs to > make a OpenGL Core Profile context. Otherwise, you get a compatibility > (3.0) context that only supports GLSL 1.30. > > It works here. Yes, run bin/glslparsertest tests/spec/arb_gpu_shader5/compiler/indirect-projGradOffset-shadow.frag pass 1.50 , it works well.
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.