-
Notifications
You must be signed in to change notification settings - Fork 854
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[d3d9] Early updates for textures #1901
Conversation
I'm not really in the bestest of situations to compile myself the thing. EDIT: if it can help anyway, I noticed all d3d9 drivers that I have seen (at least in ME1) have some sort of caching behaviour. In certain places after save has just been loaded, cpu is like maxed out at 100% on all cores for a dozen of seconds (with say 40 fps). After that, you get the right "80% usage across a couple of threads that is passed around" (and you get, say, 55 fps with gpu finally maxed out). |
Here's a build. |
I only implemented deferred texture uploads because some games depend on it because they keep writing after unlock or use the image while locked. Might be easier just to disable that behaviour for this game? |
It doesn't make the slightest difference. |
And I still can't reproduce that. At 4k, the game runs less than 20% slower with DXVK. |
Is this behavior the game or engine specific? I downloaded a random UE3 benchmark (PLA Benchmark) and it shows ~1% avg. FPS improvement in d3d9 mode with this patch. So should be bigger improvement in some specific scenes, I guess. I don't know where to look at. |
What if you try 8K with vsr? |
4k (4x) is the highest I can get with VSR. Aside from that, Nvidia doesnt support GPU profiling on my GPU. |
Try SSAA then I guess (hoping driver can force it in vulkan too)? |
No it can't.
No version ever supported Vulkan GPU profiling on anything older than Turing. Nothing I can do here. Just buy new hardware. |
Why don't you just go ahead and optimize it then? Tracy and optick are libraries that need to get integrated at a game engine level so they are obviously not useful here. There's nothing obviously wrong with what DXVK does and I'm not gonna waste anymore time on a game that already runs at 500 fps on my system. |
Mass Effect locks 2 textures every frame and those are always dirty so the game has to queue a copy and synchronize the gpu immediately afterwards.
So I propose copying the UpdateMappedBufferEarly approach from D3D11 and updating the mapping buffer after most writing operations (except if it's used as an RT). I put it behind a super simple heurstic though..
@mirh Please test if this PR improves performance for you.