ReShade Changelog

What's new in ReShade 6.1.1

Apr 14, 2024
  • Added reset button for effect preprocessor definitions
  • Added effects state synchronization to built-in effect runtime synchronization add-on
  • Added separate finish button to setup tool
  • Fixed crash in Vulkan
  • Fixed technique/variable toggle keyboard shortcuts not registering in some rare cases
  • Fixed deadlock when enabling effect runtime synchronization
  • Fixed user defined names prepended with underscore clashing with same names without underscore in generated GLSL
  • Fixed "reshade::api::device::get_resource_view_desc" returning invalid description in D3D12 when view was created with defaults
  • Changed "reshade::get_config_value/set_config_value" add-on API to support reading/writing array values
  • Changed save button to not clean up preset when auto save is disabled
  • Changed MSAA depth buffer support to include copying during frame

New in ReShade 6.1.0 (Mar 28, 2024)

  • Features:
  • Added builtin add-on that synchronizes preset between effect runtime instances/windows (this is enabled in VR by default, so that changes in the desktop window are automatically synchronized to VR)
  • Added Korean translation
  • Added option to show current preset name in OSD window
  • Added "create_pipeline_layout" add-on event
  • Added "set_fullscreen_state" add-on event
  • Added options to filter by custom width and height or format to generic depth add-on
  • Added "shader" and "numthreads" function attributes in ReShade FX
  • Added anisotropic texture filtering (needs to be combined with e.g. "tex2Dgrad" or custom vertex shaders of course)
  • Bug fixes:
  • Fixed HLSL/GLSL code generation for constant arrays duplicating the array data on every access
  • Fixed GLSL layout qualifier image format for 32-bit unsigned integer textures
  • Fixed crash when encountering division by zero in preprocessor expression
  • Fixed crash in D3D12 due to attempt of unlocking mutex that was not locked before
  • Fixed crash due to potential "AddRef" call on destroyed resource
  • Fixed "End" key state updates
  • Fixed code editor undo/redo/deletion selection
  • Fixed repeated runtime reset if "IDXGISwapChain3::SetColorSpace1" is called every frame (e.g. in World of Warcraft)
  • Fixed deadlock in "ID3D11DeviceContext::ClearDepthStencilView" with generic depth add-on
  • Fixed Vulkan timestamp frequency calculation
  • Fixed resource creation succeeding in Vulkan if initial data upload failed
  • Fixed nullptr descriptor heap being set in D3D12 when "bind_descriptor_tables" is called with zero tables and there was no heap before
  • Fixed D3D12 "clear_unordered_access_view_uint/float" with typeless resource
  • Fixed "init_pipeline" add-on event not being called in D3D12 applications not using "ID3D12Device2" or higher
  • Fixed independent blend value in D3D10/11/12 blend state creation
  • Fixed D3D12 root descriptor handling
  • Fixed pipeline creation failing in D3D10/11/12 when using certain dynamic states
  • Fixed "create_pipeline"/"init_pipeline" add-on event being called with zero shaders in some cases
  • Fixed resource creation failing in D3D12 when format was changed by an add-on and optimized clear value was passed in
  • Miscellaneous:
  • Updated imgui to 1.90.4 (add-ons may now use 1.90.0-4, 1.89.7 or 1.86)
  • Increased font size maximum to 64
  • Added support for "ID3D12Device14" and "ID3D12GraphicsCommandList10"
  • Added limit to number of effect loading threads in 32-bit, to reduce likelihood of out of memory situations
  • Changed texture creation to clear render target textures using clear command instead of initial data to avoid big memory allocations
  • Changed file selection dialog to not show hidden files and directories
  • Changed preprocessor to not evaluate expressions or check syntax in disabled code
  • Changed add-on API for descriptor types to split SRV/UAV in separate types for buffer/texture views
  • Changed "effect_runtime::set_current_preset_path" to trigger add-on events
  • Changed "effect_runtime::set_current_preset_path" to always reload preset when it is called in case the preset was modified on disk
  • Setup tool:
  • Added dedicated back button
  • Added effect installation for add-on packages
  • Added add-on deletion to setup tool uninstallation
  • Changed add-on page description to clarify potential compatibility issues of add-ons
  • Fixed effect package/add-on download failing if there are many temporary files
  • Fixed application list no longer being focused by default
  • Fixed unhandled exception when target executable has invalid import directory entries

