Added Traditional Chinese (thanks to DuolaD) and Brazilian Portuguese (thanks to TKPorreta) translations
Added config options to force registering DirectX and OpenGL hooks always (otherwise OpenGL hooks will e.g. not be installed by default when wrapping a DirectX library like dxgi.dll)
[INSTALL]
HookOpenGL=1
HookDirectX=1
Added config option to hook NVIDIA Streamline interposer exports (requires loading ReShade through name other than dxgi.dll)
[INSTALL]
HookStreamline=1
Reworked DXGI hooks to prefer usage of proxy classes
Reworked OpenGL and Vulkan entry point loading
(Add-on support) Added "addon_event::finish_present" event that is called after successful presentation
(Add-on support) Added "effect_runtime::save_screenshot" API
(Add-on support) Added "device_props::adapter_luid" property to query the adapter LUID
Bug fixes:
Fixed crash in Steam Overlay with Euro Truck Simulator 2
Fixed crash in Richard Burns Rally with DXVK 2.6.2
Fixed crash when reloading multiple effect permutations simultaneously
Fixed black screen in City of Heroes: Homecoming and Vba-M
Fixed black screen in MPC-HC with madVR
Fixed rendering artifacts in RPCS3
Fixed SPIR-V code generation for function default arguments
Fixed propagation of ReShade FX precise qualifier in generated shader code
Fixed D3D11 validation error about unorm UAVs being accessed via float
Fixed effect constant buffers being deleted by game in The Chronicles of Riddick: Assault on Dark Athena
Fixed mouse cursor staying stuck to window in Uncharted: Legacy of Thieves Collection
Fixed mouse cursor always staying visible in games using DirectInput, like Virtua Cop 2
Fixed preset being overwritten during effect reload even with autosave disabled
Fixed texture format component preview on statistics page
Fixed generic depth add-on visualizing unused depth buffers as candidates
Fixed multiple effect runtimes created for the same window interfering with each others input handling
Fixed artifacts with effects using compute shaders in consecutive passes in games that always turn on D3D11 UAV overlap via NvAPI (e.g. Deep Rock Galactic)
Fixed code editor cursor position calculation with tab characters
(Add-on support) Fixed OpenGL "copy_texture_region" event for non-framebuffer copies
(Add-on support) Fixed BC3 format conversion in "reshade::api::format_to_typeless" helper function
(Add-on support) Fixed modification of original DXGI swap chain description
(Add-on support) Fixed crash with DXGI when add-on forces VSync with tearing enabled
(Add-on support) Fixed missing render pass event in Vulkan for secondary command buffer with dynamic rendering
(Add-on support) Fixed partial buffer to texture copies in D3D12
Miscellaneous:
Added pass name to GPU timing statistics
Added support for the middle and extra mouse buttons as toggle keys
Added log messages for DXGI adapter enumeration
Added support for "ID3D12CommandQueue1"
Changed D3DCompiler DLL loading to avoid system one when running in Wine (on Linux)
Changed log window to use text editor widget, now supporting the selection and copying of the log text
Prevented modification of preset preprocessor definitions when auto save is disabled
Reduced spam of unknown technique warning log message
Improved text loading performance in log editor
Updated OpenVR to v2.12.14
(Add-on support) Update imgui to v1.92.2b (add-ons may now use 1.92.2b, 1.91.8, 1.90.0-4, 1.89.7 or 1.86)
(Add-on support) Added "update_buffer_region_command" and "update_texture_region_command" events specific to a command list
(Add-on support) Added Vulkan hooks for descriptor update templates
(Add-on support) Added draw events for "VK_EXT_multi_draw" extension
(Add-on support) Added support for importing shared resources and fences in OpenGL
(Add-on support) Added "GL_POLYGON" to primitive topology conversion
(Add-on support) Added forced "DXGI_PRESENT_ALLOW_TEARING" flag during presentation if an add-on allowed tearing via "create_swapchain" event
(Add-on support) Added proper sRGB query for D3D9 format checks
(Add-on support) Added default state events after "ID3D11DeviceContext::ExecuteCommandList" without state restoration
(Add-on support) Added interface query to unwrap DXGI swap chain, use QueryInterface with IID E8A33B4A-1405-424C-AE88-0D3E9D46C914 on swap chain proxy to get the original swap chain object
(Add-on support) Added interface query to get original object from any proxy object, use QueryInterface with IID 7F2C9A11-3B4E-4D6A-812F-5E9CD37A1B42
(Add-on support) Fixed empty D3D12 root signatures not invoking "create_pipeline_layout" and "init_pipeline_layout" events
(Add-on support) Fixed "effect_runtime::block_input_next_frame()" not applying when the overlay is closed
(Add-on support) Changed D3D9 device reset to not invoke "init_device"/"destroy_device" events
(Add-on support) Changed map access flags passed to map events in D3D12 to distinguish between read-write and write-only access
(Add-on support) Changed behavior of action events to allow all add-ons to receive action events even if one overrides it
(Add-on support) Optimized D3D12 GPU to original CPU descriptor handle conversion
(Add-on support) Removed protection against recursive add-on event invocation
Setup tool:
Added draw stats heuristics option to setup tool compatibility list