HansKristian-Work / vkd3d-proton

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
GNU Lesser General Public License v2.1
1.75k stars 184 forks source link

vkd3d: Ensure monotonic frame ID order for Reflex. #1951

Closed HansKristian-Work closed 2 months ago

HansKristian-Work commented 3 months ago

Some applications use app IDs in "random" order which completely breaks the existing implementation.

adamnv commented 3 months ago

I gave this a spin. It successfully avoids the slow swapchain-thrashing that was previously reproducible in Spider-Man Miles Morales, Ratchet & Clank, and RoboCop Rogue City.

HansKristian-Work commented 3 months ago

@esullivan-nvidia This exposes a bug on NV driver. When IDs aren't one after the other, the algorithm seems to break down. This is especially the case in GetLatencyTimingsNV where the outputs are complete bogus when using stride != 1.

HansKristian-Work commented 2 months ago

@esullivan-nvidia any updates?

esullivan-nvidia commented 2 months ago

I have submitted the fix for this issue internally. It should ship in the next developer beta driver. I will let you know when that happens.

HansKristian-Work commented 2 months ago

Seems to work on latest beta driver, yes.

esullivan-nvidia commented 2 months ago

LGTM, thanks!