Even if some native games are CPU bound, I wouldn't call their renderers necessary CPU hungry since it might be game logic being CPU bound. Try an emulator renderer like Citra's or Cemu's which ensures the renderer is on a CPU bound thread and you'll see a significant handicap on the AMD OpenGL driver of Windows compared to Mesa on Linux.
PS. Most native PC games are efficient enough at the system side of rendering to not be low FPS before that condition is met, so people don't even notice. But in those specific cases that the FPS remains low because of that condition, the OpenGL driver for Windows reveals that it's significantly inefficient.
Hello mirh, using the gl_vs_vk on AMD R9 Fury + latest driver, i can get the result ~5fps, ~30fps and ~90fps respectively. May I have the latest test result from your side, as well as the GPU/OS/driver info?
I just tested the GL_vs_VK tool on an Nvidia NVS 315 (pretty much a display adapter rather than a graphics card) using Windows 10 and The 391.03 Quadro driver.
These are the results of my test:
Test1: 11FPS
Test2: 61FPS
Test3: 32-53FPS (Fluctuates quite a bit)
Considering I beat the R9 Fury, a card which is vastly more powerful than this thing I'm using in 2 of the 3 tests by over 2x, that is an abysmal showing from the R9 card.
Same results of last time (for as much as the E8400 became a Q9505)
The 7750 is on windows 7x64 with latest 18.8.1
My very broadly educate guess is that you are massively getting cpu-limited.
Hello mirh refractionpcsx2, gl_vs_vk has Vulkan support, are you seeing performance gap for VK?
Hi xhuang, sorry this NVS 315 doesn't support vulkan as far as I can tell so I am unable to test that on this machine.
Just for some additional test data, I had a friend test his AMD card to see what results he gets, they are as follows
GPU: Asus AMD R7 360
OS: Windows 7 64bit
Driver version: 18.8.1
Vulkan:
Test 1: 18 fps
Test 2: 58 fps
Test 3: 148-192 fps
OpenGL:
Test 1: 6 fps
Test 2: 41 fps
Test 3: 150 fps
As for myself, I can try it on my GTX 980Ti tonight to see what kind of performance numbers that gives.
Edit:
Ok tested my 980Ti using the 397.93 drivers (CPU is an i5 4690k @ 4.3Ghz), here's the results, I would expect an R9 Fury to be at least 75% of these results.
OGL
Test 1: 25 FPS
Test 2: 91 FPS
Test 3: 298 FPS
VK
Test 1: 35 FPS
Test 2: 153 FPS
Test 3: 1300-1800 FPS (and a lot of squeeling xD )
Thanks for you information.
We will investigate this issue. Most likely we will start with gl_vs_vk first. Will update you updated if we find something.
I do not know it's related but I have noticed a performance problems with some older games in D3D9 related to vertex processing.
Even in quite new game - Final Fantasy XIII - transferring a 358400 bytes vertex buffer kills performance on my old R7 360 and game is doing this in all the frames.
When I forced to change pool in IDirect3DDevice9::CreateVertexBuffer from D3DPOOL_MANAGED to D3DPOOL_SYSTEMMEM so the buffer stays in RAM - 60FPS vs 15FPS (tested in save menu - that vertex buffer contains vertices of menu elements like hand cursor etc).
It is possible that some common code in AMD driver responsible of vertex processing have a performance flaws.
I have a code for my tweaks in a wrapper on github here: GitHub - Nucleoprotein/OneTweakNG: OneTweak for all games with game performance fixes.
Something similar happens also in RE4 (not HD) and King Bounty The Legend - but for that games I change behavior flags in IDirect3D9::CreateDevice to D3DCREATE_MIXED_VERTEXPROCESSING - thats fixes them (>60FPS vs 30-40FPS in KB, 30FPS vs 15FPS in RE4)
Hello again,
I noticed a much improvement in radv:
radv: Align large buffers to the fragment size. - Patchwork
ie. patch to allocate VRAM as power of two, that was added also to drm/amdgpu for linux 4.20, maybe it benefit Windows too, dunno what you currently using in Windows drivers, but this is good point of start looking.
Hello tapek<javascript:;>, really appreciate your input trying to help us improve our performance. I've already sent the notice to the dev team. Thank you again!