Bug 59957

Summary: [IVB/HSW Regression]Piglit spec_ARB_uniform_buffer_object_row-major fail
Product: Mesa Reporter: lu hua <huax.lu>
Component: Drivers/DRI/i965Assignee: Ian Romanick <idr>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: medium CC: vlee, xunx.fang
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description lu hua 2013-01-28 06:03:02 UTC
System Environment:
--------------------------
Arch:             x86_64
Platform:         Ivybridge
Libdrm:	(master)libdrm-2.4.41-4-g9dc0072e8d5a47fb0b2ada50fb897cb2c740bb40
Mesa:	(master)51b64ce47bd8ed5da185f4fb76e7a3d3238b72c2
Xserver:(master)xorg-server-1.13.99.901-37-g7fe5e6dfa5c1e71d8b7540b28c1d508687a2fbee
Xf86_video_intel:(master)2.20.19-32-g8ffb3f50b3b4601401da76e2848e059ab63231f4
Cairo:	(master)c986a7310bb06582b7d8a566d5f007ba4e5e75bf
Libva:	(staging)21649988d6b532cc96f633db017d1e4369f640e9
Libva_intel_driver:(staging)b7cb38772e6f73d3c1b3465e0bc6c0009c2f5634
Kernel:	(drm-intel-nightly) 46e5ccbec5bc5f20e5b2733ba2e8a5b7e43fcf8f

Bug detailed description:
-------------------------
It fails on ivybridge with mesa master branch, It doesn't happen on 9.0 branch.
Following cases also fail:
spec_ARB_uniform_buffer_object_dlist
spec_ARB_uniform_buffer_object_getactiveuniformsiv-uniform-array-stride
spec_ARB_uniform_buffer_object_getactiveuniformsiv-uniform-matrix-stride
spec_ARB_uniform_buffer_object_getactiveuniformsiv-uniform-type
spec_ARB_uniform_buffer_object_layout-std140

The first bad commit could be any of:
32f322925592e9eeda6a5624c7320232fc170c03
514f8c7ec7cc1ab18be93cebb5b9bf970b1955a9
f09d77b2af0e6e7553a1e2efca2f12fe2e4dcea8
22233da1ee4b59663966169759960c00c033d0e9
We cannot bisect more!

git bisect log:
git bisect start
# good: [0974031f88c31458792864b2f3a46ff885607ab1] i965/fs/gen7: Fix fatal typo in unpackHalf2x16
git bisect good 0974031f88c31458792864b2f3a46ff885607ab1
# bad: [51b64ce47bd8ed5da185f4fb76e7a3d3238b72c2] gles3: Update gl3.h
git bisect bad 51b64ce47bd8ed5da185f4fb76e7a3d3238b72c2
# bad: [2a7a5062c9821bb986ed50e866c27ec26c4a41af] i965: Use the glarray _ElementSize that Mesa tracks for us.
git bisect bad 2a7a5062c9821bb986ed50e866c27ec26c4a41af
# good: [23b7ce3a824013c8b4d7340294cb59b0b4cb8f87] glsl: Add a predicate to determine whether a variable is an interface block
git bisect good 23b7ce3a824013c8b4d7340294cb59b0b4cb8f87
# good: [11d42de681d07884efd7f5b09bd639ee4423093b] glsl: Make the align function available elsewhere in the linker
git bisect good 11d42de681d07884efd7f5b09bd639ee4423093b
# skip: [514f8c7ec7cc1ab18be93cebb5b9bf970b1955a9] glsl: Calculate UBO data at link-time
git bisect skip 514f8c7ec7cc1ab18be93cebb5b9bf970b1955a9
# skip: [f09d77b2af0e6e7553a1e2efca2f12fe2e4dcea8] glsl: Allow dereferencing fields of an interface instance
git bisect skip f09d77b2af0e6e7553a1e2efca2f12fe2e4dcea8
# good: [0ab7399822b480f6e07cc566a2e50fabedc8258d] glsl: Add link_uniform_blocks to calculate all UBO data at link-time
git bisect good 0ab7399822b480f6e07cc566a2e50fabedc8258d
# bad: [22233da1ee4b59663966169759960c00c033d0e9] glsl: Remove ir_variable::uniform_block
git bisect bad 22233da1ee4b59663966169759960c00c033d0e9
# skip: [32f322925592e9eeda6a5624c7320232fc170c03] glsl: Allow elimination of uniform block members
git bisect skip 32f322925592e9eeda6a5624c7320232fc170c03


