What is the goal here? You want to force a game that is using vsync to not be vsynced?
Lower latency, and sure, that also.
Most of the time, they have the option to disable vsync. But this is the idea of possibly making sure that the sync layer is always in the immediate. And if can reduce even further by other changes, that also.
I'd expect the dxvk option to force period to 0. Maybe that's not hooked up for the interop DXGI swapchain. Maybe a question for @doitsujin.
But isnt vkd3d for dx12, while dxvk for dx11? I want to know for dx12.
Does dxvk still has an effect on dx12?
Yes. DXVK's DXGI implementation is used for D3D12 too. It forwards calls to vkd3d-proton.
I see.
But can you tell what VKD3D_SWAPCHAIN_LATENCY_FRAMES and VKD3D_SWAPCHAIN_IMAGES have in relation to latency in all this?
VKD3D_SWAPCHAIN_LATENCY_FRAMES is used for latency limiting on Present. It's mostly relevant for FIFO modes, but I suppose it can be useful for IMMEDIATE too, but it would make sure that CPU cannot run too far ahead of GPU. It's basically a DIY NV Reflex in that case.
@HansKristian-Work What would be the ideal value for lowest latency with VKD3D_SWAPCHAIN_LATENCY_FRAMES in immediate?
Also, what is VKD3D_SWAPCHAIN_IMAGES and is it related to back buffers? If not, what is it's relation to latency?
What would be the ideal value for lowest latency with VKD3D_SWAPCHAIN_LATENCY_FRAMES in immediate?
1, but FPS might drop due to missing CPU/GPU overlap. 2 should be ideal.
Also, what is VKD3D_SWAPCHAIN_IMAGES and is it related to back buffers? If not, what is it's relation to latency?
It is, but with present wait, number of swapchain images does not matter for latency.
VKD3D_SWAPCHAIN_LATENCY_FRAMESx5 2025-01VKD3D_SWAPCHAIN_IMAGESx4 2025-01
Hi,
How can I enable
VK_PRESENT_MODE_IMMEDIATE_KHR(aka, tearing enabled) and make sure it's being used?https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentModeKHR.html
With Nvidia.
Is it related to
VKD3D_SWAPCHAIN_LATENCY_FRAMESset to1?With 2 frame latency where CPU and GPU are decently subscribed, the present wait event will come in with VBlank-alignmentDoes this mean if I set to
1, there would be no vblank? If I understood incorrectly, what would?It seem to make sense, as it is following similarly to gpu drivers, where priority are not input latency.
Nvm, I think I found it.
So,
0would be the one to beimmediate. As long as0does not go back to default3, like in does in gpu driver setting.Unless the
request->swap_interval = SyncInterval;has nothing to do withVKD3D_SWAPCHAIN_LATENCY_FRAMES.If not, what does?
I wonder if
VKD3D_SWAPCHAIN_IMAGEShas anything related to low latency? Maybe it should be tested with0or1.Maybe it's similar to backbuffer from dxvk https://github.com/doitsujin/dxvk/issues/1636#issuecomment-632595403
Is it?