System Environment: -------------------------- Arch: i386 Platform: huronriver Libdrm: (master)2.4.29-3-gef20301a11afae50bfe127002913dbd0b81ddccc Mesa: (master)11cdf24d15763131a7ab4b366cad78116884d045 Xserver: (master)xorg-server-1.11.99.901 Xf86_video_intel:(master)2.17.0-245-g58cee9d0def82d19f03c840325b6e84c20e77ace Kernel: (drm-intel-next)097354eb14fa94d31a09c64d640643f58e4a5a9a Bug detailed description: ------------------------- It segfaulted on HuronRiver and Calpella. Bisect shows 07ee9f374f2946f852896e9264c7fa83eafc3f16 is the first bad commit. commit 07ee9f374f2946f852896e9264c7fa83eafc3f16 Author: Kenneth Graunke <kenneth@whitecape.org> AuthorDate: Fri Dec 23 20:24:46 2011 -0800 Commit: Kenneth Graunke <kenneth@whitecape.org> CommitDate: Tue Dec 27 14:33:38 2011 -0800 i965/vs: Properly clear cur_value when propagating direct copies. Consider the following code: MOV A.x, B.x MOV B.x, C.x After the first line, cur_value[A][0] == B, indicating that A.x's current value came from register B. When processing the second line, we update cur_value[B][0] to C. However, for drect copies, we fail to reset cur_value[A][0] to NULL. This is necessary because the value of A is no longer the value of B. Fixes Counter-Strike: Source in Wine (where the menu rendered completely black in DX9 mode), completely white textures in Civilization V, and the new Piglit test glsl-vs-copy-propagation-1.shader_test. (gdb) bt #0 0xb7b13ff4 in brw::vec4_visitor::opt_copy_propagation (this=0xbffd26e4) at brw_vec4_copy_propagation.cpp:309 #1 0xb7b13cca in brw::vec4_visitor::run (this=0xbffd26e4) at brw_vec4_emit.cpp:772 #2 0xb7b13dce in brw::brw_vs_emit (prog=0x84aec28, c=0xbffdaf08) at brw_vec4_emit.cpp:1010 #3 0xb7acbf26 in do_vs_prog (brw=0x8413408, prog=0x84aec28, vp=0x84faf58, key=0xbfffec7c) at brw_vs.c:232 #4 0xb7acc2e4 in brw_upload_vs_prog (brw=0x8413408) at brw_vs.c:338 #5 0xb7acb077 in brw_upload_state (brw=0x8413408) at brw_state_upload.c:503 #6 0xb7ab7917 in brw_try_draw_prims (ctx=0x8413408, arrays=0x8478af8, prim=0xbfffee58, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=3, tfb_vertcount=0x0) at brw_draw.c:521 #7 brw_draw_prims (ctx=0x8413408, arrays=0x8478af8, prim=0xbfffee58, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=3, tfb_vertcount=0x0) at brw_draw.c:605 #8 0xb7bda1aa in vbo_draw_arrays (ctx=0x8413408, mode=5, start=0, count=4, numInstances=1) at vbo/vbo_exec_array.c:600 #9 0xb7bc6286 in _es_DrawArrays (mode=5, first=0, count=4) at main/api_exec_es2.c:688 #10 0x0839ed0b in GTFGL2TestFixedDataTypeApply (pTestTransformViewport=0x8412788) at ./Source/GL2Tests/GTFGL2TestFixedDataType.c:200 #11 0x0816ebca in GTFTestGL2TestApply (pTestGL2Test=0x84afd78) at ./Source/GTFTestGL2Test.c:311 #12 0x08057202 in GTFTestEncapsulateApply (pTestEncapsulate=0x84a6db8) at ./Source/GTFTest.c:233 #13 0x0809a7fa in GTFRunTest (run_filename=0x8400398 "/GFX/Test/Ogles2conform/ogles2conform/GTF_ES/glsl/GTF/GL2Tests/fixed_data_type/fixed_data_type.test") at ./Source/GTFTestDriver.c:307 #14 0x0809b531 in GTFRunTestDriver (run_filename=0x8400398 "/GFX/Test/Ogles2conform/ogles2conform/GTF_ES/glsl/GTF/GL2Tests/fixed_data_type/fixed_data_type.test") at ./Source/GTFTestDriver.c:580 #15 0x0807865d in GTFRun () at ./Source/GTFMain.c:101 #16 0x0811f177 in GTFInitEGL (run=0x8078603 <GTFRun>, argc=4, argv=0xbffff3e4) at ./Source/GTFInitEGL.c:236 #17 0x0807920c in GTFMain (argc=4, argv=0xbffff3e4) at ./Source/GTFMain.c:265 #18 0x0808d8ac in main (argc=4, argv=0xbffff3e4) at ./Source/main.c:202 Reproduce steps: ---------------- 1. start X 2. ./GTF -width=64 -height=64 -run=GTF/GL2Tests/fixed_data_type/fixed_data_type.test
Really? I can't reproduce this. $ ./GTF -width=64 -height=64 -run=GL2Tests/fixed_data_type/fixed_data_type.test [...] Regression PASSED all 18 tests. Could you confirm?
Confirm that it fails on HuronRiver and Calpella.
It pass with latest driver, so close it.
Verified with mesa master commit 32b07bb1496f5772ca16e719bb87e1702ceff196.
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.