Bug 111267

Summary: [CM246] Flickering with multiple draw calls within the same graphics pipeline if a compute pipeline is present
Product: Mesa Reporter: Svenn-Arne Dragly <dragly>
Component: Drivers/Vulkan/intelAssignee: Intel 3D Bugs Mailing List <intel-3d-bugs>
Status: RESOLVED DUPLICATE QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: dragly, jason
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Zip file containing RenderDoc captures, a vktrace and two screenshots

Description Svenn-Arne Dragly 2019-07-31 13:46:09 UTC
Created attachment 144918 [details]
Zip file containing RenderDoc captures, a vktrace and two screenshots

During development of a Vulkan application in Rust, we have identified what appears to be a graphics driver bug. The minimal example that reproduces this is a simple application that does the following each frame:

- Start a compute pass
- Set the compute pipeline
- Dispatch the compute pass, which can even be an empty shader
- Start a render pass
- Set the render pipeline
- Draw a simple geometry with many instances (200k)
- Draw a simple geometry with two instances

The observed behavior is flickering of the two instances that are rendered last between frames.

A workaround is to set the pipeline again after the first draw call. This will remove the flickering.

I have attached two captures from RenderDoc of a good and a bad frame, where the bad frame is missing the geometry (which causes the flickering). However, upon loading both frames in RenderDoc again, the geometry is always shown - indicating a possible driver bug.

I have also attached a vktrace, which on an affected machine reproduces the flickering during a vkreplay. The flickering will also vary between replays.

Finally, I have attached two screenshots that illustrate the difference between good and bad frames.

Source code to reproduce the issue can be found in the following branch of gfx-rs/wgpu-rs:

https://github.com/dragly/wgpu-rs/tree/dragly/comp-issue

It can be tested by running

> cargo run --features vulkan --example cube

System information:

Machine: Dell XPS 15 9570
Chipset: CM246
OS/Distro: KDE Neon 5.16.4 (based on Ubuntu 18.04)

Output of version information commands:

> inxi -G -c0
Graphics:  Card-1: Intel Device 3e9b
           Card-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile]
           Display Server: x11 (X.Org 1.19.6 ) drivers: modesetting (unloaded: fbdev,vesa)
           Resolution: 3840x2160@60.00hz, 2560x1440@59.95hz
           OpenGL: renderer: Mesa DRI Intel UHD Graphics 630 (Coffeelake 3x8 GT2)
           version: 4.5 Mesa 19.2.0-devel (git-3a22a8b 2019-07-31 bionic-oibaf-ppa)

> pkg-config --modversion libdrm
2.4.99

> uname -r
4.15.0-55-generic

Note: I am currently running a more recent set of drivers to see if an update would help, but the issue is also there for the default drivers that come with Ubuntu 18.04.
Comment 1 Jason Ekstrand 2019-07-31 14:12:12 UTC

*** This bug has been marked as a duplicate of bug 109630 ***

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.