Bug 42586

Summary: [PNV]mesa demo/arbocclude fail to show the animation displayed (with stub_occlusion_query enabled)
Product: Mesa Reporter: Guang Yang <guang.a.yang>
Component: Drivers/DRI/i915Assignee: Ian Romanick <idr>
Status: VERIFIED NOTABUG QA Contact:
Severity: normal    
Priority: medium CC: guang.a.yang, jian.j.zhao, yangweix.shui, yi.sun
Version: 7.11   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Guang Yang 2011-11-04 03:00:52 UTC
System Environment:
--------------------------
Platform:       Pineview
Libdrm:         (master)2.4.27-1-g961bf9b5c2866ccb4fedf2b45b29fb688519d0db
Mesa:           (7.11)b95767a57ad499a2ed7431e8b0b52966c6dc0a45
Xserver:           (server-1.11-branch)xorg-server-1.11.1
Xf86_video_intel: 
(master)2.16.901-31-g6fd0754e9c81164ca0fdcf96ba2bfb419568187f
Cairo:          (master)c64ec4e49c1f06a451187d5f8360df09a777f61c
Kernel:         (master)c3b92c8787367a8bb53d57d9789b558f1295cc96

Bug detailed description:
---------------------------
Startx and run mesa demo arbocclude, we only get two blue rectangles, miss the rotating snakes.

Reproduce steps:
----------------
1.xinit& 
2. Mesa_demos/src/demos/arbocclude
Comment 1 Eric Anholt 2012-10-19 19:13:39 UTC
Did you force enable the stub arb occlusion query support?  That's the only way this should run on pineview, and it will return 0 for your queries, which is what you signed up for.
Comment 2 fangxun 2012-10-23 04:21:06 UTC
We enabled the stub arb occlusion query in drirc. It runs ok with software render, So it should be mesa driver issue.
Comment 3 Eric Anholt 2012-11-20 06:53:00 UTC
Yes, if you enable stub occlusion query support, then you get broken occlusion queries.  This is not a bug, this is you getting exactly the behavior you asked for by setting the option.
Comment 4 Gordon Jin 2012-11-22 07:39:32 UTC
Eric, do you mean this is hw limitation and we can't get this case pass, whether using this option or not?

How to explain the sw rendering passes?
Comment 5 Eric Anholt 2012-11-29 21:48:38 UTC
Because software actually implements the feature.  i915 does not.  If you turn on the option, the i915 driver exposes a broken version of the feature.  I don't see what's so hard to understand here.
Comment 6 Ian Romanick 2012-11-30 17:41:15 UTC
A little background...

i915 supports, in limited forms, all of the features required for OpenGL 2.0 *except* occlusion queries.  The hardware is completely incapable of doing it at all.  Years ago, we encountered a number of applications that requested OpenGL 2.0 so that they could use GLSL.  These applications didn't not use occlusion queries.  To enable these applications on i915, we added a feature to turn on "fake" occlusion query support.  This allowed it to advertise OpenGL 2.0, and it allowed these applications to use GLSL.

However, occlusion queries are not really supported, and they cannot ever be supported.  We're not going to enable software fallback rendering for this case because it doesn't help anyone.  This is an expert option, and it should only be enabled if you know what you're doing.

We asked QA to enable it during testing some years ago so that some piglit and oglconform shader tests would run.  We have (or at least had) a bunch of tests that just look for OpenGL 2.0 before testing GLSL features.  We want those tests to be able to run on i915.  We either need to change the test infrastructure to expect occlusion query tests to fail on i915, or we need to change the test infrastructure to only enable that option for GLSL tests.

This option predates the GL_VERSION_OVERRIDE variable by several years, but it fills a similar purpose.
Comment 7 Gordon Jin 2012-12-04 02:59:07 UTC
Ian, thanks for the explanation.

>> We're not going to enable software fallback rendering for this case because it doesn't help anyone. 

To me this is more like "won't fix". Anyway, QA understand this now and let's close it.

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.