Bug 206231

Summary: R9 280X low performance with all games
Product: Drivers Reporter: Jacques Belosoukinski (kentosama)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: NEW ---    
Severity: normal CC: alexdeucher
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 5.4.0-2-amd64 Subsystem:
Regression: No Bisected commit-id:
Attachments: Low performance and low GPU usage with Tomb Raider (Linux native)

Description Jacques Belosoukinski 2020-01-17 10:14:49 UTC
Created attachment 286855 [details]
Low performance and low GPU usage with Tomb Raider (Linux native)

Hello, I have been experiencing performance issues with my AMD R9 280X graphics card for several months.

On all games (Linux native and Proton), my performance is very low, well below the capabilities of the graphics card.

The problem occurred when I migrated my system from Windows to Debian 10. I updated Debian stable to sid in order to have the latest version of the kernel and mesa.

When I launch a game, the performances are low and during very complex scenes, the framerate goes down to 10/15 fps with a very low GPU use ~ 18%. The only time I've seen GPU usage hit 98% is in the main menu in Dawn of War II.

Changing the graphics settings or the screen resolution changes absolutely nothing.

The only game that seems to work well is Shadow Warrior, whose GPU usage rarely exceeds 70%.

I have never heard the fans work since my transition to Debian so I used the radeon-profile tool to make sure the fans work manually.

I forced the use of the hight profile in order to increase the memory and processor frequency as much as possible, but no difference

kentosama@teradrive:~$ uname -a
Linux teradrive 5.4.0-2-amd64 #1 SMP Debian 5.4.8-1 (2020-01-05) x86_64 GNU/Linux

kentosama@teradrive:~$ glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon HD 7900 Series (TAHITI, DRM 3.35.0, 5.4.0-2-amd64, LLVM 9.0.1)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.3.2
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.3.2
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

kentosama@teradrive:~$ vblank_mode=0 glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
25934 frames in 5.0 seconds = 5186.741 FPS
25239 frames in 5.0 seconds = 5047.634 FPS
25109 frames in 5.0 seconds = 5021.724 FPS
26234 frames in 5.0 seconds = 5246.724 FPS
27341 frames in 5.0 seconds = 5468.155 FPS
26836 frames in 5.0 seconds = 5367.148 FPS
27233 frames in 5.0 seconds = 5446.563 FPS
26164 frames in 5.0 seconds = 5232.749 FPS
26568 frames in 5.0 seconds = 5313.582 FPS
25854 frames in 5.0 seconds = 5170.670 FPS
26857 frames in 5.0 seconds = 5371.198 FPS
25896 frames in 5.0 seconds = 5179.152 FPS
26129 frames in 5.0 seconds = 5225.626 FPS
26181 frames in 5.0 seconds = 5236.104 FPS
25873 frames in 5.0 seconds = 5174.487 FPS
26584 frames in 5.0 seconds = 5316.643 FPS
26448 frames in 5.0 seconds = 5289.565 FPS
27543 frames in 5.0 seconds = 5508.535 FPS
26074 frames in 5.0 seconds = 5214.784 FPS
26551 frames in 5.0 seconds = 5310.126 FPS
27081 frames in 5.0 seconds = 5416.005 FPS
26073 frames in 5.0 seconds = 5214.450 FPS
25781 frames in 5.0 seconds = 5156.146 FPS
26895 frames in 5.0 seconds = 5378.962 FPS
26933 frames in 5.0 seconds = 5386.433 FPS
26197 frames in 5.0 seconds = 5239.087 FPS
26348 frames in 5.0 seconds = 5269.402 FPS
27020 frames in 5.0 seconds = 5403.997 FPS
26684 frames in 5.0 seconds = 5336.700 FPS
26798 frames in 5.0 seconds = 5359.434 FPS
27071 frames in 5.0 seconds = 5414.150 FPS
26068 frames in 5.0 seconds = 5213.525 FPS
25425 frames in 5.0 seconds = 5084.933 FPS
25963 frames in 5.0 seconds = 5192.526 FPS
26528 frames in 5.0 seconds = 5305.459 FPS
29053 frames in 5.0 seconds = 5810.492 FPS
25807 frames in 5.0 seconds = 5161.248 FPS
25978 frames in 5.0 seconds = 5195.598 FPS
25677 frames in 5.0 seconds = 5135.263 FPS
26250 frames in 5.0 seconds = 5249.852 FPS
26988 frames in 5.0 seconds = 5397.509 FPS
26183 frames in 5.0 seconds = 5236.487 FPS
25639 frames in 5.0 seconds = 5127.785 FPS
26207 frames in 5.0 seconds = 5241.383 FPS
25885 frames in 5.0 seconds = 5176.901 FPS
25660 frames in 5.0 seconds = 5131.782 FPS
25256 frames in 5.0 seconds = 5051.157 FPS
26747 frames in 5.0 seconds = 5349.287 FPS
27643 frames in 5.0 seconds = 5528.397 FPS
26030 frames in 5.0 seconds = 5205.866 FPS
26480 frames in 5.0 seconds = 5295.797 FPS
26451 frames in 5.0 seconds = 5290.124 FPS
26050 frames in 5.0 seconds = 5209.895 FPS
26075 frames in 5.0 seconds = 5214.940 FPS
26031 frames in 5.0 seconds = 5206.046 FPS
26157 frames in 5.0 seconds = 5231.230 FPS
26081 frames in 5.0 seconds = 5216.084 FPS
27675 frames in 5.0 seconds = 5534.894 FPS
26755 frames in 5.0 seconds = 5350.956 FPS
25175 frames in 5.0 seconds = 5034.920 FPS

