protonscr

Performance of state heavy applications

dxvkclosed
doitsujin/dxvk#772 · opened 2018-11-17 by SpookySkeletons · updated 2018-12-05 · 6 comments · github
SSpookySkeletons 2018-11-17 github

State heavy games seem to take a really hard toll on performance and dip well below the 80-90% performance rates I see everywhere else.

As far as I understand it would a similar caching mechanism to shader cache be able to be extended to any other element of the pipeline? Is it preferable to make some kind of a time/memory tradeoff in order to allocate GPU memory to reuse state to boost general performance?

Ddoitsujin maintainer 2018-11-17 github

What do you mean by "state-heavy games" and what exactly do you want to cache?

SSpookySkeletons 2018-11-17 github

Games heavily reliant on streaming elements that must be performed in a sequence.
Is it possible to cache any inputs of streaming elements so that they can be reused, the same way that shader state cache is done, and match them up to run calls in parallel?

Ddoitsujin maintainer 2018-11-17 github

I still don't understand what exactly you mean. What's a "streaming element"? Do you have any example of problematic API usage?

SSpookySkeletons 2018-11-17 github

The game itself I'm having trouble with is Space Engineers now that it functions under wine at about 2/3 of the dx11 performance under most circumstances.
I don't know much about how graphical APIs work, was throwing some conjecture to see if I was onto anything, the game makes heavy use of stream output so I thought that might contribute, but I am going to try to get a trace of the game to pick through. What is your preferred trace method?
Would a Vulkan capture with renderdoc be any use for figuring out the slowdown?

Ddoitsujin maintainer 2018-11-17 github

Would a Vulkan capture with renderdoc be any use for figuring out the slowdown?

If you have an AMD Polaris card (RX 480/580 and similar models), then I could take a look at it, yes. Unfortunately, Vulkan renderdoc captures are not portable.

Otherwise, apitrace should hopefully work (see Wiki/Common Issues).

Ddoitsujin maintainer 2018-12-05 github

Closing due to the lack of feedback, and this doesn't seem to be a bug to begin with.

Nothing extracted yet.