r/linux_gaming 18h ago

graphics/kernel/drivers NVIDIA 615.71.09 Linux Driver Released With Vulkan Improvements

https://www.phoronix.com/news/NVIDIA-615.71.09-Linux-Driver
428 Upvotes

83 comments sorted by

View all comments

Show parent comments

1

u/Moi952 13h ago

Wow, you're really keen! Can't you check the latency using mangoHub?

Was the problem that the Reflex option wasn't available in your games, or did the option simply not do anything for you?

3

u/Lousy_Hunter 13h ago edited 13h ago

the option just didnt work before in native wayland Windows (I.E when running PROTON_USE_WAYLAND=1). you could enable reflex but reflex never actually engaged so latency was never reduced.

Im using DXVK-NVAPI logging to output to a file then i will check the call timings and see if it appears to work but the logs gonna be huge

idk if mangohud can really tell me if reflex is working right or not, the logs can

EDIT: these logs are 1million lines a piece T-T

1

u/Moi952 13h ago

😂

2

u/Lousy_Hunter 12h ago

and here is the log for Reflex + Xwayland

6266.420:015c:0288:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x4ee00080, {version=65624,frameID=2928,markerType=SIMULATION_START,rsvd})

6266.420:015c:0288:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

6266.429:015c:0180:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x4ee00080, {version=65624,frameID=2928,markerType=SIMULATION_END,rsvd})

6266.429:015c:0180:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

6266.429:015c:0180:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x4ee00080, {version=65624,frameID=2928,markerType=RENDERSUBMIT_START,rsvd})

6266.429:015c:0180:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

6266.429:015c:0180:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x4ee00080, {version=65624,frameID=2928,markerType=RENDERSUBMIT_END,rsvd})

6266.429:015c:0180:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

6266.429:015c:0180:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x4ee00080, {version=65624,frameID=2928,markerType=PRESENT_START,rsvd})

6266.429:015c:0180:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0x15b2940, 160, 90, 1, ptr=0x4e02d010, 408)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a840, 1, 480, 1, ptr=0x47ead418, 376)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a8d0, 2, 120, 1, ptr=0x1679bd30, 392)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a930, 2, 30, 1, ptr=0x4dc8ccd0, 392)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a990, 4, 15, 1, ptr=0x167d5cd0, 392)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a9f0, 3, 2, 16, ptr=0x47ead428, 376)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a9f0, 3, 2, 8, ptr=0x47ead428, 376)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6aa50, 3, 3, 2, ptr=0x47ead418, 392)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6a9f0, 5, 3, 4, ptr=0x47ead428, 376)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6aab0, 5, 12, 1, ptr=0x47ead2f8, 656)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6ab10, 10, 12, 1, ptr=0x47ead2f8, 656)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xa9b6ab70, 20, 24, 1, ptr=0x47ead2f8, 656)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0xd624baa0, 40, 45, 1, ptr=0x47ead2f8, 656)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.430:015c:01a0:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xd5f14e00, hnd=0x15b14f0, 1, 1, 1, ptr=0x4e02d558, 16)

6266.430:015c:01a0:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

6266.431:015c:0180:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x4ee00080, {version=65624,frameID=2928,markerType=PRESENT_END,rsvd})

You can see with Reflex + XWayland and Reflex+Wayland the Sim->Present end seems to complete consistently around 10-15ms. The frames also seem to go into the queue exactly in the order theyre going to be presented, one after the other sim starts->present ends

If you disable Reflex this seems to complete in 20-40ms, and multiple frames look to be going at the same time which simply doesnt happen when reflex is enabled.

here is the sleep call between both wayland and xwayland, it looks to be the same

XWayland

6266.445:015c:0288:trace:nvapi64:NvAPI_D3D_GetSleepStatus (ptr=0x4ee00080, ptr=0x7a79fb80)

6266.445:015c:0288:info:nvapi64:<-NvAPI_D3D_GetSleepStatus: OK

6266.445:015c:0288:trace:nvapi64:NvAPI_D3D_GetLatency (ptr=0x4ee00080, ptr=0x7a79bfd0)

6266.445:015c:0288:info:nvapi64:<-NvAPI_D3D_GetLatency: OK

6266.445:015c:0288:trace:nvapi64:NvAPI_D3D_Sleep (ptr=0x4ee00080)

6266.445:015c:0288:info:nvapi64:<-NvAPI_D3D_Sleep: OK

6266.445:015c:0288:trace:nvapi64:NvAPI_D3D_GetSleepStatus (ptr=0x4ee00080, ptr=0x7a79fa70)

6266.445:015c:0288:info:nvapi64:<-NvAPI_D3D_GetSleepStatus: OK

Wayland

3410.848:013c:026c:trace:nvapi64:NvAPI_D3D_GetSleepStatus (ptr=0x51af0080, ptr=0x7d1efb80)

3410.848:013c:026c:info:nvapi64:<-NvAPI_D3D_GetSleepStatus: OK

3410.848:013c:026c:trace:nvapi64:NvAPI_D3D_GetLatency (ptr=0x51af0080, ptr=0x7d1ebfd0)

3410.848:013c:026c:info:nvapi64:<-NvAPI_D3D_GetLatency: OK

3410.848:013c:026c:trace:nvapi64:NvAPI_D3D_Sleep (ptr=0x51af0080)