kentosama@teradrive:~$ glmark2 -b "terrain"
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     X.Org
    GL_RENDERER:   AMD Radeon HD 7900 Series (TAHITI, DRM 3.35.0, 5.4.0-2-amd64, LLVM 9.0.1)
    GL_VERSION:    4.5 (Compatibility Profile) Mesa 19.3.2
=======================================================
[terrain] <default>: FPS: 1367 FrameTime: 0.732 ms
=======================================================
                                  glmark2 Score: 1367 
=======================================================

kentosama@teradrive:~$ sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
Clock Gating Flags Mask: 0x0
	Graphics Medium Grain Clock Gating: Off
	Graphics Medium Grain memory Light Sleep: Off
	Graphics Coarse Grain Clock Gating: Off
	Graphics Coarse Grain memory Light Sleep: Off
	Graphics Coarse Grain Tree Shader Clock Gating: Off
	Graphics Coarse Grain Tree Shader Light Sleep: Off
	Graphics Command Processor Light Sleep: Off
	Graphics Run List Controller Light Sleep: Off
	Graphics 3D Coarse Grain Clock Gating: Off
	Graphics 3D Coarse Grain memory Light Sleep: Off
	Memory Controller Light Sleep: Off
	Memory Controller Medium Grain Clock Gating: Off
	System Direct Memory Access Light Sleep: Off
	System Direct Memory Access Medium Grain Clock Gating: Off
	Bus Interface Medium Grain Clock Gating: Off
	Bus Interface Light Sleep: Off
	Unified Video Decoder Medium Grain Clock Gating: Off
	Video Compression Engine Medium Grain Clock Gating: Off
	Host Data Path Light Sleep: Off
	Host Data Path Medium Grain Clock Gating: Off
	Digital Right Management Medium Grain Clock Gating: Off
	Digital Right Management Light Sleep: Off
	Rom Medium Grain Clock Gating: Off
	Data Fabric Medium Grain Clock Gating: Off
	Address Translation Hub Medium Grain Clock Gating: Off
	Address Translation Hub Light Sleep: Off

uvd    vclk: 0 dclk: 0
power level 3    sclk: 105000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 2

Is there anything I can do to regain "normal" performance?

thank you so much
Comment 1 Alex Deucher 2020-01-17 13:52:37 UTC
Do things work any better when using the radeon kernel driver rather than amdgpu?
Comment 2 Jacques Belosoukinski 2020-01-17 14:37:02 UTC
Hello, with the radeonsi driver, the performance is lower than the amdgpu driver. On the same scene in Tomb Raider, the graphics card displays ~ 10fps.

I have a lower score with glmark2:

kentosama@teradrive:~$ glmark2 -b "terrain"
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     X.Org
    GL_RENDERER:   AMD TAHITI (DRM 2.50.0, 5.4.0-2-amd64, LLVM 9.0.1)
    GL_VERSION:    4.5 (Compatibility Profile) Mesa 19.3.2
=======================================================
[terrain] <default>: FPS: 1280 FrameTime: 0.781 ms
=======================================================
                                  glmark2 Score: 1280 
=======================================================

