Bug 44302 - [bisected i965]Ogles2conform GL2Tests/fixed_data_type/fixed_data_type.test regressed
Summary: [bisected i965]Ogles2conform GL2Tests/fixed_data_type/fixed_data_type.test re...
Status: VERIFIED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: All Linux (All)
: high major
Assignee: Kenneth Graunke
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-29 21:40 UTC by fangxun
Modified: 2012-01-20 00:50 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description fangxun 2011-12-29 21:40:48 UTC
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
Comment 1 Kenneth Graunke 2012-01-04 04:11:54 UTC
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?
Comment 2 fangxun 2012-01-05 00:23:12 UTC
Confirm that it fails on HuronRiver and Calpella.
Comment 3 fangxun 2012-01-20 00:49:49 UTC
It pass with latest driver, so close it.
Comment 4 fangxun 2012-01-20 00:50:28 UTC
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.