New in ReShade 6.0.1 (Jan 27, 2024)

  • Updated imgui to 1.90.1 (add-ons may now use 1.90.1, 1.90, 1.89.7 or 1.86)
  • Fixed localization on Windows 7
  • Fixed rendering artifacts in Company of Heroes
  • Fixed rendering artifacts in Call of Duty: United Offensive
  • Fixed crash if statistics window is resized to zero width
  • Fixed potential crash on exit in D3D12/Vulkan when no effects are loaded
  • Fixed potential crash on exit in D3D9 due to access to destroyed depth-stencil surface object
  • Fixed tutorial progress not being recognized when it cannot be read from global configuration
  • Fixed effects not being updated after a color space change in D3D11/12
  • Fixed some issues with HDR overlay
  • Fixed OpenGL framebuffer cache invalidation (fixes ReShade only showing up in a small portion of the screen in some emulators, like Citra, Ryujinx, Yuzu)
  • Fixed "Failed to close immediate command list" error in D3D12 games using MSAA (e.g. World of Warcraft) when driver does not support depth-stencil resolve
  • Changed OpenGL effect runtime management to defer creation to first present call (avoids creation of many ReShadeX.ini for instances that are never actually used)
  • Changed D3D12 depth-stencil resolve to prefer average filtering over min/max
  • Changed "command_list::bind_descriptor_tables" implementation in D3D12 to force descriptor heap and root signature update when there are no tables (to allow add-ons to reset those in case they were changed without ReShade knowing)
  • Changed setup tool to add "ALL_APPLICATION_PACKAGES" SID to OpenXR layer installation directory
  • Changed setup tool to only enable gamepad input by default in cases where keyboard and mouse input is known to not work
  • Disabled "command_queue::wait_idle" implementation in D3D9/10/11 again for now

New in ReShade 6.0.0 (Jan 15, 2024)

  • 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

New in ReShade 5.9.2 (Aug 26, 2023)

  • Added missing hooks for "Direct3DCreate9on12" and "DXGIDeclareAdapterRemovalSupport"
  • Fixed crash when effects use pooled textures
  • Fixed crash in D3D9 games that have Windows compatibility fixes active (ReShade now finally works in SWTOR, when correctly installed as d3d9.dll!)
  • Fixed artifacts and depth buffer detection in the first "The Witcher" game
  • Removed global settings ("ForceFullscreen", "Force10BitFormat", etc.) from ReShade.ini and instead moved those into [ReShade DLL Name].ini (e.g. d3d9.ini/dxgi.ini/opengl32.ini) file

