Bug 47488 - [Bisected SNB]Oglc conditional_render(basic.wait.nv) regressed
Summary: [Bisected SNB]Oglc conditional_render(basic.wait.nv) regressed
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: All Linux (All)
: high major
Assignee: Eric Anholt
QA Contact:
Keywords: NEEDINFO
Depends on:
Reported: 2012-03-18 22:40 UTC by lu hua
Modified: 2012-08-28 05:18 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Description lu hua 2012-03-18 22:40:07 UTC
System Environment:
Arch:             i386
Platform:         Sandybridge
Libdrm:		(master)2.4.32
Mesa:		(master)03f8a97d718502f60d16000aead251d88a751149
Xserver:		(master)xorg-server-1.12.0-1-ga615b90cab7569fae9d123e4da1d3373c871d84b
Libva:		(vaapi-ext)f8be4a5477e58c4a27170f0c87eeedac8de60aef
Kernel:	(drm-intel-next-queued) fa37d39e4c6622d80bd8061d600701bcea1d6870

Bug detailed description:
It fails on sandybridge with mesa master branch.It doesn't happen on mesa 8.0 branch.It doesn't happen on ivybridge, ironlake and pineview.

Following cases also fail and hava same commit.

Bisect shows:31866308fcf989df992ace28b5b986c3d3770e90 is the first bad commit
commit 31866308fcf989df992ace28b5b986c3d3770e90
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Dec 19 10:53:10 2011 -0800

    i965/fs: Jump from discard statements to the end of the program when done.

    From the GLSL 1.30 spec:

         The discard keyword is only allowed within fragment shaders. It
         can be used within a fragment shader to abandon the operation on
         the current fragment. This keyword causes the fragment to be
         discarded and no updates to any buffers will occur. Control flow
         exits the shader, and subsequent implicit or explicit derivatives
         are undefined when this control flow is non-uniform (meaning
         different fragments within the primitive take different control

    v2: Don't emit the final HALT if no other HALTs were emitted.

    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)

Reproduce steps:
1. start X
2. ./oglconform -z -suite all -v 2 -D 117 -test conditional_render basic.wait.nv
Comment 1 lu hua 2012-03-20 23:33:44 UTC
Case 'conditional_render(advanced.fbo.queryOnFBO)' also fails and have same commit.
Comment 2 Gordon Jin 2012-03-31 18:35:03 UTC
Ian, Eric?
Comment 3 Eric Anholt 2012-08-02 21:44:28 UTC
I'm guessing this is kernel changes again and a bad bisect in mesa, since this commit got backed out for other reasons and the problem is supposedly still around.

Comment 4 Gordon Jin 2012-08-03 01:43:24 UTC
Hua to confirm if this still fails.
Comment 5 lu hua 2012-08-03 06:37:56 UTC
It still fails on following environment:
Mesa:	(master)8734584952ea257d53ce421959bd9706345f221f
Kernel:	(drm-intel-next-queued) ab3951eb74e7c33a2f5b7b64d72e82f1eea61571
Comment 6 Kenneth Graunke 2012-08-05 22:52:22 UTC
Conditional rendering uses occlusion queries.  Occlusion queries were not working until Eric's recent kernel patch.  See bug #52932.  It's passing for me with that patch applied.  From the other bug report, Daniel said:

Should be fixed on -fixes with:

commit e844b990b1df9242bb91b7d490552f3198946838                                 
Author: Eric Anholt <eric@anholt.net>                                           
Date:   Tue Jul 31 15:35:01 2012 -0700                                          

    drm/i915: Don't forget to apply SNB PIPE_CONTROL GTT workaround.
Comment 7 lu hua 2012-08-08 02:14:54 UTC
Can' find out "drm/i915: Don't forget to apply SNB PIPE_CONTROL GTT workaround." on  -queued kernel commit:ab3951eb74e7.
Comment 8 lu hua 2012-08-28 05:18:58 UTC
Verified. Fixed on Mesa	master a3d9d7ec79d6f7205fab2324e47d8ea185431de0  and -queued Kernel cd7988eea561a70a4f98e431c1395f913672d626

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.