Releases: jp7677/dxvk-nvapi
Releases ยท jp7677/dxvk-nvapi
Version 0.8
- Update NVAPI headers to R565.
- Update NVML headers to R565.
- Add implementation for
nvofapi64.dll
/ NVIDIA Optical Flow API. This serves as a pass-through implementation for D3D12 and Vulkan backends toVK_NV_optical_flow
for DLSS3 / Frame Generation. This requires VKD3D-Proton 2.14 and a Wine implementation with support for hardware scheduling (HAGS). - Add a basic implementation of
NvAPI_GPU_GetMemoryInfo
/NvAPI_GPU_GetMemoryInfoEx
, this fixes low resolution textures in Dishonored 2 (doitsujin/dxvk#4198) and possibly other titles. - Properly detect Ampere GPU family on Mesa NVK.
- Detect Maxwell Gen1 GPU family.
- Remove Ghost of Tsushima spoofing work around. This is no longer needed with the introduction of
nvofapi64.dll
, at least on Steam Proton. - Spoof Ampere architecture for Indiana Jones and the Great Circle to prevent crashes on Ada GPUs in combination with DLSS Frame Generation.
- Correctly forward LatencyMarker type into VKD3D-Proton, this might fix Reflex related issues.
- Introduce
DXVK_NVAPI_DISABLE_ENTRYPOINTS
variable for hiding NVAPI entry points. This is meant for troubleshooting only. - Improve logging, a.o. include compiler info on initialize and derive the log file name from the library (e.g.
nvapi64.dll
writes log statements tonvapi64.log
).
Version 0.7.1
- Fix application out of order frame ID issues to prevent flickering when Reflex is enabled. This accompanies VKD3D-Proton 2.13.
- Prevent a crash in Horizon Forbidden West when Reflex is enabled.
- Spoof Ampere architecture for Ghost of Tsushima to prevent frame time issues on Ada GPUs when NVAPI is visible.
- Spoof Pascal architecture for War Thunder to prevent crashes with DLSS enabled.
- Return success for several GPU queries for XDefiant to prevent crashes on startup.
- Introduce
DXVK_NVAPI_GPU_ARCH
environment variable for spoofing NVIDIA GPU architecture. This is meant for troubleshooting. - Update the formatting of log statements to be more Wine-like.
- Add a
trace
log level. This logs all entry points enter and exits. Using thetrace
log level affects performance and log file size.
Version 0.7
- Update NVAPI headers to R550.
- Update NVML headers to R550.
- Update Vulkan headers to 1.3.275.
- Add support for NVIDIA Reflex for D3D12 using VKD3D-Proton entry points. This requires VKD3D-Proton 2.12 or newer and NVIDIA driver 550 or newer. The LatencyFlex implementation for NVIDIA Reflex is still supported and has preference when being detected. Support for NVIDIA Reflex for D3D11 using DXVK entry points is still work-in-progress (doitsujin/dxvk#3690).
- Initialize successfully and report GPU architecture/capabilities when using Mesa NVK instead of the NVIDIA proprietary driver. Ampere is still reported as Turing though, this hopefully changes in the future. Note that features like DLSS depend on the NVIDIA proprietary driver and do not function on NVK.
- Report
999.99
as version for non-NVIDIA proprietary drivers unless the driver version is overridden by environment variable. Reporting Mesa version numbers turned out to be not very useful. - Add a basic implementation of
NvAPI_GPU_GetGPUInfo
, this allows Raytracing to be enabled in Hitman III (HansKristian-Work/vkd3d-proton#1148). - Spoof Pascal architecture for non-NIVIA GPUs, this allows Latencyflex on non-NVIDIA GPUs for a few titles.
- Support building with MSVC.
- Improve test suite.
Version 0.6.4
- Update NVAPI headers to R535.
- Update NVML headers to R535.
- Implement HDR support by forwarding the relevant calls into DXVK. This needs DXVK version DXVK 2.3 or newer. Note that the same requirements for HDR on DXVK apply to DXVK-NVAPI. Thus HDR is currently not possible on Linux with an NVIDIA GPU, but requires a.o. an AMD GPU, kernel patches, Gamescope and DXVK-NVAPI configured to initialize for other drivers.
- Initialize NVAPI when
DXVK_ENABLE_NVAPI=1
is set, regardless of the reported PCI vendor ID. This still needsDXVK_NVAPI_ALLOW_OTHER_DRIVERS=1
when not running on the NVIDIA proprietary driver. - Restore logging output on the console which was lost in certain circumstances.
- Closer match Windows behavior when reporting CUDA capabilities, this fixes a crash in Call of Duty: Ghosts.
Version 0.6.3
- Update NVAPI headers to R530.
- Update NVML headers to R530.
- Implement a few OpacityMicromap-related methods with declaring minimum RTX capabilities. This prevents Cyberpunk 1.62. from crashing or hanging when ray tracing is enabled.
- Add work around for The Last of Us Part 1 by letting several GPU queries return success, even when no real data is available. This allows this title to start when NVAPI is available.
- Add another entry point for querying SLI capabilities, this allows Hellblade: Senua's Sacrifice VR Edition to start when NVAPI is available.
- Skip an NVIDIA adapter when DXVK reports a different vendor. In other words, NVAPI initialization will fail when the DXVK NVAPI hack is still enabled. This is only relevant for manual Wine setups where DXVK-NVAPI is available in the Wine prefix, but DXVK is still configured to spoof an AMD GPU.
Version 0.6.2
- Add endpoints for creating D3D11 device and swapchain. This allows Call of Duty Plutonium launcher to start when NVAPI is available.
- Report VRAM size directly from DXVK. This ensures that DXVK-NVAPI honors manual DXVK memory size overrides.
- Fix a writing-out-of-bounds error when returning the adapter LUID that could potentially lead to crashes. No such case has been observed or reported though.
Version 0.6.1
- Improve handling of display IDs to closer mimic NVIDIA's NVAPI. This is effectively just a cosmetic improvement.
- Acquire Vulkan entry point from DXVK instead of loading Vulkan directly. This ensures that DXVK-NVAPI always uses the same Vulkan library as DXVK and prevents crashes when loaded libraries were different. This requires DXVK 2.1.
DXVK-NVAPI 0.6.1 must be used with DXVK 2.1 from now on, older DXVK versions will not work.
Version 0.6
- Update NVAPI headers to R525.
- Update NVML headers to R525.
- Report Ada architecture for NVIDIA 4000 series.
- Spoof Ampere instead of Ada or later for certain DLSS versions to prevent failing DLSS initialization.
- Spoof Pascal instead of Turing or later when detecting
Monster Hunter World
to prevent startup crashes. - Add several new entry points for querying GPU attributes using NVML (GPU core count, PCIe link width, IRQ). Most of those require wine-nvml v0.2.
- Re-implement several entry points for querying GPU system information using newer NVML methods (thermal states, dynamic performance states, BUS type). Those newer NVML methods better match their NVAPI counterparts and result in a more complete implementation of those entry points. This requires wine-nvml v0.2.
- Fix build error when building with GCC 12.
- Add internal optimizations (smaller compile units, code formatting with clang-format).
- Bump required meson version to 0.58.
Version 0.5.4
- Fix a writing-out-of-bounds error that could lead to crashes when adapter/display names or
git describe
reference during build time exceeds 64 characters.
Version 0.5.3
- Add entry points needed for NVIDIA Reflex by forwarding the relevant calls into LatencyFlex. LatencyFlex is now an optional runtime dependency, thus Reflex is available when LatencyFlex is properly set up. The recommended version is LatencyFlex 0.1.0. See also this note about Reflex and Usage about setup and titles known to work.
- Fix a crash when querying NVIDIA PhysX capabilities in certain conditions. This affected e.g. the NVIDIA Supersonic Sled Demo.
- Stub some methods for NVIDIA driver settings. This should make no difference in practice, but slightly improves logging statements.