Bug 90691

Summary: [BSW]Piglit/spec/nv_conditional_render/dlist fails intermittently
Product: Mesa Reporter: lu hua <huax.lu>
Component: Drivers/DRI/i965Assignee: Neil Roberts <nroberts>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: christophe.prigent
Version: git   
Hardware: All   
OS: Linux (All)   
URL: http://patchwork.freedesktop.org/patch/57758/
Whiteboard:
i915 platform: i915 features:

Description lu hua 2015-05-28 01:31:17 UTC
System Environment:
--------------------------
Platform: BSW
Libdrm:		(master)libdrm-2.4.61-4-gfde4969176822fe54197b6baa78f8b0ef900baba
Mesa:		(master)2b8c51834bcc34a70dec9b470a28c0ef972d6993
Xserver:	(master)xorg-server-1.17.0-156-g806470b9f623089dc81b985f250f0c3a4e8edbe8
Xf86_video_intel:(master)2.99.917-312-ga6dd2655cb41000943e554ccea16e5781bcbf012
Libva:		(master)4763db1c2133d4e6b92355938ecb6f23a7767b6b
Libva_intel_driver:(master)4a1c4d21f3428b08ef765d7f7de75b97006514ac
Kernel:   (drm-intel-nightly)5267b96e584de7aa76434cc9fefad61169664c2f

Bug detailed description:
-----------------------------
It intermittently fails on BSW with mesa master and 10.6 branch, fail rate:2/5.
Run 10 cycles on 10.5 branch(commit ea0d1f575c214c09ba3df12644a960e86e031766), it works well.
spec@nv_conditional_render@vertex_array also has this issue.

output:
root@x-bsw06:/GFX/Test/Piglit/piglit# bin/nv_conditional_render-dlist -auto
libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so
libGL: Using DRI2 for screen 0
Probe color at (0,0)
  Expected: 0.000000 1.000000 0.000000 0.000000
  Observed: 1.000000 0.000000 0.000000 0.000000
PIGLIT: {"result": "fail" }
root@x-bsw06:/GFX/Test/Piglit/piglit# bin/nv_conditional_render-dlist -auto
libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so
libGL: Using DRI2 for screen 0
PIGLIT: {"result": "pass" }
root@x-bsw06:/GFX/Test/Piglit/piglit# bin/nv_conditional_render-dlist -auto
libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so
libGL: Using DRI2 for screen 0
Probe color at (0,0)
  Expected: 0.000000 1.000000 0.000000 0.000000
  Observed: 1.000000 0.000000 0.000000 0.000000
PIGLIT: {"result": "fail" }
root@x-bsw06:/GFX/Test/Piglit/piglit# bin/nv_conditional_render-dlist -auto
libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so
libGL: Using DRI2 for screen 0
PIGLIT: {"result": "pass" }
root@x-bsw06:/GFX/Test/Piglit/piglit# bin/nv_conditional_render-dlist -auto
libGL: OpenDriver: trying /opt/X11R7/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /opt/X11R7/lib/dri/i965_dri.so
libGL: Using DRI2 for screen 0
PIGLIT: {"result": "pass" }

Reproduce steps:
---------------------------- 
1. xinit
2. bin/nv_conditional_render-dlist -auto
Comment 1 Kenneth Graunke 2015-05-28 07:19:20 UTC
Is this caused by 426023050d1d3cd1b5fc0b3508dd7e1ee3b061e7?
Comment 2 lu hua 2015-06-12 06:22:03 UTC
(In reply to Kenneth Graunke from comment #1)
> Is this caused by 426023050d1d3cd1b5fc0b3508dd7e1ee3b061e7?

Test this commit 10 cycles, it works well.
Comment 3 Chris Wilson 2015-08-21 16:14:28 UTC
http://patchwork.freedesktop.org/patch/57758/
Comment 4 Chris Wilson 2015-08-22 08:20:55 UTC
commit 6817e0f1ce71d2a6d347d4c182f2cf4742dd5deb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 21 15:28:22 2015 +0100

    i965: Move control flush into pipelined conditional render
    
    The nv_conditional_render piglits were sporadically failing. Moving
    the control flush from the write and placing it just before the read
    was sufficient to make the piglits pass a 1000/1000 times. The bspec
    says that the flush enable bit "waits until all previous writes of
    immediate data from post sync circles are complete before executing the
    next command" - the operative word being previous!
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90691
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Neil Roberts <neil@linux.intel.com>
    Cc: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>

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.