But glxgears shows a better result
kentosama@teradrive:~$ vblank_mode=0 glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
28092 frames in 5.0 seconds = 5618.325 FPS
29931 frames in 5.0 seconds = 5985.997 FPS
28614 frames in 5.0 seconds = 5722.756 FPS
29221 frames in 5.0 seconds = 5844.179 FPS
28387 frames in 5.0 seconds = 5677.356 FPS
29344 frames in 5.0 seconds = 5868.745 FPS
29921 frames in 5.0 seconds = 5984.118 FPS
28185 frames in 5.0 seconds = 5636.796 FPS
29347 frames in 5.0 seconds = 5869.202 FPS
29644 frames in 5.0 seconds = 5928.789 FPS
29234 frames in 5.0 seconds = 5846.652 FPS
28770 frames in 5.0 seconds = 5753.883 FPS
29134 frames in 5.0 seconds = 5826.747 FPS
29706 frames in 5.0 seconds = 5941.031 FPS
29344 frames in 5.0 seconds = 5868.780 FPS
29803 frames in 5.0 seconds = 5960.432 FPS
29425 frames in 5.0 seconds = 5884.889 FPS
Comment 3 Alex Deucher 2020-01-17 14:49:07 UTC
radeonsi is the mesa OpenGL driver and runs over both radeon and amdgpu.  Are you actually using the radeon kernel driver?
Comment 4 Michel Dänzer 2020-01-17 15:10:28 UTC
(In reply to Alex Deucher from comment #3)
> Are you actually using the radeon kernel driver?

"DRM 2.50.0" says yes. :)
Comment 5 Jacques Belosoukinski 2020-01-17 15:28:14 UTC
(In reply to Alex Deucher from comment #3)
> radeonsi is the mesa OpenGL driver and runs over both radeon and amdgpu. 
> Are you actually using the radeon kernel driver?

Yes, i use the radeon driver after comment this line in /etc/modprobe.d/blacklist.conf :

#blacklist radeon

Actually i run on radeon driver.
Comment 6 Sylvain BERTRAND 2020-01-17 17:21:13 UTC
Owner and user of tahiti parts on amdgpu with a state of the art gfx stack
poping in.

I own "rise of the tomb raider" which gnu/linux port is vulkan only, and vulkan
is only available with the "amdgpu" kernel module (as far as I know).

I have not bought "shadow of the tomb raider", which is vulkan only too (the
port was coded by the same company).

I did clear "rise of the tomb raider" years ago, I cannot play it anymore
because the driver seems to miscompile some shaders and does gpu vm faults
(from my save file). I did open a bug.

I heard 'southern islands' parts (tahiti...) do suffer from a critical "mip
mapping" slowdown bug. That could explain the slugginesh of those hardware
parts in 3d intense games (I did almost stop playing "rise of the tomb raider"
because the 3d rendering was unpleasantly not smooth enough).

If you want, we can try to compare our benchmarks?
Comment 7 Jacques Belosoukinski 2020-01-17 18:45:28 UTC
I noticed something strange. When I do the Tomb Raider benchmark, the GPU usage is 100% and I hear the fans running at full speed after a few seconds.

The bench gives a result of a minimum of 37 fps, a maximum 70fps and an average of 55.3fps with the graphic parameters on ultimate.

There is something wrong, because during the "slum" sequence, I get a 10/15 fps framerate with a ridiculous GPU load.

screenshot : https://i.ibb.co/PrHj3hV/tombraider.jpg
Comment 8 Jacques Belosoukinski 2020-01-17 18:49:03 UTC
(In reply to Sylvain BERTRAND from comment #6)
> Owner and user of tahiti parts on amdgpu with a state of the art gfx stack
> poping in.
> 
> I own "rise of the tomb raider" which gnu/linux port is vulkan only, and
> vulkan
> is only available with the "amdgpu" kernel module (as far as I know).
> 
> I have not bought "shadow of the tomb raider", which is vulkan only too (the
> port was coded by the same company).
> 
> I did clear "rise of the tomb raider" years ago, I cannot play it anymore
> because the driver seems to miscompile some shaders and does gpu vm faults
> (from my save file). I did open a bug.
> 
> I heard 'southern islands' parts (tahiti...) do suffer from a critical "mip
> mapping" slowdown bug. That could explain the slugginesh of those hardware
> parts in 3d intense games (I did almost stop playing "rise of the tomb
> raider"
> because the 3d rendering was unpleasantly not smooth enough).
> 
> If you want, we can try to compare our benchmarks?

Sure, but I only have the first Tomb Raider, the one released in 2013 it seems to me. Do you know a command to record the game framerate log ?
Comment 9 Sylvain BERTRAND 2020-01-17 19:27:08 UTC
On Fri, Jan 17, 2020 at 06:45:28PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> screenshot : https://i.ibb.co/PrHj3hV/tombraider.jpg

This seems to be from "shadow of the tomb raider" which I don't "own".

Do you "own" "rise of the tomb raider", the previous tomb raider game (which I "own")?
Comment 10 Sylvain BERTRAND 2020-01-17 19:42:24 UTC
Wow, this from the first tomb raider, the one from 2013!! (7 years ago).

Sorry I read the emails in the wrong order.

I don't know own this game, sorry. Another game perhaps?
Comment 11 Sylvain BERTRAND 2020-01-17 20:14:48 UTC
Dota2? (vulkan and GL)
CS:GO? (GL)

Those games are free.
Comment 12 Jacques Belosoukinski 2020-01-18 09:34:16 UTC
The framerate with CS GO is not good with graphics on "high". I tried the Dust II map and I get a maximum of 90 fps in some places, a minimum of ~ 50 fps looking towards "middle" where the main door is.

It seems very weak to me.

For Dota 2 with Vulkan, the game runs at more than 100 fps in some places, but with a some elements on the screen, it's more around ~ 60fps. I noticed that as with other games, GPU usage is always low when there is a need for performance.

Screenshtos:
https://i.ibb.co/BTknwjH/csgo.jpg
https://i.ibb.co/c35Rxmg/dota2.jpg
Comment 13 Sylvain BERTRAND 2020-01-18 14:02:17 UTC
What is your CPU?
Comment 14 Sylvain BERTRAND 2020-01-18 14:14:54 UTC
BTW, your screenshots are of too low quality to be readable.
And what is the tool you user to overlay amd gpu performance? (vulkan?)
Comment 15 Jacques Belosoukinski 2020-01-18 15:00:49 UTC
(In reply to Sylvain BERTRAND from comment #14)
> BTW, your screenshots are of too low quality to be readable.
> And what is the tool you user to overlay amd gpu performance? (vulkan?)

Sorry you can view the full resolution here :

https://ibb.co/GCmHFkf
https://ibb.co/ZXsvNZL

I use Gallium HUD with this options :

GALLIUM_HUD="fps,cpu,GPU-load,VRAM-usage,draw-calls" %command%

(In reply to Sylvain BERTRAND from comment #13)
> What is your CPU?

My is CPU is an AMD FX 8320
Comment 16 Sylvain BERTRAND 2020-01-18 17:02:59 UTC
On Sat, Jan 18, 2020 at 03:00:49PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://ibb.co/GCmHFkf
> https://ibb.co/ZXsvNZL

Still the unreadable screenshots. huh??

> I use Gallium HUD with this options :

Gallium HUD does not work with vulkan (as far as I know), hence for dota2 vulkan.
In dota2 you have an option to display the 3d engine(valve source2) fps.

In cs:go, there is a way to enable the 3d engine(valve source1) fps display.
It is via the "console", see google.com.

> My is CPU is an AMD FX 8320

I have a FX9590, then our benchmarks should be mostly the same.
Comment 17 Jacques Belosoukinski 2020-01-18 20:59:14 UTC
(In reply to Sylvain BERTRAND from comment #16)
> On Sat, Jan 18, 2020 at 03:00:49PM +0000,
> bugzilla-daemon@bugzilla.kernel.org wrote:
> > https://ibb.co/GCmHFkf
> > https://ibb.co/ZXsvNZL
> 
> Still the unreadable screenshots. huh??
> 
> > I use Gallium HUD with this options :
> 
> Gallium HUD does not work with vulkan (as far as I know), hence for dota2
> vulkan.
> In dota2 you have an option to display the 3d engine(valve source2) fps.
> 
> In cs:go, there is a way to enable the 3d engine(valve source1) fps display.
> It is via the "console", see google.com.
> 
> > My is CPU is an AMD FX 8320
> 
> I have a FX9590, then our benchmarks should be mostly the same.

I downloaded the Vulkan DLC and active the FPS in Dota 2. I get between ~80 and 90 fps :

https://cdn.discordapp.com/attachments/410134758891323400/668192505740787762/20200118213508_1.jpg

https://cdn.discordapp.com/attachments/410134758891323400/668192505740787762/20200118213508_1.jpg

For CSGO, i get between ~70 and +100fps :

https://cdn.discordapp.com/attachments/410134758891323400/668197367094181899/20200118215441_1.jpg

https://cdn.discordapp.com/attachments/410134758891323400/668197384995733504/20200118215612_1.jpg
Comment 18 Sylvain BERTRAND 2020-01-18 21:32:17 UTC
On Sat, Jan 18, 2020 at 08:59:14PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> I downloaded the Vulkan DLC and active the FPS in Dota 2. I get between ~80
> and
> 90 fps :

I have ~ the same fps (even though it can go somewhat below in intense team fights)

> For CSGO, i get between ~70 and +100fps :

I have ~ the same for competitive maps.

For danger zone maps, namely big open maps, csgo 3d engine has disastrous
performance. Valve is aware of the problem. It seems there is a kind of cpu
cap somewhere since max or lowest 3d settings does not seem to impact
significantly the performance.

Don't forget: I heard southern island parts suffer from a critical mip mapping
bug/slowdown.

----

The real benchmark is how much time and how often the fps goes below 60 in the
worst realistic conditions (average does not matter).

---- 

I did re-install "rise of the tomb raider", I still get gpu vm faults.

If I recall properly "bioshock infinite" is gpu nasty even though it is a GL
game.
Comment 19 Jacques Belosoukinski 2020-01-19 13:11:15 UTC
Maybe that will help find the problem, but are record a video from Tomb Raider and The Witcher 2.

Tomb Raider: https://youtu.be/0olpvLBH9DA
The Witcher 2: https://youtu.be/wRx_2qJIq8c
Comment 20 Sylvain BERTRAND 2020-01-19 14:23:09 UTC
On Sun, Jan 19, 2020 at 01:11:15PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> Tomb Raider: https://youtu.be/0olpvLBH9DA

Indeed, this is obvious here

This vid rekt of the mip mapping hardware slow down bug... but I may be totally wrong
due to the insane complexity of the GL stack.
Comment 21 Jacques Belosoukinski 2020-01-21 08:01:49 UTC
Yesterday, I compiled and installed the 5.4.13 kernel, but got no improvements.
Comment 22 Sylvain BERTRAND 2020-01-21 15:53:24 UTC
On Tue, Jan 21, 2020 at 08:01:49AM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> Yesterday, I compiled and installed the 5.4.13 kernel, but got no
> improvements.

Only the AMD/mesa devs can reasonably deal with the insane complexity of the GL
stack (linux(drm) + libdrm + llvm + mesa(GL) + xserver + xf86-video-amdgpu).

But they won't be able to do anything if you don't run the latest git version
of the code (linux + mesa) and provide an easily reproducible and free (as in
free beer) case (or some AMD/mesa devs own your games).
--------------------------------------------------------------------------------
I run such a 64bits system. If you can reproduce the issue with a free (as in
free beer) game, I'll be pleased to test it to see if it happens on my system.

or

You would need to compile and run the following linux kernel:
"git://people.freedesktop.org/~agd5f/linux branch", "amd-staging-drm-next" branch

Unfortunately, Southern Islands hardware shader compiler is llvm, you would
need to compile the latest git llvm-project (a massive pain).

Idem for libdrm, mesa, the xserver, and the amdgpu xserver driver.
--------------------------------------------------------------------------------
Comment 23 Alex Deucher 2020-01-21 16:00:47 UTC
(In reply to Sylvain BERTRAND from comment #22)
> Only the AMD/mesa devs can reasonably deal with the insane complexity of the
> GL
> stack (linux(drm) + libdrm + llvm + mesa(GL) + xserver + xf86-video-amdgpu).

Is this roughly the same model every GPU vendor uses. GPUs are complex.
Comment 24 Sylvain BERTRAND 2020-01-21 18:10:34 UTC
> --- Comment #23 from Alex Deucher (alexdeucher@gmail.com) ---
> Is this roughly the same model every GPU vendor uses. GPUs are complex.

No offense intended! It is obvious that the maths being the same for everybody,
sensible hardware models will all look alike. It was more to underline the
significant "technical cost" difference between GL and vulkan.

To come back to this issue, I was willing to help this user "secure" a real
issue by reproducing it (since I run everything git) and provide a reasonable
context (free as in free beer) for you guys.
Comment 25 Jacques Belosoukinski 2020-01-22 18:22:21 UTC
I tried to compile the kernel "amd-staging-drm-next" but it's a horror, nothing works during compilation.

I just tried Dirt Rally which a Vulkan game, the performance is not good. I get an average of 30 fps at the benchmark result while the game is supposed to run at 60 fps in ultra setting.

Could changing distrbution help?
Comment 26 Jacques Belosoukinski 2020-01-22 22:05:32 UTC
Yes !

I forgot to check the output of dmesg | err!

Here are lots of nice messages while playing Tomb Raider :

80456.046410] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0004880c
[80456.046414] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[80456.046416] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0408800C
[80456.046418] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 2) at page 0, read from '' (0x00000000) (136)
[80456.324714] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0004880c
[80456.324721] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[80456.324723] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0408800C
[80456.324727] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 2) at page 0, read from '' (0x00000000) (136)
[80456.422582] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0004880c
[80456.422593] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[80456.422599] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0408800C
[80456.422606] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 2) at page 0, read from '' (0x00000000) (136)
[80473.031594] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000e880c
[80473.031601] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[80473.031605] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0E08800C
[80473.031610] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 7) at page 0, read from '' (0x00000000) (136)
[80477.432789] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0008880c
[80477.432795] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[80477.432797] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0808800C
[80477.432801] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 4) at page 0, read from '' (0x00000000) (136)
[80480.828014] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[80480.828025] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[80480.828031] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[80480.828040] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[81054.557056] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0008880c
[81054.557062] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[81054.557064] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0808800C
[81054.557067] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 4) at page 0, read from '' (0x00000000) (136)
[81054.640152] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0004880c
[81054.640161] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[81054.640165] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0408800C
[81054.640171] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 2) at page 0, read from '' (0x00000000) (136)
[81054.722106] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0004880c
[81054.722116] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[81054.722120] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0408800C
[81054.722126] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 2) at page 0, read from '' (0x00000000) (136)
[95566.215198] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0002880c
[95566.215204] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.215208] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0208800C
[95566.215212] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 1) at page 0, read from '' (0x00000000) (136)
[95566.230108] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0002880c
[95566.230114] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.230117] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0208800C
[95566.230120] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 1) at page 0, read from '' (0x00000000) (136)
[95566.278914] amdgpu 0000:01:00.0: GPU fault detected: 146 0x0002880c
[95566.278923] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.278927] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0208800C
[95566.278933] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 1) at page 0, read from '' (0x00000000) (136)
[95566.299712] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.299722] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.299727] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.299733] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95566.318446] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.318450] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.318451] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.318454] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95566.380189] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.380193] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.380195] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.380198] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95566.400966] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.400972] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.400976] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.400980] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95566.420512] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.420516] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.420518] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.420521] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95566.439104] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.439111] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.439114] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.439119] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95566.459230] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95566.459237] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95566.459240] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95566.459245] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.227323] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.227329] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.227333] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.227338] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.247587] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.247594] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.247598] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.247603] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.267222] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.267226] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.267227] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.267233] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.287203] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.287208] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.287210] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.287213] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.311337] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.311343] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.311346] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.311350] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.335510] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.335515] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.335517] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.335520] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.357131] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.357136] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.357138] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.357141] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.381006] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.381014] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.381020] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.381026] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.402502] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.402513] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.402518] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.402525] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
[95571.424923] amdgpu 0000:01:00.0: GPU fault detected: 146 0x000a880c
[95571.424930] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00000000
[95571.424934] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A08800C
[95571.424939] amdgpu 0000:01:00.0: VM fault (0x0c, vmid 5) at page 0, read from '' (0x00000000) (136)
Comment 27 Sylvain BERTRAND 2020-01-22 23:35:43 UTC
Dirt Rally is a GL game, not a vulkan game.

