Features:
- Added localization (currently with translations for Bulgarian, English, French, German, Japanese, Simplified Chinese)
- Added OpenXR support
- Added support for resolving MSAA depth buffers in D3D9 (using RESZ), D3D12, OpenGL and Vulkan (when supported by the driver)
- Added support for CUBE LUT files as texture source
- Added API to manually manage ReShade effect runtime instances when graphics hooks are disabled ("ReShadeCreateEffectRuntime", "ReShadeDestroyEffectRuntime" and "ReShadeUpdateAndPresentEffectRuntime" DLL exports)
SpecialK e.g. uses this so that one can inject SpecialK late into an application and have it load and manage ReShade, instead of requiring ReShade to hook at application launch
- Added fence synchronization add-on API ("device::create_fence", "command_queue::signal", "comand_queue::wait", ...)
- Added color space add-on API ("swapchain::check_color_space_support", "swapchain::get_color_space", "effect_runtime::set_color_space" , ...)
- Added ray tracing add-on API and events ("command_list::build_acceleration_structure", "command_list::dispatch_rays", ...)
- Added mesh shader add-on API and events ("command_list::dispatch_mesh", ...)
- Added "device::get_property" add-on API to query device information, "command_queue::get_timestamp_frequency" and more
- Added various functions to effect runtime add-on API ("effect_runtime::open_overlay", "effect_runtime::reset_uniform_value", ...)
- Added "addon_event::reshade_overlay_uniform_variable" and "addon_event::reshade_overlay_technique" events allowing customization of the widgets used to show uniform variables or techniques in the overlay
- Added built-in "__FILE_NAME_HASH__" and "__FILE_STEM_HASH__" preprocessor macros
- Added "f16tof32" and "f32tof16" intrinsics to ReShade FX
- Added "tex1Dgrad", "tex2Dgrad" and "tex3Dgrad" intrinsics to ReShade FX
- Added "noedit", "noreset" and "nosave" variable annotations and forced loading of "*.addonfx" effect files
- Added "ui_category_toggle" variable annotation to toggle visibility of a variable category based on the uniform value
- Added loaded add-on names to preprocessor definitions (e.g. "ADDON_GENERIC_DEPTH=<version>" for the Generic Depth add-on)
Bug fixes:
- Fixed crash in Resident Evil 3 and other multi-threaded D3D11 games
- Fixed multisampled resource creation in OpenGL
- Fixed OpenGL context management to properly handle multiple windows (fixes infinite reloading with Citra's "Separate Windows" layout)
- Fixed some OpenGL errors with rectangle and multisample textures
- Fixed video playback issues in Unity engine games
- Fixed depth buffer detection in Immortals of Aveum
- Fixed "command_list::bind_descriptor_tables" not setting all descriptor heaps used by applications in D3D12
- Fixed "addon_event::bind_descriptor_tables" event not being called when D3D12 root signature is changed
- Fixed implicit back buffer resource creation when "effect_runtime::render_effects/render_technique" is called with a typeless resource
- Fixed crash when graphics hooks are disabled
- Fixed crash when uploading 3D texture data in D3D9
- Fixed crash in built-in Generic Depth add-on in multi-threaded OpenGL applications
- Fixed resource events for "GL_TEXTURE_BUFFER" buffers
- Fixed Vulkan validation error when swap chain was created with sRGB image format
- Fixed VR swap chain creating incompatible resources when format is typeless and has no sRGB variant
- Fixed variable editor categories expanding upon resize of the overlay window
- Fixed code editor save button mistakenly showing up for instances showing generated code
- Fixed item grouping of list widgets
- Fixed new preset popup closing when backspace button is pressed
- Fixed scrolling in add-ons window
- Fixed relative paths with ".\.\" or more dots being written to the config when the target file does not exist
Miscellaneous:
- Updated imgui to 1.90 (add-ons may now use 1.90, 1.89.7 or 1.86)
- Added additional depth buffer filter heuristic that only considers those matching the resolutione exactly
- Added coloring to depth buffer list indicating which buffers are candidates for selection based on the configured heuristics
- Added texture upload support for 32-bit texture formats (e.g. used for CUBE or HDR files)
- Added proper implementation for "command_queue::wait_idle" in D3D9/10/11
- Added support for "countbits", "reversebits", "firstbitlow" and "firstbithigh" intrinsics under D3D9 and 10 using emulated implementation
- Added effect compile error when attempting to use texture with semantic as a render target (these are always read-only)
- Added UTF-8 support to code editor
- Added button to open preset folder in explorer next to preset selector
- Added button to open log folder in explorer to log page
- Added button to open base folder in explorer to settings page
- Added note on what to do when add-ons were disabled due to network activity
- Clarified log message for add-on load failure
- Improved queue synchronization in Vulkan
- Changed effect runtime creation to avoid allocating any resources when disabled via "[GENERAL] Disable=1" in the config and made them independent from swap chain instances
- Changed typeless 16-bit format behavior in OpenGL to default to floating-point format
- Changed D3D10 and D3D11 barrier implementation to only unbind resources passed to the barrier command, rather than all
- Changed configuration file name selection to better distinguish between VR and non-VR effect runtime instances (ReShadeX.ini and ReShadeVRX.ini)
- Changed alternative log file name to "ReShade.logX", rather than "ReShadeX.log"
- Changed tutorial progress setting location to global config file (so that tutorial progress is shared for all effect runtime instances)
- Changed font scaling to not get disabled after tutorial finished (instead added a message overlay window while Ctrl + mouse wheel is pressed to inform users on what is happening)
- Changed preset browser popup to have a minimum width
- Changed tab view of variable editor to scroll tabs instead of downsizing them
- Removed toggle key annotations for techniques
- Removed "[APP] EnableTransparency" config option
- Renamed "[INSTALL] EnableLogging" config option to "[INSTALL] Logging"
- Renamed "[SCREENSHOT] PostSaveCommandNoWindow" config option to "[SCREENSHOT] PostSaveCommandHideWindow"
- Removed logging of full application command-line (since it can contain sensitive information)
Setup tool:
- Added OpenXR layer registration
- Added check for existing effect files (will now show an error instead of creating duplicates)
- Added add-on selection page
- Added detection and special handling for games modded with NVIDIA RTX Remix
- Merged preset and effect packages and effect files selection into a single page
- Fixed effect package toggle and renamed radio buttons on the uninstall page
- Fixed crash when encountering executables without a file name before the extension
- Fixed existing relative preset path not being resolved correctly
- Fixed app title when no file description exists
- Fixed uninstall failing when invoked through the command-line
- Changed unhandled exception handling to show error instead of crashing
- Changed uninstallation to remove all effect files found in local search paths
|