output:
Failed to get index for a_cm1
Failed to get index for a_cm2
Failed to get index for a_cm3
Failed to get index for a_rm1
Failed to get index for b_cm1
Failed to get index for b_rm1
Failed to get index for b_rm2
Failed to get index for c_cm1
Failed to get index for c_cm2
Failed to get index for c_rm1
Failed to get index for d_cm1
Failed to get index for d_cm2
Failed to get index for d_rm1
Failed to get index for e_cm1
Failed to get index for e_rm1
Failed to get index for e_rm2
Failed to get index for f_cm1
Failed to get index for f_rm1
Failed to get index for f_rm2
PIGLIT: {'result': 'fail' }


Reproduce steps:
----------------
1. xinit
2. ./bin/arb_uniform_buffer_object-row-major -auto -fbo
Comment 1 lu hua 2013-01-28 06:06:56 UTC
case ubo-usage(advanced.vbo_as_ubo)_ctx31 segfault on ivybridge, The first bad commit could be any of:
32f322925592e9eeda6a5624c7320232fc170c03
514f8c7ec7cc1ab18be93cebb5b9bf970b1955a9
f09d77b2af0e6e7553a1e2efca2f12fe2e4dcea8
22233da1ee4b59663966169759960c00c033d0e9
Comment 2 lu hua 2013-01-28 08:09:41 UTC
It also happens on haswell.
Comment 3 Ian Romanick 2013-01-28 23:41:37 UTC
These tests were incorrect.  Patches have been posted to the piglit mailing list.
Comment 4 Ian Romanick 2013-01-29 00:55:15 UTC
*** Bug 59648 has been marked as a duplicate of this bug. ***
Comment 5 Ian Romanick 2013-01-30 19:31:58 UTC
Fixed by piglit commit:

commit 630006e1b45fb7bfd5ed2c17f8539f8634e7283b
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Mon Jan 28 12:24:50 2013 -0800

    arb_uniform_buffer_object: Only use row_major or column_major on matrix types
    
    OpenGL ES 3.0 requires that the row_major and column_major layout
    qualifiers only be accepted on matrix types.  Previously this test would
    put the layout qualifier on any type.
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59957
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59648
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>
Comment 6 fangxun 2013-02-18 08:15:24 UTC
Following 5 piglit cases were fixed by piglit commit 630006e1b45fb7bfd5ed2c17f.
spec/ARB_uniform_buffer_object_dlist
spec/ARB_uniform_buffer_object_getactiveuniformsiv-uniform-array-stride
spec/ARB_uniform_buffer_object_getactiveuniformsiv-uniform-matrix-stride
spec/ARB_uniform_buffer_object_getactiveuniformsiv-uniform-type
spec/ARB_uniform_buffer_object_layout-std140

But case spec/ARB_uniform_buffer_object_row-major still fails on latest mesa master and 9.1 branch.


Error output: 
Failed to get index for a_rm1
Comment 7 Eric Anholt 2013-02-21 01:37:38 UTC
commit d2a539ce4dfce8b0e658a46dfe1993fab6ebc290
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 19 11:39:48 2013 -0800

    ARB_uniform_buffer_object/row_major: Reference another missed UBO member.
Comment 8 Vinson Lee 2013-02-23 04:23:34 UTC
*** Bug 60298 has been marked as a duplicate of this bug. ***
Comment 9 lu hua 2013-02-26 03:37:09 UTC
Oglc case ubo-usage(advanced.vbo_as_ubo)_ctx31 still segfault on ivybridge.
output:
Intel OpenGL Conformance Test
Version ENG (Feb 25 2013 14:48:34)

CLI options echo:
oglconform -ctx 3.1 -suite all -v 2 -test ubo-usage advanced.vbo_as_ubo

