jp7677 / dxvk-nvapi

Alternative NVAPI implementation on top of DXVK.
MIT License
353 stars 32 forks source link

nvapi does not work in wine 9 with winewayland.drv driver enabled #150

Closed ghost closed 5 months ago

ghost commented 5 months ago

A few hours ago the stable release of Wine 9.0 was released, which added an experimentation of running natively under wayland without xwayland, I decided to check it out by playing a game

As an example, I had Alan wake II, and running it, I noticed that features such as DLSS were missing from the game settings, and some of the RT features, I decided to run the game again but in x11, and settings such as DLSS became available

How to check

  1. Use wine 9.0
  2. Make sure what you enabled Wayland driver wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland and and then making sure that the DISPLAY environment variable is unset,
  3. Make sure that nvapi is enable
  4. Run game who supports nvidia stuff (DLSS for example) under wayland session
  5. Go to the game settings and you will see that there is no DLSS function, only FSR (if the game supports)

Additional information that may be helpful

jp7677 commented 5 months ago

Thanks for the report. Interesting. Could you please try to fetch and post log files from dxvk-nvapi with x11 and with Wayland. See https://github.com/jp7677/dxvk-nvapi#tweaks-debugging-and-troubleshooting

AlexeySFr commented 5 months ago

Thanks for the report. Interesting. Could you please try to fetch and post log files from dxvk-nvapi with x11 and with Wayland. See https://github.com/jp7677/dxvk-nvapi#tweaks-debugging-and-troubleshooting

I think I should close the problem, as now I have nvapi now not working at all, on any version of wine, I think I was in a hurry to create this report here, sorry for possibly misinformation.

jp7677 commented 5 months ago

No worries, feel free to reopen if something new comes up.

oscarbg commented 4 months ago

EDIT: created issue https://github.com/jp7677/dxvk-nvapi/issues/165 with same info.. can delete this post if desired..

similar issue but even with no winewayland.drv.. using wine 9.3 master and DXVK-nvapi with reflex:v0.6.4-57-gb54c9fe seeing logs of vk_streamline app on X11 vs Wayland.. this breaks use of DLSS for example.. using Wine master and specifically I see new errors in Wayland in DXVK logs:

warn:  DXGI: Found monitors not associated with any adapter, using fallback
info:  Adapter LUID 0: 0:3f6
err:   readMonitorEdidFromKey: Failed to get EDID reg key size
err:   DXGI: Failed to parse display metadata + colorimetry info, using blank.

not present in X11..

which lead to streamline logs in Wayland:

[07.03.2024 03-51-03][streamline][info]commoninterface.cpp:261[getSystemCaps] NVIDIA driver 550.40
[07.03.2024 03-51-03][streamline][error]commoninterface.cpp:271[getSystemCaps] NvAPI_GPU_GetLogicalGpuInfo(hLogicalGPU, &lData) failed error -1

vs on X11:

[07.03.2024 03-48-31][streamline][info]commoninterface.cpp:261[getSystemCaps] NVIDIA driver 550.40
[07.03.2024 03-48-31][streamline][info]commoninterface.cpp:286[getSystemCaps] Adapter 0 architecture 0x190 implementation 0x2 revision 0xffffffff - bit 0x1 - LUID 0.1010

full nvapi64-tests show diff is error is related to LUID retrieval not working in DXVK(?) or DXVK-NVAPI(?=): wayland:

Adapter ID/LUID:            N/A

X11: Adapter ID/LUID: f2030000-00000000 (0x00000000/0x000003f2) full logs: wayland:

wine64 nvapi64-tests.exe 
0098:fixme:wineusb:query_id Unhandled ID query type 0x5.
0098:fixme:wineusb:query_id Unhandled ID query type 0x5.
0098:fixme:wineusb:query_id Unhandled ID query type 0x5.
Randomness seeded to: 487401473
info:  Game: nvapi64-tests.exe
info:  DXVK: v2.3-26-g5e06cf95737ccf80
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x6ffffc433fd0
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_EXT_surface_maintenance1
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  NVIDIA GeForce RTX 4070:
info:    Driver : NVIDIA 550.40.53
info:    Memory Heap[0]: 
info:      Size: 12282 MiB
info:      Flags: 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:      Memory Type[4]: Property Flags = 0x7
info:    Memory Heap[1]: 
info:      Size: 72204 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[3]: Property Flags = 0xe
warn:  DXGI: Found monitors not associated with any adapter, using fallback
info:  Adapter LUID 0: 0:3f5
0024:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x7ffffe2fa96c, paths 0x7ffffeb2c4d0, modes_count 0x7ffffe2fa9d0, modes 0x7ffffeaff8c0, topology_id (nil) semi-stub
err:   readMonitorEdidFromKey: Failed to get EDID reg key size
err:   DXGI: Failed to parse display metadata + colorimetry info, using blank.
--------------------------------
Interface version:              NVAPI Open Source Interface (DXVK-NVAPI)
Driver version:                 550.40
Driver branch:                  r550_v0.6.4-57-gb54c9fe
Driver base branch:             r550
    ----------------------------
    GPU 0
    GPU name:                   NVIDIA GeForce RTX 4070
    GPU type:                   2 (Discrete)
    Device ID:                  0x278610de
    Subsystem ID:               N/A
    Bus:Slot ID:                PCI:01:00
    Board ID:                   0x100
    Physical framebuffer size:  12282MB
    Adapter ID/LUID:            N/A
    Architecture ID:            0x00000190 (Ada)
    Implementation ID:          0x00000002
    GPU core count:             N/A
    Current PCIe link width:    N/A
    IRQ:                        N/A
    Compute capable:            Yes (Compute GPU topology flags: 0x0b)
    VBIOS version:              N/A
    Current GPU utilization:    N/A
    Current memory utilization: N/A
    Current video utilization:  N/A
    Current GPU temperature:    N/A
    Current performance state:  N/A
    Current graphics clock:     N/A
    Current memory clock:       N/A
    Current video clock:        N/A
    Connected display ID(s):    0x00010001

    ----------------------------
    Display 0
    Display name:               \\.\DISPLAY1 (Primary)
    Display ID:                 0x00010001
    Connected to:               GPU 0
    ST2084/HDR support:         -
    Primary 0/red:              X = 32000, Y = 16500
    Primary 1/green:            X = 15000, Y = 30000
    Primary 2/blue:             X = 7500, Y = 3000
    White point:                X = 15635, Y = 16450
    Desired luminance:          Min = 0.5, Max = 270, Max frame avg = 270

