Features:
- Added "[APP] ForceDefaultRefreshRate" global config option
- Added error message to overlay when there were errors loading some add-ons
- Added optional add-on initialization entry points: Add-ons can now export a "AddonInit" and/or "AddonUninit" function, which ReShade will call after loading/before unloading, to allow for more complicated code than valid inside DLLMain
- Added preprocessor support for variadic macros
- Added preprocessor support for backslash at end of line to skip to the next
- Added error tooltip to file list in technique context menu
- Added error coloring to file list in technique context menu for effects that failed to compile
- Added option for stats overlays (clock, FPS, frametime) to only show while main overlay is open (filled out checkbox)
- Added global alpha support in VR and increased overlay window resolution
- Changed technique search in overlay to include effect file name in filtering
- Changed technique ordering to keep the declaration order specified within an effect file
- Changed preprocessor to concatenate in macros without expanding arguments (to follow behavior of the C preprocessor)
Bug fixes:
- Fixed crash with DLSS 3
- Fixed crash in Crusader Kings II
- Fixed crash in Phantasy Star Online 2
- Fixed duplicated input in some games (e.g. Payday 2)
- Fixed ReShade not showing up in some D3D11 VR games
- Fixed screen not updating in RPCS3 when using certain add-ons
- Fixed depth buffer detection in Quake
- Fixed effects declaring the same texture semantic multiple times failing to compile in D3D9
- Fixed shader interface matching when system value semantic contains a trailing zero
- Fixed whitespace in macro definition ending up in replacement text
- Fixed preprocessor crash if encountering end of file in a preprocessor statement
- Fixed preprocessor ignoring multiple pragma directives
- Fixed line numbers preprocessor generates for lines directly following an include statement
- Fixed add-on information missing in overlay when file version info is not using default translation
- Fixed technique context menu not working for techniques with "enabled" annotation
- Fixed open code editors for included files not updating after effect reload
- Fixed code editor colorization for preprocessor directives with spaces in them
- Fixed preset shortcut keys in config getting duplicated with each load
- Fixed GPU timestamp queries returning invalid results sometimes in D3D10/11
- Fixed push descriptor bindings in OpenGL add-on events
- Fixed 32-bit value count for push constants in D3D9 add-on events
- Fixed missing value conversion for some D3D9 dynamic states
Miscellaneous:
- Added "dot" intrinsic overload that accepts scalars to ReShade FX
- Added special behavior when calling "reshade::api::effect_runtime::render_effects" with no render target view: This now effectively disables effect rendering done by ReShade altogether, which can be useful if doing that manually via calls to "reshade::api::effect_runtime::render_technique"
- Added support for "#pragma reshade showfps" and "#pragma reshade showclock" directives again
- Added "create_swapchain" add-on event in OpenGL (called during "wglSetPixelFormat")
- Added support for creating resource views with a default resource view description (which will create a view encompassing the entire resource)
- Added render buffer creation in OpenGL for "reshade::api::resource_type::surface" and fixed automatic mipmap levels
- Added log message when resizing VR effect runtime
- Added internal compiler error to effect error list when pipeline creation failed
- Moved "AddonPath" option to "ADDON" config section
- Changed ReShade icon
- Changed log fallback filename (will now attempt to open ReShadeX.log where X is a number greater or equal 2 if ReShade.log is in use)
- Changed add-on manager to avoid loading add-on DLLs for disabled add-ons entirely
- Changed file list in technique context menu to show relative paths
- Changed preprocessor defines hidden in the overlay to include those starting with "INCLUDE_GUARD_"
- Changed "present" event in VR to be called separately for both eye submits
- Changed D3D11 state block implementation
- Changed Vulkan copy command hooks to call events for image layer ranges rather than single layers
- Simplified texture mapping using add-on API in D3D12 (can now create CPU-visible textures, ReShade will translate that into a D3D12 buffer behind the scenes)
- Improved "wglSwapMultipleBuffers" implementation to behave more like the original
- Removed automatic D3D12 pipeline backup and restore in "reshade::api::effect_runtime::render_effects" and "reshade::api::effect_runtime::render_technique" (better handled in add-on code)
- Removed stats overlay settings in VR (since those cannot be seen there anyway)
|