Window will be recreated 12 times.
  Window 0 will run 1 testcases on config with id 131.
  Window 1 will run 1 testcases on config with id 127.
  Window 2 will run 1 testcases on config with id 109.
  Window 3 will run 1 testcases on config with id 105.
  Window 4 will run 1 testcases on config with id 132.
  Window 5 will run 1 testcases on config with id 110.
  Window 6 will run 1 testcases on config with id 125.
  Window 7 will run 1 testcases on config with id 103.
  Window 8 will run 1 testcases on config with id 128.
  Window 9 will run 1 testcases on config with id 106.
  Window 10 will run 1 testcases on config with id 126.
  Window 11 will run 1 testcases on config with id 104.
Total of 12 testcases will be executed.

Setup Report.
    Verbose level = 2.
    Path inactive.

Visual Report for ID 131 (32 bits).
ID      |ACCELERA|DB      |REND_T  |SURF_T  |C_BUF_T |BUF_S   |RED_S   |
     131|       1|       1|      gl|  wipbpx|    rgba|      32|       8|

GREEN_S |BLUE_S  |ALPHA_S |DEPTH_S |STENC_S |ACCUM_S |SPL_BUF |SAMPLES |
       8|       8|       8|      24|       8|       0|       0|       0|

SRGB    |TEX_RGB |TEX_RGBA|CAVEAT  |SWAP    |M_PBUF_W|M_PBUF_H|M_PBUF_P
       0|       0|       0|    none|   undef|       0|       0|       0

OpenGL Report.
    Vendor - 'Intel Open Source Technology Center'
    Renderer - 'Mesa DRI Intel(R) Ivybridge Desktop '
    Version - '3.1 (Core Profile) Mesa 9.2-devel (git-0486d50)' (3.1)
    GLSL Version - '1.40'
    Context Flags - None

>> Uniform Buffer Object - usage (ubo-usage)  test:
--> 2.3 - advanced.vbo_as_ubo subcase:
Segmentation fault (core dumped)

(gdb) bt
#0  0x000000000126c908 in (anonymous namespace)::ADVANCED_VBO_AS_UBO::exec() ()
#1  0x0000000001268ca6 in UBOUsageExec(testParameters*) ()
#2  0x0000000001834929 in callFunctionHandleExceptionsInner(long (*)(testParameters*), testParameters*, char*) ()
#3  0x0000000001834a7f in callFunctionHandleExceptions(long (*)(testParameters*), testParameters*) ()
#4  0x0000000001833711 in DriverExec(long (*)(testParameters*), testParameters*) ()
#5  0x000000000176a255 in Driver(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<driverRec*, std::allocator<driverRec*> > const&, std::vector<boost::shared_ptr<PrePostTestAction>, std::allocator<boost::shared_ptr<PrePostTestAction> > > const&, std::vector<boost::shared_ptr<PrePostTestcaseAction>, std::allocator<boost::shared_ptr<PrePostTestcaseAction> > > const&) ()
#6  0x000000000176ad08 in (anonymous namespace)::MyMessagePump::idle() ()
#7  0x000000000173c5c0 in MessagePump::process_messages() ()
#8  0x0000000001769314 in ExecutionManager::execute_schedules() ()
#9  0x0000000001708eef in tkShellExecute(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) ()
#10 0x0000000000428795 in main ()
Comment 10 Ian Romanick 2013-02-26 17:53:10 UTC
(In reply to comment #9)
> Oglc case ubo-usage(advanced.vbo_as_ubo)_ctx31 still segfault on ivybridge.
> output:
> Intel OpenGL Conformance Test
> Version ENG (Feb 25 2013 14:48:34)
> 
> CLI options echo:
> oglconform -ctx 3.1 -suite all -v 2 -test ubo-usage advanced.vbo_as_ubo

This case was not mentioned in the original report, and it's pretty clearly a different issue.  Please keep separate bugs separate.  In other words, please open a new bug for this issue.
Comment 11 lu hua 2013-02-27 02:00:50 UTC
Reported bug 61536 about ubo-usage(advanced.vbo_as_ubo)_ctx31.
Close this bug.
Verified. Fixed on latest master branch.

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.