New in ReShade 5.9.1 (Aug 5, 2023)

  • Fixed random crashes in D3D10/D3D11 games
  • Fixed crash when using some older add-ons that made use of ImGuiListClipper
  • Fixed recursive texture search not working properly when search path is relative and working directory is not equal to the base path
  • Fixed HLSL shader model 3 code generation for custom semantics
  • Fixed GLSL/SPIR-V semantic to location translation for variables with individual indexed semantics
  • Fixed missing cast in GLSL code generation for boolean varying variables
  • Fixed "No keyboard and mouse input available" message not going away when tutorial was not completed (which can't be completed without keyboard or mouse input ...)
  • Fixed potential crash with Steam Input in Baldur's Gate 3
  • Added single component floating-point sampler and storage types

New in ReShade 5.9.0 (Jul 23, 2023)

  • Features:
  • Added ReShade FX support for 1D and 3D textures
  • Added support for loading 3D DDS images into 3D textures
  • Added ReShade FX support for texture atomics and integer texture formats
  • Added "ui_units" annotation to add units description to slider or drag widgets
  • Added undo button next to modified values in uniform variable editor
  • Added optional preset transition message (overlay that shows the name of the preset when switching presets using hotkeys or similar)
  • Added environment variable to disable logging (RESHADE_DISABLE_LOGGING)
  • Added environment variable to disable input hooks (RESHADE_DISABLE_INPUT_HOOK)
  • Added environment variable to disable graphics hooks (RESHADE_DISABLE_GRAPHICS_HOOK)
  • Added config option to disable ReShade entirely on a specific effect runtime instance
  • Added HDR support for ReShade overlay
  • Bug fixes:
  • Fixed occasional crash in Cyberpunk 2077, The Last of Us, ... with Generic Depth add-on active
  • Fixed content not showing up in applications using Chromium (like Venice Unleashed)
  • Fixed potentially duplicated hooks in Vulkan for swapchain creation
  • Fixed splash bar not disappearing with "NoReloadOnInit" active
  • Fixed imgui navigation window getting stuck on screen when moving mouse while it is visible
  • Fixed warning about missing effect files showing even when effects were not yet loaded
  • Fixed "Edit global preprocessor definitions" popup window not being scrollable with the mouse
  • Fixed techniques on statistics page not being sorted by execution order
  • Fixed relative paths in the file dialog widget not always being relative to the configured base path
  • Fixed code editor search window focusing
  • Fixed "reshade_reloaded_effects" event not being called during reload of an individual effect
  • Fixed effects reloading constantly when using an add-on that changes the back buffer color bit depth an odd number of times a frame
  • Fixed internal calls to "D3D12SerializeRootSignature" crashing when graphics hooks are disabled
  • Fixed D3D12 resource state transition barriers for mipmap generation
  • Fixed broken query results in D3D12 when query has not finished executing on the GPU when queried
  • Fixed multiple different pooled textures in an effect being shared with the same pooled texture in a different effect
  • Fixed effect filter and preview texture being reset even when just a single effect is reloaded
  • Miscellaneous:
  • Updated imgui to 1.89.7 (add-ons may now use both 1.89.7 and the previous 1.86)
  • Added swap chain size check and avoid initializing on very small ones (The Sims 4 e.g. creates a 16x16 swapchain in borderless window mode that is better off skipped)
  • Added support for relative font paths
  • Added protection against key repeats triggering keybinds
  • Added warning message when add-ons were not loaded due to the build only having limited add-on functionality
  • Added log message for "IDXGISwapChain3::SetColorSpace1" calls
  • Added full application command-line to initial log message
  • Added "bind_pipeline" event for D3D9 "SetFVF" command
  • Added "create_sampler" event for D3D12 static samplers and also include them in pipeline layout parameters
  • Added separate front and back stencil masks and reference values
  • Added support for push constant offset in D3D10 and D3D11
  • Added device loss handling for D3D9
  • Changed addressing mode for texture previews to clamping instead of wrapping
  • Changed "Edit global preprocessor definitions" popup window to scale with font size
  • Changed context menus to scale with font size
  • Changed file widgets to do case-insensitive comparison on file extensions
  • Changed technique timing list on statistics page to pad with new lines when name is long and would otherwise overlap timing values
  • Changed several settings to always clamp values (like alpha, rounding and text size, to prevent users accidentally entering a value that would break the overlay)
  • Changed effect loading to force preprocessing of an effect instead of loading from cache if it failed to parse (to avoid a broken cache preventing the effect from loading)
  • Changed tutorial to only show up on the very first effect runtime
  • Changed config file naming to only switch to ReShadeX.ini if copying default configuration from ReShade.ini was successfull (to avoid errors during saving when file permissions were not set up)
  • Changed update check to only run once per session
  • Changed HLSL implementation of ReShade FX "sincos" intrinsic to actually use "sincos"
  • Changed missing image file warning to an error
  • Changed function signature of "ReShadeGetBasePath" export
  • Renamed several ReShade API types and methods (without breaking binary compatibility)
  • Reduced overhead of "bind_descriptor_tables" event in D3D12
  • Removed pipeline tracking in D3D12 (it is up to add-ons to track and restore state)
  • Removed effect compile warnings from technique tooltips
  • Removed clamping of "ui_step" value
  • Setup tool:
  • Added effect files list to effect package tooltips
  • Added workaround instructions to setup error message box when list of effect packages failed to download
  • Fixed potential setup tool crash during app search when directory enumeration throws exception
  • Removed orange coloring of setup tool for builds with full add-on support

New in ReShade 5.8.0 (Apr 8, 2023)

  • Added compute shader support to ReShade FX shader language, supported in D3D11, D3D12, OpenGL and Vulkan
  • Added option to not clear alpha channel of screenshots
  • Added option to include preset name in screenshot file name
  • Added JPEG as a screenshot format option
  • Added option to duplicate current preset when creating a new one
  • Added option to only load enabled effects
  • Added performance mode toggle keyboard shortcut
  • Added global option to force fullscreen mode in D3D, ReShade.ini
  • Added support for global config file to change base and module load path (instead of having to rely on environment variables). To use, ceate an INI file with the same name as the ReShade DLL (e.g. dxgi.ini) next to it, with these contents
  • Added position of separator between technique and variable list in UI to config (so it is persistent between runs)
  • Added technique context menu button to open containing folder in Windows explorer
  • Added category context menu button to reset all variables in that category to their default values
  • Added separate code viewer window, so one can view generated code and edit a shader simultaneously
  • Added editor support for "Shift + Tab" to remove line indentation without selection
  • Added editor support for paste on new line
  • Added visual indicator to text editor title when open document is unsaved
  • Added message to home tab when a texture failed to load
  • Added yellow highlight to items in the technique list where the underlying effect compiled with warnings and added those warnings to the tooltip
  • Added effect parser error when encountering multi-dimensional array
  • Added effect parser error when using sRGB sampling on back buffer but back buffer format is not RGBA8
  • [strike]Added effect parser error when static variable initializer is not a literal expression. This is a breaking change for some effects![/strike]
  • Added effect parser warning when specifying negative value for texture property
  • Added "tex2Dsize" intrinsic overload which takes a storage object (for compute shaders)
  • Added "barrier", "memoryBarrier" and "groupMemoryBarrier" intrinsics for use in compute shaders
  • Added atomic intrinsics "atomicAdd", "atomicAnd", "atomicOr", "atomicXor", "atomicMin", "atomicMax", "atomicExchange" and "atomicCompareExchange"
  • Added support for "SV_IsFrontFace" semantic to GLSL/SPIR-V code generation
  • Added support for "min16int", "min16uint" and "min16float" scalar and vector types
  • Added "mousewheel" source for uniform variables to use mouse wheel input
  • Added "overlay_active" and "overlay_hovered" source to uniform variables, which hold the index (from the top in the effect file) of the UI widget the user is currently entering a value in or hovering in the UI
  • Added more verbose logging in case of D3D10/11 resource creation failures
  • Added pass names for passes writing to a texture on the statistics page
  • Added device and driver information to UI in OpenGL
  • Added support for comma character in INI elements
  • Added path text box to app selection in setup tool
  • Added different sort modes to app selection in setup tool
  • Added button to add custom effect package to setup tool
  • Added option to skip individual effect selection using three state checkboxes to setup tool
  • Added setup tool archive validation when opening it
  • Added standard Epic Games Launcher install location to setup tool search paths
  • Added heuristic to setup tool that chooses the depth reversed setting based on the year a game came out
  • Added error to setup tool when installing to an application that already has ReShade installed via a different render API
  • Added notice on how to uninstall to final setup tool screen
  • Added signature to setup tool
  • Improved file and directory selection dialogs (including the preset selection) and added icons
  • Improved format of variable names in generated GLSL code for better readability
  • Improved effect parser error recovery for errors inside struct definitions
  • Improved speed of setup tool application detection
  • Changed INI option names for a cleaner look! The setup tool will update them when installing over an existing config, but be aware of this when doing a manual update, since some of your settings may get lost.
  • Changed preset path option to save as a relative path to the ReShade DLL if preset is in the same or a subdirectory
  • Changed "tex2Dfetch" intrinsic to accept coordinates without a mipmap level and added seprate overload which accepts a mipmap level. This is a breaking change, so make sure to update your shaders (it will continue to compile with warnings in most cases, since int4 can be implicitly casted to int2, but only behaves the same then if the passed in mipmap level was zero)!
  • Changed D3D9 depth buffer detection logic to always run independently on each frame (fixes flickering in some games, like RE4 Remastered HD)
  • Changed splash banner to disappear immediately after reloading finished on all reloads except the first one
  • Changed assembly viewer text to get updated after an effect finished compiling
  • Changed HLSL compilation to enable highest optimization level only when performance mode is active
  • Changed configuration to save and restore custom style independently of the fixed presets (so its not lost when switching between those)
  • Changed keyboard shortcuts to be inactive while typing into text boxes
  • Changed item width for variable editor UI widgets
  • Changed texture name reservation to only run in OpenGL compatibility contexts by default
  • Changed default preset file name to "ReShadePreset.ini"
  • Changed setup tool to install to "bin" directory if one exists next to the executable (for Source Engine games)
  • Fixed mouse button double clicks not registering
  • Fixed red and blue color channel being switched in D3D12 screenshots in some applications
  • Fixed hang in Vulkan games because fence completion check was comparing against wrong return value
  • Fixed partial screen updates in D3D9 messing up ReShade rendering (e.g. in IL-2 Cliffs of Dover)
  • Fixed hooks not being installed in applications that call "LoadLibraryExA/W" with flags (e.g. Prey)
  • Fixed duplicated D3D10/D3D11 hooks (since the D3D10 driver may use D3D11 internally)
  • Fixed D3D9 depth surface replacement messing up games using INTZ format themselves (e.g. Dead Space)
  • Fixed artifacts in D3D9 games using partial depth buffer clears
  • Fixed artifacts in OpenGL games using GL_ALPHA_TEST
  • Fixed unbound key shortcuts potentially triggering if application sends input messages for key code zero
  • Fixed crash if application calls "ID3D11Device::CreateShaderResourceView" and similar with a nullptr resource (e.g. in Snowrunner)
  • Fixed crash when application unloads ReShade while a thread is still calling "GetMessage" (e.g. in Dolphin)
  • Fixed crash in Vulkan when data race occurs after multiple threads failed to access a value from a lockfree table (e.g. in Baldur's Gate)
  • Fixed crash if font atlas creation fails
  • Fixed crash when parsing ReShade FX code that attempts a function call outside of a function
  • Fixed crash if ReShade FX code contains shader function with an output parameter or return value without a semantic
  • Fixed crash when pressing "Shift + Tab" in editor with a line that has only spaces selected
  • Fixed R8 and RG8 textures having an alpha value in D3D9
  • Fixed wrong render targets being set in D3D12 if effect contains multiple techniques
  • Fixed primitive topologies other than triangles not working in OpenGL
  • Fixed "tex2Dstore" intrinsic writing with a slight offset in OpenGL
  • Fixed precision of floating-point constants in generated HLSL/GLSL code
  • Fixed preprocessor removing spaces in macro arguments
  • Fixed preprocessor not trimming all whitespace before and after macro arguments and around concatenation operator
  • Fixed preprocessor not adding adding backslashes to escape quotes in stringize operator
  • Fixed code generation for switch statements with multiple cases pointing to the same block
  • Fixed SPIR-V code generation for struct member accesses on function return values
  • Fixed SPIR-V code generation for struct input parameters
  • Fixed SPIR-V code generation for switch statements that contain branches
  • Fixed SPIR-V code generation for "inout" function parameters with semantics and arrays
  • Fixed HLSL code generation for global "static" variables
  • Fixed HLSL code generation for loops on uniform variables in shader model 3
  • Fixed missing interpolation qualifiers in generated GLSL code for struct return values
  • Fixed location calculation for GLSL array input and output variables
  • Fixed GLSL code generation for "inout" function parameters with semantics
  • Fixed GLSL code generation for shaders that have multiple input or output parameters with the same semantic
  • Fixed effect parser error when initialization array of structs using initializer list syntax
  • Fixed incorrect FreePIE uniform data padding
  • Fixed "timeout" annotation on techniques for very small values (so one can now set it to "1" to only have the technique run a single time)
  • Fixed division by zero if min/max are switched for "random" uniform source
  • Fixed user being able to enter invalid characters as a preprocessor macro name
  • Fixed dragging technique to a new location not preserving order of the others
  • Fixed editor font affecting search and replace buttons
  • Fixed pooled textures not always showing up on statistics page
  • Fixed double click behavior on app selection list in setup tool (it now only reacts if the same item is clicked twice)
  • Removed "tex2Dgather" intrinsic and instead split it into separate variants for each component
  • Removed separate "tex2D[...]offset" texture intrinsics and instead made them overloads
  • Removed technique percentage numbers from statistics (since they where commonly misunderstood)
  • Removed support for "POSITION", "VPOS" and "DEPTH" input semantics (use "SV_Position" and "SV_Depth" instead)
  • Removed error limit again since it can hide errors behind a lot of warnings

New in ReShade 5.7.0 (Feb 26, 2023)

  • Features:
  • Added auto-save option to home page and visual indicator when preset was modified but not saved yet (and removed previous option on settings page)
  • Added startup preset option (current preset is reset to that one every time ReShade is loaded)
  • Added option to create a new preset from an existing template
  • Added confirmation popup before deleting global preprocessor definition from configuration
  • Added warning message to home page when no effect files were found
  • Added warning log message when an effect search path could not be resolved
  • Added option to play an audio file when taking a screenshot
  • Added support for loading add-ons with ".addon32" or ".addon64" file extension (depending on whether the game is 32-bit or 64-bit)
  • Added "reshade_set_current_preset_path" add-on event that is called whenever the preset is changed
  • Added "reshade_reorder_techniques" add-on event that is called whenever the order of techniques is changed (and also added an API method to change the order)
  • Added add-on API method to block keyboard and mouse input
  • Added "%Count%" macro to include number of screenshots in screenshot file name
  • Changed effect caching to include used preprocessor definitions
  • That way the "Preprocessor definitions" category in the variable list is now hidden entirely when no preprocessor definitions need to be shown, even when an effect was loaded from cache
  • Bug fixes:
  • Fixed ReShade not showing up in No Man's Sky VR
  • Fixed huge performance hit in Hogwarts Legacy
  • Fixed crash in D3D12 on Intel hardware
  • Fixed crash in Cyberpunk 2077 and some other D3D12 games (requires the "Copy depth buffer during frame to prevent artifacts" option to be enabled!!)
  • Fixed corrupted technique handles after sorting techniques
  • Fixed uninitialized memory being written to log during DXGI composition swapchain creation
  • Fixed incorrect map flag for textures in D3D10/11
  • Fixed D3D9/10/11 push descriptor bindings
  • Fixed OpenGL cube map updates with multiple faces
  • Disabled alternative D3D11 state block implementation again because it breaks RTSS
  • Miscellaneous:
  • Added tooltips to preset buttons
  • Added log level enum to add-on API
  • Added a couple more dynamic pipeline states in D3D10/11
  • Added support for binding zero pipeline handle in D3D9/10/11/12
  • Added "gl[...]Separate" hooks to more accurately pass OpenGL state to add-ons
  • Added "glClear(...)Bufferi(u)v" hooks
  • Changed preprocessor error when opening included file failed to only show file name
  • Changed preset saving to never remove "TechniqueSorting" key from existing presets
  • Changed screenshot post-save command to support executables in PATH
  • Changed used preprocessor definition filter to hide already defined ones
  • Changed function parameter order of "AddonInit" and "AddonUninit" add-on entry points
  • Changed add-on loading failure log message level from warning to error
  • Changed "reshade_reloaded_effects" event to also be called after destroying previous effects during reload (to give add-ons the change to clean up invalidated handles)

New in ReShade 5.6.0 (Jan 16, 2023)

  • 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)

New in ReShade 5.5.2 (Dec 13, 2022)

  • Added compile times for effects to log
  • Added compile error when texture with a semantic is used as a render target or storage
  • Added warning when input cannot be captured for window because it was created by a different process (e.g. in Portal with RTX)
  • Added "copy_buffer_to_texture" event for OpenGL texture updates from a pixel unpack buffer binding
  • Added format conversion for "VK_FORMAT_A8B8G8R8_[...]_PACK32"
  • Improved CPU-side performance of effect rendering slightly
  • Improved error handling for filesystem errors
  • Changed add-on list in overlay to hide file path for built-in add-on
  • Changed input handling to ignore raw input on secondary windows that are not input sinks
  • Changed error on choosing layered pixel format in OpenGL to a warning (this fixes a crash with Tomb1Main)
  • Changed shader model 5 implementation of "tex2Dgather" intrinsic overloads taking individual offsets to visually match GLSL/SPIR-V
  • Fixed typo in D3D9On12 exports
  • Fixed crash with D3D9On12 due to incorrect vertex count provided to "DrawIndexedPrimitive" (this fixes a crash in D3D9 games with 12th Gen Intel graphics processors)
  • Fixed crash due to use-after-free in "vkFreeDescriptorSets"
  • Fixed crash with Stream overlay and Vulkan validation layers due to dispatch pointer not being initialized for queues
  • Fixed Thief: Deadly Shadows hanging and/or not exiting
  • Fixed ReShade FX compiler not generating a cast to merged type for elements in array initializer expressions
  • Fixed ReShade FX compiler emitting an error for "for" loop statements without an initializer expression
  • Fixed unknown depth buffer format being shown for some depth buffers in Avorion
  • Fixed insufficient initial data array passed to OpenGL "init_resource" and "create_resource" events for cubemaps
  • Fixed hooking when multiple virtual function tables refer to the same hook function (e.g. in D3D9 games with Steam overlay)
  • Fixed mismatching errors being shown in editor for generated code
  • Fixed texture sampling of textures with a semantic in D3D9 applying incorrect pixel offsets
  • Fixed warning about in-use depth-stencil resource being destroyed after effect runtime was already destroyed
  • Removed built-in FreePIE support and instead moved it into an add-on

New in ReShade 5.5.1 (Nov 28, 2022)

  • Added "screenshot" uniform source which is true while a screenshot is being taken
  • Changed depth buffer detection to skip depth buffers that were not used for at least a frame
  • Changed depth buffer list in overlay to keep showing unused items for a few frames and sort by texture dimensions
  • Changed loading of preset to sort techniques alphabetically when not otherwise specified in the preset
  • Fixed crash on startup in Vulkan games with signed build of ReShade
  • Fixed crash when exiting Yuzu when using OpenGL
  • Fixed crash in Uncharted: Legacy of Thieves Collection
  • Fixed crash when "vkDestroy[...]" is called with a "VK_NULL_HANDLE" object (e.g. done by VKD3D)
  • Fixed previous depth-stencil shader resource view not being unbound when creation of new one failed
  • Fixed missing resource view description for some render target/depth-stencil views in D3D12
  • Removed directory from add-on file name in add-on settings when it matches that of the add-on search path

New in ReShade 5.5.0 (Nov 19, 2022)

  • Features:
  • Added support for navigating the overlay using a XBox controller (to open/close press left + right shoulder buttons and the start button simultaneously)
  • This is only active when "[INPUT] GamepadNavigation=1" is set in ReShade.ini!
  • Controls are as follows: www.dearimgui.org/controls_sheets/imgui%...%20v6%20-%20Xbox.png
  • Bug fixes:
  • Fixed hooking in Evoland and other D3D10/11 games on Windows 7
  • Fixed crash with DXVK 2.0 (or other Vulkan games using the "VK_EXT_graphics_pipeline_library" extension)
  • Fixed crash on startup in Toontown Rewritten
  • Fixed tree and cloud rendering artifacts in Minecraft
  • Fixed bad performance while the "Add-ons" window in the overlay is visible
  • Fixed ReShade rendering applied multiple times to the same frame in games using "D3DPRESENT_DONOTWAIT" or "DXGI_PRESENT_DO_NOT_WAIT" present flag
  • Fixed modifying resource description in "create_resource" event having no effect in D3D10/11
  • Fixed "swapchain::get_current_back_buffer_index()" result being out of date in "present" event in D3D12/Vulkan
  • Fixed "command_list::copy_texture_region" not always performing blitting in Vulkan when texture dimensions do not match
  • Fixed "effect_runtime::get_texture_binding" not working for textures with a semantic
  • Fixed crash in Vulkan when destroying shared resource
  • Fixed crash when binding nullptr constant buffer in D3D11
  • Fixed nullptr descriptor heap being bound sometimes after D3D12 mipmap generation
  • Fixed format conversion for formats from "GL_NV_depth_buffer_float" OpenGL extension and "GL_ALPHA", "GL_LUMINANCE", "GL_INTENSITY" and "GL_LUMINANCE_ALPHA"
  • Miscellaneous:
  • Added "vkAcquireNextImageKHR" hook to update back buffer index in Vulkan
  • Added support for imgui command user callbacks
  • Added support for "command_list::copy_buffer_to_texture()" from buffer resource to back buffer in OpenGL (compatibility OpenGL contexts only)
  • Added support for push descriptors with multiple descriptor ranges (see "pipeline_layout_param_type::push_descriptors_ranges")
  • Added support for creating multisampled textures in OpenGL
  • Added "bind_*" events for D3D10/11/12 "ClearState" command
  • Added "push_descriptors" event for "ID3D12GraphicsCommandList::Set(Compute/Graphics)Root(ShaderResource/UnorderedAccess)View"
  • Added "bind_descriptor_sets" event for "ID3D12GraphicsCommandList::Set(Compute/Graphics)RootSignature"
  • Improved D3D12/Vulkan barrier access to "resource_usage" enum conversion
  • Changed preset saving to skip "TechniqueSorting" key when it is equivalent to the "Techniques" key
  • Removed automatic D3D12 descriptor state backup and restore in "render_effects" and "render_technique" (this is better done properly inside add-ons using these)

New in ReShade 5.2.2 (Jun 19, 2022)

  • Added support for recursive effect and texture search paths (by appending "/**" to the path)
  • Added error popup when selected file is not a valid preset
  • Added "Copy depth buffer during frame" option in D3D12/Vulkan to enable/disable costly depth buffer copies (check this when artifacts are visible, e.g. in Cyberpunk 2077, leave it unchecked otherwise)
  • Changed effect creation to allow timestamp query pool creation to fail gracefully
  • Changed preset saving error message to be more descriptive
  • Changed setup tool to unregister local machine Vulkan layers from old ReShade %appdata% installations too
  • Fixed setup tool not recognizing relative preset path during update
  • Fixed crash in RaceRoom Racing Experience
  • Fixed ReShade not loading in Star Wars: Knights of the Old Republic
  • Fixed black intro videos in Star Wars Jedi Knight II: Jedi Outcast
  • Fixed screen darkening in Portal when the Steam overlay is showing a notification popup
  • Fixed flickering depth buffer in Mass Effect 3
  • Fixed flickering depth buffer in Bioshock Infinite (mostly)
  • Fixed depth buffer detection in DOOM Eternal (check the "Copy depth buffer during frame" option!)
  • Fixed depth buffer copying in World of Warcraft (DX11)
  • Fixed potential crash in games managing residency of D3D12 descriptor heaps
  • Fixed crash when D3D12 device of the same adapter is created and released on different threads simultaneously
  • Fixed ReShade missing events in games using "ID3D11Device3::GetImmediateContext3"
  • Fixed resource usage value in "barrier" events for resource barriers with "D3D12_RESOURCE_STATE_COMMON"
  • Fixed add-on events being called when internal D3D9/11/12 resources are mapped or unmapped
  • Improved OpenGL multi-draw hook performance
  • Removed warning about unknown texture semantics

New in ReShade 5.2.0 (May 28, 2022)

  • Features:
  • Added separate option to enable depth buffer copying before fullscreen draw calls (for Bioshock: Infinite)
  • Added "reshade::api::swapchain_desc" API struct with more fields for "create_swapchain" event
  • Added "reshade::api::effect_runtime::render_technique" API method to render a specific technique
  • Added global config option to disable logging
  • Added support for renaming the ReShade DLL to "dinput.dll" to hook
  • Added technique annotation to hide technique in screenshots
  • Bug fixes:
  • Fixed deadlock in Star Wars: The Force Unleashed 2
  • Fixed crash in Forza Horizon 5
  • Fixed crash in Borderlands 2 when switching resolution
  • Fixed crash in Monster Hunter Rise
  • Fixed crash in Cyberpunk 2077 when launching with GOG overlay enabled
  • Fixed crash when "ID3D12Device::CopyDescriptorsSimple" is called with render target view descriptors
  • Fixed missing widgets in Omsi 2
  • Fixed black menu screen in Call of Duty 1
  • Fixed rendering to textures with a greater height than width failing in Vulkan
  • Fixed hang in Dragon's Dogma: Dark Arisen when changing areas
  • Fixed artifacts in Dragon's Dogma: Dark Arisen when last effect is writing using sRGB render target view
  • Fixed red and blue color channel being switched in some textures in Amnesia: Rebirth, SOMA and other OpenGL games
  • Fixed error when closing immediate command list in Farming Simulator 2022 (and presumably Prepar3D)
  • Fixed "IDXGISwapChain::ResizeBuffers" implementation not ignoring "DXGI_ERROR_INVALID_CALL"
  • Fixed changing HDR color space not recompiling effects to update "BUFFER_COLOR_SPACE" definition
  • Fixed rendering effects during the frame not working when render target format does not match back buffer format
  • Fixed mouse and/or keyboard input not working in some games using DirectInput (e.g. Max Payne)
  • Fixed incorrect handle being passed to "init_resource" event for D3D9 vertex buffers
  • Fixed crash on exit in D3D10/11/12 VR games due to device possibly being destroyed before VR swapchain
  • Miscellaneous:
  • Added warning log message when add-ons are still loaded when ReShade is unloaded (since this may cause a crash on exit)
  • Added hooks for D3D11on12 devices
  • Added support for "GL_ARB_vertex_program" and "GL_ARB_vertex_buffer_object" OpenGL extensions
  • Added support for quads primitive topology type in OpenGL
  • Changed method with which to receive DLL load notifications for better compatibility with anti-cheat software
  • Improved performance of built-in "Generic Depth" add-on
  • Improved multi-threading performance of log message construction
  • Removed option to disable replacement with INTZ format from "Generic Depth" settings overlay in D3D9
  • Setup tool:
  • Reworked Vulkan installation (for the last time) to install globally again (but ReShade now checks if a ReShade.ini was created in the application directory and only loads if that is the case)
  • Note: The ReShade 5.2 setup tool takes care of migrating any Vulkan installation done with a previous ReShade version, so no need to uninstall old versions first.
  • Fixed crash during application analyzing phase
  • Fixed setup tool sometimes showing an archive corruption error message even though the archive is fine

New in ReShade 5.0.0 (Feb 1, 2022)

  • ReShade 5.0 is a major rewrite of the underlying architecture (again, yay), for improved performance, easier maintenance and future feature additions and most importantly, an all new, extremely powerful add-on API. Note that even though ReShade went through a lot of changes in the background, as a user you don't have to worry, as everything still works the same as before, just better.
  • The add-on API makes it possible to modify/extend both ReShade and the games it is loaded into. It abstracts away differences between the various graphics API ReShade supports (Direct3D 9/10/11/12, OpenGL and Vulkan), to make it possible to write add-ons that work across a wide range of applications, regardless of the graphics API they use. For more information, see the documentation at crosire.github.io/reshade-docs/index.html. It can e.g. be used to implement a generic TexMod, shader replacement, game-specific add-ons that provide game information to effects, special overlays/widgets for effects, more information in the on-screen display and so on, your imagination is the limit.

New in ReShade 4.9.0 (Jan 3, 2021)

  • Added effect caching
  • Compiled effects are now cached to disk, so that subsequent loads can use the cached data to speed up loading significantly. By default the cache is stored in %TEMP%, so that it can be shared across all ReShade installations. To override the location, change the "IntermediateCachePath" option under "[GENERAL]" in ReShade.ini . There is a new button on the Settings tab to clear the cache (sometimes necessary to ensure changes to effect files are applied).
  • Added support for D3D12on7 (ReShade now works in Cyberpunk 2077 on Windows 7)
  • Added depth buffer copy before clear in OpenGL (depth buffer detection now works in Minecraft)
  • Added ReShade FX support for rectangular matrices and integer matrix multiplication
  • Added error to log when trying to capture screenshot for 16-bit back buffer (which is not supported)
  • Added option to move all techniques from an effect file simultaneously in the UI technique list by pressing the shift key
  • Added text logging for some common back buffer formats
  • Added debug names to D3D11 and D3D12 objects in release builds to simplify debugging with the debug layers
  • Added option to filter application list in setup tool using custom search terms (start typing into the text box at the bottom of the application list to filter it)
  • Added warning message box to setup tool when enabling global Vulkan layer
  • Improved HLSL and GLSL loop code generation for simple condition expressions
  • Improved general frame update performance slightly
  • Changed editor window to support opening multiple tabs pointing to different files
  • Changed logging to use Win32 API directly (to allow multiple editors to open the log simultaneously)
  • Changed texture pooling to not share textures within the same effect file
  • Fixed local network traffic (on localhost) counting towards the network detection heuristic
  • This means that depth buffer detection is no longer blocked in games that run local servers in single player, like in Minecraft
  • Fixed mouse cursor being locked in a small portion of the screen in some games
  • Fixed corrupted depth data in D3D12 apps (e.g. Cyberpunk 2077)
  • Fixed ReShade not showing up in D3D9 apps that do not have an override window set for presentation (e.g. MPC-HC)
  • Fixed progress bar for compiling effects not actually showing any progress
  • Fixed enabling an effect not auto-selecting the relevant tab in the variable list if the tab UI is used instead of the tree UI
  • Fixed disabling "Load only enabled effects" option not reloading skipped effects
  • Fixed potential crash when an INI file is loaded while effects are still being loaded
  • Fixed OpenGL context creation using incorrect profile flags when game is using OpenGL 3.0 or 3.1
  • Fixed OpenGL compatibility flag not being set in some cases for legacy contexts
  • Fixed global app config options being read from wrong section in DXGI
  • Fixed D3D11 texture description not being overwritten for "ID3D11Device3::CreateTexture2D1" calls
  • Fixed "vkDestroyDevice" hook not being called
  • Fixed hook error logged on Windows 7 when "CreateDXGIFactory2" is called
  • Fixed it being possible to move variable editor splitter outside window area
  • Fixed preprocessor hanging when encountering macro with an unterminated argument list
  • Fixed duplicate sample and storage references in effect passes
  • Fixed crash if an invalid sampler or storage is referenced in effect pass
  • Fixed setup tool exception when extracting repository without a dedicated "Textures" directory
  • Renamed screenshot config section to "SCREENSHOT" instead of "SCREENSHOTS" (setup tool will update your config automatically)
  • Renamed depth buffer detection related config options to all reside within a "DEPTH" section instead of separate "D3D9/10/11/12/OPENGL/VULKAN" sections
  • Renamed all references to "shaders" to "effects"
  • Cleaned up punctuation in log messages

New in ReShade 4.8.2 (Oct 31, 2020)

  • Added missing hooks for "Direct3DCreate9on12" and "DXGIDeclareAdapterRemovalSupport"
  • Fixed crash when effects use pooled textures
  • Fixed crash in D3D9 games that have Windows compatibility fixes active (ReShade now finally works in SWTOR, when correctly installed as d3d9.dll!)
  • Fixed artifacts and depth buffer detection in the first "The Witcher" game
  • Removed global settings ("ForceFullscreen", "Force10BitFormat", etc.) from ReShade.ini and instead moved those into d3d9.ini/dxgi.ini/opengl32.ini file
  • [APP]
  • ForceVSync=0
  • ForceWindowed=0
  • ForceFullscreen=0
  • ForceResolution=0,0
  • Force10BitFormat=0
  • ReShade FX support equivalent to this version (with compute shaders) will be part of FreeStyle in the next NVIDIA driver branch release.