It happens I have it in my library even though I don't recall to buy
it.

Anyway I did run the included benchmark:
  - cpu governor to performance
  - monitor refresh rate 144Hz
  - 1920x1080
  - 8xmsaa
  - _no_ vsync
  - everything to max

avg fps: ~48fps
low fps: ~30fps
max fps: ~60fps

I get several GPU vm faults in dmesg too, but no crash (like in vulkan "rise of
the tomb raider").
Comment 28 Sylvain BERTRAND 2020-01-22 23:57:07 UTC
Actually I should have restarted the game.
I did reboot in a clean state and did set "performance" on the gpu as well.

Here are the results of "clean" benchmark run:
avg fps ~ 20fps
min fps ~ 15fps
max fps ~ 40fps

Still getting gpu vm faults in dmesg.
Comment 29 Jacques Belosoukinski 2020-01-23 00:20:03 UTC
Indeed Dirt Rally is an OpenGL game. I thought it was Vulkan, because I didn't see the HUD from Gallium, but it was an error in the settings.

The result benchmark in ultra (1920x1080, 8xmssa, no vsync):
avg fps ~ 23fps
min fps ~ 15fps
max fps ~ 31fps
Comment 30 Sylvain BERTRAND 2020-01-23 00:25:50 UTC
This is consistent with what I have.

I did a clean benchmark run, but this time everything to low/off, but still
1920x1080:
avg fps ~250fps
min fps ~200fps
max fps ~350fps

Still getting gpu vm faults in dmesg.

I run everything git and amd-staging-drm-next no older than 1 week.
Comment 31 Jacques Belosoukinski 2020-01-23 09:06:39 UTC
Is there a reason to have such poor performance with Dirt Rally compared to the Windows version which should run at an average of 70fps during the benchmark? I noticed that the GPU load was low on the benchmark unlike other circuits where the GPU load is 100%.
Comment 32 Sylvain BERTRAND 2020-01-23 15:22:47 UTC
> Is there a reason to have such poor performance with Dirt Rally compared to
> the
> Windows version which should run at an average of 70fps during the benchmark?
> I
> noticed that the GPU load was low on the benchmark unlike other circuits
> where
> the GPU load is 100%.

Ok. What settings did you use in the benchmark to compare dirt 3d engine on
windowsDX and linuxGL(mesa)? all to max(often ultra)/on?  with msaa?

We must run exactly the same settings.
Comment 33 Alex Deucher 2020-01-23 16:41:21 UTC
Windows has a much bigger team supporting it and optimizing for specific games.
Comment 34 Jacques Belosoukinski 2020-01-23 21:21:05 UTC
(In reply to Sylvain BERTRAND from comment #32)
> > Is there a reason to have such poor performance with Dirt Rally compared to
> > the
> > Windows version which should run at an average of 70fps during the
> benchmark?
> > I
> > noticed that the GPU load was low on the benchmark unlike other circuits
> > where
> > the GPU load is 100%.
> 
> Ok. What settings did you use in the benchmark to compare dirt 3d engine on
> windowsDX and linuxGL(mesa)? all to max(often ultra)/on?  with msaa?
> 
> We must run exactly the same settings.

Ultra settings with 8xmsaa, no vsync and 1920x1080.

I base myself on the different benchmarks visible on Windows in ultra with the R9 280X and 8320.

I did a benchmark with the settings on low, no xmsaa, no vsync:

min: 48fps
average: 71fps
max: 95fps

I run a benchmark with Heaven 4.0 with ultra settings :

FPS:	31.4
Score:	790
Min FPS:9.2
Max FPS:	
71.8
Comment 35 Sylvain BERTRAND 2020-01-23 21:41:30 UTC
On Thu, Jan 23, 2020 at 09:21:05PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=206231
> 
> --- Comment #34 from Jacques Belosoukinski (kentosama@whiteninjastudio.com)
> ---
> > > Windows version which should run at an average of 70fps during the...
> Ultra settings with 8xmsaa, no vsync and 1920x1080....

So you say that: everything to max/ultra/on + 8xmsaa an 1920x1080, on windows,
you get avg 70fps? yes or no? If yes, what are the max and min fps?
Comment 36 Jacques Belosoukinski 2020-01-23 22:05:26 UTC
No, I do not have Windows on this computer. There are several benchmark results available, moreover I noticed that Mesa has much lower performance compared to DirectX on Dirt Rally and other games.

I was convinced that Mesa was equivalent to DirectX, but it seems that OpenGL is much slower. It could therefore be "normal" performance if Mesa 3D is actually slower than DirectX.

I just compiled mesa from the git. I don't expect a difference in performance meaning, but I can hope so.
Comment 37 Jacques Belosoukinski 2020-01-23 22:33:18 UTC
Mesa 20 was installed :

OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon HD 7900 Series (TAHITI, DRM 3.35.0, 5.4.13-amd64, LLVM 9.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.0.0-devel (git-ac0219cc5b)
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.0-devel (git-ac0219cc5b)
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.0.0-devel (git-ac0219cc5b)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

New bench with ultra settings, 8 xmsaa and 1920x1080:
min: 14fps
average: 19fps
max: 27fps

Now the GPU is at 100% load during the whole bench, but I didn't hear the fans start.
Comment 38 Sylvain BERTRAND 2020-01-23 22:53:43 UTC
On Thu, Jan 23, 2020 at 10:05:26PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> --- Comment #36 from Jacques Belosoukinski (kentosama@whiteninjastudio.com)
> ---
> No, I do not have Windows on this computer. There are several benchmark
> results
> available, moreover I noticed that Mesa has much lower performance compared
> to
> DirectX on Dirt Rally and other games.

ok. Then we don't have numbers to compare to and weight how much mesaGL is worse
than dx for dirt rally 3D engine (modulo the hardware bugs/gpu vm faults/etc).

> New bench with ultra settings, 8 xmsaa and 1920x1080:
> min: 14fps
> average: 19fps
> max: 27fps

I guess, one would use the presets to get a min fps close to 60fps and ajust
with the advanced settings.
Comment 39 Jacques Belosoukinski 2020-01-24 14:17:25 UTC
I did different tests and there is a real bug.

With Dirt Rally in ultra, if I use 8mxsaa, I have miserable performance. If I set 0mxsaa in game, the performance is + ~60 fps. If I reactivate the 8mxsaa, the performances are very good between ~50 and ~70 fps. This is not normal.

With the game Dawn of War II, the framerate is ~48 fps in ultra, high, normal, low.

It is really very strange.

I noticed that the performances are good after a big lag. This was the case with Dirt Rally, on a race, the game freeze for a few seconds then suddenly, the game run with than ~ 60fps.

In the game Dead or Alive 5 (Proton), the performances were from ~ 40 to ~ 50fps. After a lag, the game worked very well at 60fps contant.
Comment 40 Sylvain BERTRAND 2020-01-24 14:52:55 UTC
Yep. this looks like a real critical software and/or hardware bug. Like the one
you did show it the tomb raider vid.

If you could reproduce with a free game, that would be better for the amd devs.

I'll fool around a bit more with dirt rally (don't forget to restart the game each time
you change the settings...)
Comment 41 Jacques Belosoukinski 2020-01-24 16:02:00 UTC
The core version of Dead or Alive 5 is free :
https://store.steampowered.com/app/311730/DEAD_OR_ALIVE_5_Last_Round_Core_Fighters/

The game works well, but as I reported, the framerate is very low during the first few minutes of play. I don't know if this is a problem with Proton or Mesa. I keep looking for free or popular Linux games, but there isn't much.
Comment 42 Sylvain BERTRAND 2020-01-24 16:19:38 UTC
WOW: I did reproduce with dirt rally. I could not see it because the game must
not be restarted to "uncripple" the renderer. I used the number or rendered frames
and I go from an horrible 3000-5000 frames to a wooping 11000 frames, not to mention
the game is now ~playable to max/ultra settings. I had to run 2 times in
a row the benchmark to "uncripple" the renderer, or fool around with the msaa
settings (without restarting).

And I get ~11000 frames with msaax8 or msaaoff (and I can clearly see when it
is on or off).

Since you can reproduce with other games-->Yep, it is very probably a set
driver/weird hardware critical bugs (modulo the numerous visual glitches and
gpu vm faults).

@alex: this one is nasty and probably will ruin the gaming experience (and
benchmarks!) on many games.

(@Jacques: Proton games do not do. Only native GL and/or vulkan, that to remove
any proton bugs)
Comment 43 Alex Deucher 2020-01-24 21:24:57 UTC
The first time you run the game the shaders are not cached and you may see large compile times.  The next time you run the game the shaders are cached and you avoid the compiling delays.
Comment 44 Sylvain BERTRAND 2020-01-24 21:47:44 UTC
On Fri, Jan 24, 2020 at 09:24:57PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=206231
> 
> --- Comment #43 from Alex Deucher (alexdeucher@gmail.com) ---
> The first time you run the game the shaders are not cached and you may see
> large compile times.  The next time you run the game the shaders are cached
> and
> you avoid the compiling delays.

I did not erazed the disk shader cache since the first time I did run the game. Then
the game is loading the shaders straight from the disk cache.

In other words, this presumes the shaders submitted for compilation by dirt
rally engine are different each time the game is run ???
Comment 45 Sylvain BERTRAND 2020-01-26 19:05:34 UTC
On Fri, Jan 24, 2020 at 09:47:44PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> In other words, this presumes the shaders submitted for compilation by dirt
> rally engine are different each time the game is run ???

It may be related to the brand new mesa/src/gallium/auxiliary/util/u_live_shader_cache.c

I don't know the inner details of this (I stay away from anything GL), but it
seems there are some GL shader usages which which will trigger a full
compilation of an already compiled shader.

@alex, maybe that's what you were talking about?

As I said, I may be totally wrong though.