Bug 90691 - [BSW]Piglit/spec/nv_conditional_render/dlist fails intermittently
Summary: [BSW]Piglit/spec/nv_conditional_render/dlist fails intermittently
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: All Linux (All)
: medium normal
Assignee: Neil Roberts
QA Contact: Intel 3D Bugs Mailing List
URL: http://patchwork.freedesktop.org/patc...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-28 01:31 UTC by lu hua
Modified: 2015-08-22 08:20 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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>


bug/show.html.tmpl processed on Jan 24, 2017 at 07:04:05.
(provided by the Example extension).