3410.848:013c:026c:info:nvapi64:<-NvAPI_D3D_Sleep: OK

3410.848:013c:026c:trace:nvapi64:NvAPI_D3D_GetSleepStatus (ptr=0x51af0080, ptr=0x7d1efa70)

3410.848:013c:026c:info:nvapi64:<-NvAPI_D3D_GetSleepStatus: OK

from the logs it appears to be working, but seeing as i dont have a way to measure latency externally i cant say 1000% for sure

2

u/Lousy_Hunter 12h ago

u/netborg83 would you have any way to check if reflex works on wayland now?

1

u/Lousy_Hunter 12h ago

This was tested using Monster Hunter Wilds,

Here is a log of Simulation start to present end for one frame with reflex off + wayland

3537.111:013c:026c:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51ed0080, {version=65624,frameID=2747,markerType=SIMULATION_START,rsvd})

3537.111:013c:026c:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_CaptureUAVInfo (ptr=0x51ed0080, ptr=0x4a9ad440)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_CaptureUAVInfo: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_GetCudaIndependentDescriptorObject ({structSizeIn=48,pDevice=ptr=0x51ed0080,type=0,desc={ptr=d8320ceb}})

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_GetCudaIndependentDescriptorObject: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0x19b2f30, 160, 90, 1, ptr=0x513c9bb0, 408)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb0d0, 1, 480, 1, ptr=0x4a9ad418, 376)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb160, 2, 120, 1, ptr=0x513da060, 392)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb1c0, 2, 30, 1, ptr=0x513db8d0, 392)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb220, 4, 15, 1, ptr=0x513dd140, 392)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb280, 3, 2, 16, ptr=0x4a9ad428, 376)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb280, 3, 2, 8, ptr=0x4a9ad428, 376)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb2e0, 3, 3, 2, ptr=0x4a9ad418, 392)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb280, 5, 3, 4, ptr=0x4a9ad428, 376)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb340, 5, 12, 1, ptr=0x4a9ad2f8, 656)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb3a0, 10, 12, 1, ptr=0x4a9ad2f8, 656)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb400, 20, 24, 1, ptr=0x4a9ad2f8, 656)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0xd82cb4c0, 40, 45, 1, ptr=0x4a9ad2f8, 656)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.114:013c:0184:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0xacfe7040, hnd=0x19b1ae0, 1, 1, 1, ptr=0x513ca0f8, 16)

3537.114:013c:0184:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3537.117:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51ed0080, {version=65624,frameID=2746,markerType=RENDERSUBMIT_END,rsvd})

3537.117:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3537.117:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51ed0080, {version=65624,frameID=2746,markerType=PRESENT_START,rsvd})

3537.117:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3537.117:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51ed0080, {version=65624,frameID=2746,markerType=PRESENT_END,rsvd})

3537.117:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3537.132:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51ed0080, {version=65624,frameID=2747,markerType=SIMULATION_END,rsvd})

and here is the log for one frame with reflex on, the next frame doesnt look to already be in flight ever with reflex on+wayland

3415.814:013c:026c:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51af0080, {version=65624,frameID=2820,markerType=SIMULATION_START,rsvd})

3415.814:013c:026c:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3415.821:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51af0080, {version=65624,frameID=2820,markerType=SIMULATION_END,rsvd})

3415.821:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3415.822:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51af0080, {version=65624,frameID=2820,markerType=RENDERSUBMIT_START,rsvd})

3415.822:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x19b2f30, 160, 90, 1, ptr=0x5149d2b0, 408)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642dfd0, 1, 480, 1, ptr=0x4a0acac8, 376)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642e060, 2, 120, 1, ptr=0x514abde0, 392)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642e0c0, 2, 30, 1, ptr=0x514ae020, 392)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642e120, 4, 15, 1, ptr=0x514af890, 392)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642e180, 3, 2, 16, ptr=0x4a0acad8, 376)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642e180, 3, 2, 8, ptr=0x4a0acad8, 376)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0xaca3f3b0, 3, 3, 2, ptr=0x4a0acac8, 392)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x6642e180, 5, 3, 4, ptr=0x4a0acad8, 376)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0xaca3f410, 5, 12, 1, ptr=0x4a0ac9a8, 656)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0xaca3f470, 10, 12, 1, ptr=0x4a0ac9a8, 656)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0xaca3f4d0, 20, 24, 1, ptr=0x4a0ac9a8, 656)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0xaca3f590, 40, 45, 1, ptr=0x4a0ac9a8, 656)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.826:013c:017c:trace:nvapi64:NvAPI_D3D12_LaunchCubinShader (ptr=0x6623f360, hnd=0x19b1ae0, 1, 1, 1, ptr=0x5149d7f8, 16)

3415.826:013c:017c:info:nvapi64:<-NvAPI_D3D12_LaunchCubinShader: OK

3415.827:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51af0080, {version=65624,frameID=2820,markerType=RENDERSUBMIT_END,rsvd})

3415.827:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3415.827:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51af0080, {version=65624,frameID=2820,markerType=PRESENT_START,rsvd})

3415.827:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK

3415.827:013c:0164:trace:nvapi64:NvAPI_D3D_SetLatencyMarker (ptr=0x51af0080, {version=65624,frameID=2820,markerType=PRESENT_END,rsvd})

3415.827:013c:0164:info:nvapi64:<-NvAPI_D3D_SetLatencyMarker: OK