===============================================================================
All tests passed (82 assertions in 1 test case)

x11:

wine64 nvapi64-tests.exe 
0098:fixme:wineusb:query_id Unhandled ID query type 0x5.
0098:fixme:wineusb:query_id Unhandled ID query type 0x5.
0098:fixme:wineusb:query_id Unhandled ID query type 0x5.
Randomness seeded to: 3760266711
info:  Game: nvapi64-tests.exe
info:  DXVK: v2.3-26-g5e06cf95737ccf80
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x6ffffa083fd0
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_EXT_surface_maintenance1
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  NVIDIA GeForce RTX 4070:
info:    Driver : NVIDIA 550.40.53
info:    Memory Heap[0]: 
info:      Size: 12282 MiB
info:      Flags: 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:      Memory Type[4]: Property Flags = 0x7
info:    Memory Heap[1]: 
info:      Size: 72204 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[3]: Property Flags = 0xe
0024:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x7ffffe2fe2f8, paths 0x7ffffeb285c0, modes_count 0x7ffffe2fe2fc, modes 0x7ffffeaff910, topology_id (nil) semi-stub
0024:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x7ffffe2fe2f8, paths 0x7ffffeb285c0, modes_count 0x7ffffe2fe2fc, modes 0x7ffffeaff910, topology_id (nil) semi-stub
0024:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x7ffffe2fdb98, paths 0x7ffffeb2c520, modes_count 0x7ffffe2fdb9c, modes 0x7ffffeaff910, topology_id (nil) semi-stub
0024:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x7ffffe2fa96c, paths 0x7ffffeb2c520, modes_count 0x7ffffe2fa9d0, modes 0x7ffffeaff910, topology_id (nil) semi-stub
0024:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x7ffffe2fdb98, paths 0x7ffffeb2c520, modes_count 0x7ffffe2fdb9c, modes 0x7ffffeaff910, topology_id (nil) semi-stub
--------------------------------
Interface version:              NVAPI Open Source Interface (DXVK-NVAPI)
Driver version:                 550.40
Driver branch:                  r550_v0.6.4-57-gb54c9fe
Driver base branch:             r550
    ----------------------------
    GPU 0
    GPU name:                   NVIDIA GeForce RTX 4070
    GPU type:                   2 (Discrete)
    Device ID:                  0x278610de
    Subsystem ID:               N/A
    Bus:Slot ID:                PCI:01:00
    Board ID:                   0x100
    Physical framebuffer size:  12282MB
    Adapter ID/LUID:            f2030000-00000000 (0x00000000/0x000003f2)
    Architecture ID:            0x00000190 (Ada)
    Implementation ID:          0x00000002
    GPU core count:             N/A
    Current PCIe link width:    N/A
    IRQ:                        N/A
    Compute capable:            Yes (Compute GPU topology flags: 0x0b)
    VBIOS version:              N/A
    Current GPU utilization:    N/A
    Current memory utilization: N/A
    Current video utilization:  N/A
    Current GPU temperature:    N/A
    Current performance state:  N/A
    Current graphics clock:     N/A
    Current memory clock:       N/A
    Current video clock:        N/A
    Connected display ID(s):    0x00010001

    ----------------------------
    Display 0
    Display name:               \\.\DISPLAY1 (Primary)
    Display ID:                 0x00010001
    Connected to:               GPU 0
    ST2084/HDR support:         -
    Primary 0/red:              X = 33642, Y = 15673
    Primary 1/green:            X = 13818, Y = 32617
    Primary 2/blue:             X = 7617, Y = 2392
    White point:                X = 15625, Y = 16406
    Desired luminance:          Min = 0.5, Max = 270, Max frame avg = 270

===============================================================================
All tests passed (82 assertions in 1 test case)