Bug 74718 - r600g: graphics artifacts with geometry shaders with RV730
Summary: r600g: graphics artifacts with geometry shaders with RV730
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-08 18:00 UTC by Török Edwin
Modified: 2016-12-25 10:47 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
geometry.trace (103.08 KB, application/octet-stream)
2014-02-08 18:00 UTC, Török Edwin
Details
good rendering with llvmpipe (38.12 KB, image/png)
2014-02-08 18:00 UTC, Török Edwin
Details
artifacts with r600g (37.92 KB, image/png)
2014-02-08 18:01 UTC, Török Edwin
Details
artifacts with r600g (38.92 KB, image/png)
2014-02-08 18:01 UTC, Török Edwin
Details

Description Török Edwin 2014-02-08 18:00:27 UTC
Created attachment 93670 [details]
geometry.trace

This application uses a geometry shader, and runs without crashing, but there are graphics artifacts, see geometry.0000001176.png and geometry.0000001644.png:

Source code for the application can be found here:
https://bitbucket.org/alfonse/gltut/src/1d1479cc7027f1e32c5adff748f3b296f1931d84/Tut%2013%20Impostors/GeomImpostor.cpp?at=default
https://bitbucket.org/alfonse/gltut/src/1d1479cc7027f1e32c5adff748f3b296f1931d84/Tut%2013%20Impostors/data/GeomImpostor.frag?at=default
https://bitbucket.org/alfonse/gltut/src/1d1479cc7027f1e32c5adff748f3b296f1931d84/Tut%2013%20Impostors/data/GeomImpostor.geom?at=default
https://bitbucket.org/alfonse/gltut/src/1d1479cc7027f1e32c5adff748f3b296f1931d84/Tut%2013%20Impostors/data/GeomImpostor.vert?at=default

It doesn't work exactly as is with the upstream source code, due to mismatching layouts between vert/geom/frag shader, but adding this to all shaders makes it run:
layout(std140) uniform;

Let me know if a tarball with a working source code would help debugging or if the apitrace suffices.

I did an apitrace, and rerun it using llvmpipe forced to 3.3, and there are no artifacts there, see geometry.0000001176.good.png:
$ MESA_GLSL_VERSION_OVERRIDE=330 MESA_GL_VERSION_OVERRIDE=3.3 LIBGL_ALWAYS_SOFTWARE=1 glretrace ./geometry.trace

Kernel is 3.14.0-rc1 + merge of 7c4c62a04a2a80e3feb5d6c97aca1e413b11c790 from drm-fixes:
$ uname -a
Linux debian 3.14.0-rc1-00015-g7c4c62a #48 SMP PREEMPT Sat Feb 8 17:33:48 EET 2014 x86_64 GNU/Linux

Mesa is from the 10.1 branch:
$ glxinfo |grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RV730
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.0-rc1 (git-1e6bba5)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.1.0-rc1 (git-1e6bba5)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:

Hardware is a Radeon HD 4650:
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV730 PRO [Radeon HD 4650] (prog-if 00 [VGA controller])
Comment 1 Török Edwin 2014-02-08 18:00:53 UTC
Created attachment 93671 [details]
good rendering with llvmpipe
Comment 2 Török Edwin 2014-02-08 18:01:09 UTC
Created attachment 93672 [details]
artifacts with r600g
Comment 3 Török Edwin 2014-02-08 18:01:22 UTC
Created attachment 93673 [details]
artifacts with r600g
Comment 4 Grigori Goronzy 2014-02-08 19:48:20 UTC
Looks fine on Evergreen. This is probably specific to r600/r700 class hardware.
Comment 5 Andreas Boll 2014-02-08 19:54:49 UTC
(In reply to comment #4)
> Looks fine on Evergreen. This is probably specific to r600/r700 class
> hardware.

Looks fine on BARTS too.
Comment 6 Andreas Boll 2014-02-08 20:19:46 UTC
BTW I've found another bug (failing assertion in mesa core on debug builds) when replaying your trace file (attachment 93670 [details]).
see bug 74723
Comment 7 Török Edwin 2014-02-08 22:00:35 UTC
(In reply to comment #6)
> BTW I've found another bug (failing assertion in mesa core on debug builds)
> when replaying your trace file (attachment 93670 [details]).
> see bug 74723

After the fix in c325ec896545cc909f2f0e359f0bb0513a8a53b5 I don't get any assertion with --enable-debug, only these messages:

669: glDebugOutputCallback: High severity Shader Compiler unknown issue 1, 0:2(12): warning: extension `GL_EXT_gpu_shader4' unsupported in geometry shader
673: glDebugOutputCallback: High severity Shader Compiler unknown issue 2, 0:2(12): warning: extension `GL_EXT_gpu_shader4' unsupported in fragment shader
Comment 8 Dieter Nützel 2014-10-23 18:51:42 UTC
Is this still a problem for you?

Looks very similar as mesa-demos/glsl/geom-outlining-150 on my RV730 AGP.
I have a geom-outlining-150-shader.log with R600_DEBUG=gs,vs,fs,ps if needed.
Comment 9 Dieter Nützel 2015-11-25 01:54:58 UTC
(In reply to Dieter Nützel from comment #8)
> Is this still a problem for you?
> 
> Looks very similar as mesa-demos/glsl/geom-outlining-150 on my RV730 AGP.
> I have a geom-outlining-150-shader.log with R600_DEBUG=gs,vs,fs,ps if needed.

Stays this for you?
'cause my reported 'mesa-demos/glsl/geom-outlining-150' artifacts are SOLVED, now.
Have a look at:
https://bugs.freedesktop.org/show_bug.cgi?id=83319#c11
Comment 10 Török Edwin 2016-12-25 10:47:00 UTC
Thanks, I confirm this works for me:
OpenGL renderer string: Gallium 0.4 on AMD RV730 (DRM 2.48.0 / 4.9.0_3, LLVM 3.9.0)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.2


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.