Releases: EndlesslyFlowering/ReShade_HDR_shaders
2026.02.28
Automated release 2026.02.28:
Changelog:
blue_noise_dithering: set the minimum of "temporal dither timer period" to 1 ms instead of 10 ms
hdr_and_sdr_analysis: actually use % values for "text size" and "waveform text size adjust" in the UI
hdr_and_sdr_analysis: add option to show min/max outline per column in waveform
2026.02.28.7z
sha256: 3dc9f9dd70c9ae7dfbb3d770032afbc1998d46aece4ee247460462ed53815488
2026.02.27
Semi-Automated release 2026.02.27:
Changelog:
add new shader "blue noise dithering"
hdr_and_sdr_analysis: get unrolling protection variables for DrawCieOutlines from the global shader space rather than locally in the function
hdr_and_sdr_analysis: make textures not pooled that should not be pooled
2026.02.27.7z
sha256: 1954aef845b89ff4d83b6107ddef30b852ab13d5459719dd41760f9705c93daf
2026.01.27
Semi-Automated release 2026.01.27:
This release adds a "preprocessor definition" for the HDR/SDR analysis shader (you can find them at the bottom of the shader options) called LINUX_AMD_SHADER_INPUTS_OUTPUTS_WORKAROUND which adds a workaround for a driver bug present on Linux with AMD RDNA3/4 GPUs. Input YES and hit ENTER to apply it.
The bug is that the waveform and the CIE diagram render in a checkerboard appearance, so if you have that bug use this :)
Changelog:
hdr_and_sdr_analysis: add macro to workaround shader inputs/outputs being broken when the type is int on Linux with AMD RDNA3/4 GPUs
hdr_and_sdr_analysis: optimise shader input/output layout for the main vertex and pixel shader
hdr_and_sdr_analysis: fix another compiler warning about "use of potentially uninitialized variable"
hdr_and_sdr_analysis: fix wrong type being used when getting the result from "GetCieDiagramRenderSize" in VS_HdrAnalysis
hdr_and_sdr_analysis: fix compiler warning about "use of potentially uninitialized variable"
2026.01.27.7z
sha256: ccf422c0876910e8c802bd461a1db788a3e8918c57599d2b217b50e24a764e59
2025.12.14
Semi-Automated release 2025.12.14:
clean install recommended!
Changelog:
colour_space: fix shaders using the colour object not compiling in certain games due to returning inside of the scope of flow control (fixes #60)
colour_space: improve conversions to and from Jzazbz
hdr_and_sdr_analysis: improve algorithm for drawing the characters on the waveform scale
colour_space: change Mat namespace variable and function names to my new preferred styling and apply the changes
colour_space: change "Map * Into" namespace variable and function names to my new preferred styling and apply the changes
colour_space: change colour object variable and function names to my new preferred styling and apply the changes
colour_space: change YCbCr namespace variable and function names to my new preferred styling and apply the changes
colour_space: change OKLab namespace variable and function names to my new preferred styling and apply the changes
colour_space: change Jzazbz namespace variable and function names to my new preferred styling and apply the changes
colour_space: change SDR Trc namespace variable and function names to my new preferred styling and apply the changes
colour_space: change HDR Trc namespace variable and function names to my new preferred styling and apply the changes
colour_space: change darktable UCS namespace variable and function names to my new preferred styling and apply the changes
colour_space: change CIE namespace variable and function names to my new preferred styling and apply the changes
colour_space: change ICtCp namespace variable and function names to my new preferred styling and apply the changes
hdr_and_sdr_analysis: for the CIE 1931 standard observer arrays add the value for 830 nm and a comment about what values are included in the array
hdr_and_sdr_analysis: make the array length for the CIE 1931 standard observer and Pointer's gamut a define to avoid mistakes
hdr_and_sdr_analysis: define array lengths for cie datasets to avoid mistakes
hdr_and_sdr_analysis: fix the Pointer's gamut array for CIE 1976 u'v' having 1 entry twice and the last one missing
hdr_and_sdr_analysis: rename CIE "uv" to "uv1976" and clean up variable names
colour_space: add conversions to and from IPT
split colour_space.fxh into multiple files as it was getting to cluttered
colour_space: do not save GLOBAL_INFO to the ReShade preset
colour_space: clean up Jzazbz namespace
colour_space: add HLG OOTF
colour_space: rename HlgTo namespace to HLG_To
remove anything related to calculating nits from HLG as it is incorrect
colour_space: rename _1_div_PQ_m1/m2 to PQ_rcp_m1/2
colour_space: add functions for min/max of more than 2 inputs
move "TIMES_100" and "DIV_100" from hdr_and_sdr_analysis/main.fxh to colour_space.fxh
hdr_and_sdr_analysis: remove CIE diagram alpha/opacity as it is not needed anymore
hdr_and_sdr_analysis: clean up cie.fxh
hdr_and_sdr_analysis: store the CIE diagram outlines alpha in gamma space
hdr_and_sdr_analysis: remove workaround for rendering the lines of the CIE diagram so it looks cleaner
draw_font: add an additional leading underscore for each character macro
hdr_and_sdr_analysis: fix missing braces causing the shader to not compile when the buffer width is uneven
hdr_and_sdr_analysis: remove lines that were accidentally committed that contain a feature not yet released
hdr_and_sdr_analysis: for waveform mode "RGB individually" use green to increase the luminance instead of increasing the pure luminance of the colour as the colour CLL is too high otherwise
2025.12.14.7z
sha256: 94d9eb5c95963cb8573068d908d7290c3919b30eaeab04108e14ef7265a78096
2025.08.18
Automated release 2025.08.18:
Changelog:
hdr_and_sdr_analysis: add back waveform colours for the luminance and max CLL mode
hdr_and_sdr_analysis: rename waveform mode "maxCLL" to "max CLL"
hdr_and_sdr_analysis: set "waveform brightness" min to 80 instead of 100
2025.08.18.7z
sha256: 95ba51ca0074703a29780d4150699fcd165f84d006b31f25f7d6a9fa382bd78b
2025.08.15
Automated release 2025.08.15:
Changelog:
hdr_and_sdr_analysis: fix column max being visible when max is 0
hdr_and_sdr_analysis: fix column max and min not being visible correctly when max or min nits line were turned off
colour_space: change YES macro value to 2 and NO macro value to 1 as an undefined macro equals to 0
hdr_and_sdr_analysis: fix back buffer widths being higher than 4096 causing the shader not to compile because the max 3D texture width/height/depth is 2048
hdr_and_sdr_analysis:
- rewrite waveform rendering to show all pixels correctly
- wrap the waveform presentation with a white pixel to highlight where the per column max and min is
- add option to adjust the brightness of the waveform without adjusting the brightness of the waveform scale
hdr_and_sdr_analysis: move GetPositonCoordsFromRegularCoords "draw_text.fxh" to "main.fxh"
2025.08.15.7z
sha256: d030cf26d13263aa3f5f27e246bd1cd290e436b8dda55960dc09e63910e3a129
2025.06.21
Semi-Automated release 2025.06.21:
Changelog:
hdr_and_sdr_analysis: fix "SV_GroupID" being assigned incorrectly in "CS_RenderWaveformAndGenerateCieDiagram"
inverse_tone_mapping: handle else safely for OverbrightHandling evaluation
map_sdr_into_hdr: handle else safely for OVERBRIGHT_HANDLING evaluation
inverse_tone_mapping: handle linear and linear with black floor emu correctly
map_sdr_into_hdr: handle linear and linear with black floor emu correctly
README: add badge/invite for HDR Den discord
hdr_brightness_adjustment: fix missing semicolon (#48)
2025.06.21.7z
sha256: f6ae0b5c1d783d4652db7585d1430635f10ce8694d1625d44f614b5b86fd0ad7
2025.06.01
Semi-Automated release 2025.06.01:
Changelog:
hdr_and_sdr_analysis: make max and min nits line white
hdr_and_sdr_analysis: fix waveform cutoff point not working correctly if size is not 100%
hdr_and_sdr_analysis: make the whole "active area" of the waveform have 100% opacity
hdr_and_sdr_analysis: partially make shader work in D3D10 again (descriptive text and gamut from cursor are not rendering)
hdr_and_sdr_analysis: fix MAX_CHARS_NITS_RGB_CLL being incorrect
hdr_and_sdr_analysis: fix PS_CalcGamuts for not compute capable APIs
hdr_and_sdr_analysis: fix "Calc Nits/CLL" functions for not compute capable APIs
hdr_and_sdr_analysis: fix PS_GetMaxAvgMinNits not working
hdr_and_sdr_analysis: fix TextureTransfer having the wrong width
hdr_and_sdr_analysis: clean up PS_Finalise
hdr_and_sdr_analysis: fix warning about Output not being initialised in PS_Finalise
colour_space: do not activate the "HDR10 to linear LUT" for not compute capable APIs
colour_space: always activate the "HDR10 to linear LUT" when the manual override mode is active
hdr_and_sdr_analysis: optimise performance for generating the CIE diagram
hdr_and_sdr_analysis: use YCrCb with constant luminance for encoding the colour of the CIE diagram
hdr_and_sdr_analysis:
- add new waveform mode "RGB combined"
- implement weighting every waveform pixel against the max amount (which is needed for the new mode)
- encode waveform colours in Y'C'rcC'bc, which is YCrCb with constant luminance
inverse_tone_mappers: remove uneeded references to YCbCr parameters in Dice itm
colour_space:
- add parameters for YCbCr<->RGB conversion with constant luminance using gamma 2.0
- optimise YCbCr<->RGB conversions
hdr_and_sdr_analysis: waveform.fxh:
- small clean up
- use DIV_100 where needed
- small optimisation
hdr_and_sdr_analysis: clean up DrawCieOutlines
hdr_and_sdr_analysis: optimise and clean up GetVertexCoordsAndTexCoordsForTextBlocks
hdr_and_sdr_analysis: optimise CS_GetNitNumbers and CS_GetGamutNumbers
hdr_and_sdr_analysis/draw_font: change CLL text from "red/green/blue (CLL)" to "CLL red/green/blue"
hdr_and_sdr_analysis: add functions to calculate normalised nits and CLL
hdr_and_sdr_analysis: remove ReShade shader compiler workaround
hdr_and_sdr_analysis: move TIMES_100 macro from gamut.fxh to main.fxh and add DIV_100 macro
hdr_and_sdr_analysis: make negative luminance not add to the average luminance
colour_space: change mag/min/mip filter of the backbuffer to POINT
hdr_and_sdr_analysis: rename "csp.fxh" to "gamut.fxh"
hdr_and_sdr_analysis: make it impossible to unroll loops that only run when changing a setting. this stops the shader compiler from the driver to unroll those loops and potentially freezing the window for a long time...
hdr_and_sdr_analysis: optimise rendering of the CIE diagram outlines
hdr_and_sdr_analysis: clean up and fix compiler warning about sqrt on an imaginary number in cie.fxh
hdr_and_sdr_analysis: fix compiler warning about using [flatten] in performance mode in draw_text.fxh
hdr_black_floor_fix: improve how parameters are assigned for performance mode, so that they are detected as static.
add new shader "HDR Brightness adjustment"
colour_space: add function to calculate the HLG gamma
colour_space: optimise HLG<->Linear functions
cas_hdr: add missing comment
cas_hdr: add luminance mode
cas_hdr: remove upscale path as it is basically useless and causes issues for the upcoming luminance mode
rcas_hdr: add luminance mode
hdr_black_floor_fix: fix warning about Output not being initialised when discarding
implement manual override mode for all shaders when shader permutations are active + fix issues when no valid format and colour space are set
sdr_trc_fix: add BRANCH() where needed + clean up
editorconfig: do not trim trailing white spaces for .diff and .patch files
tone_mapping: optimise BT.2446 Method A for when performance mode is used
tone_mappers: clean up BT.2446 Method A
tone_mapping: optimise for when performance mode is used
colour_space: add float4 versions for PQ<->Linear and PQ<->Nits
tone_mapping: rename Dice to Exponential Compression
colour_space: fix colour space being unset in Vulkan when it should not have been
inverse_tone_mapping: implement extended SDR "gamma" to linear functions that roll off to linear
map_sdr_into_hdr: implement extended SDR "gamma" to linear functions that roll off to linear
colour_space: implement extended SDR "gamma" to linear functions that roll off to linear
colour_space: clean up SDR "gamma"<->linear functions
colour_space: fix output paramters being swapped for sincos
hdr_and_sdr_analysis: implement manual override mode for when shader permutations are active + fix issues when no valid format and colour space are set
colour_space:
- implement MANUAL_OVERRIDE_MODE_ENABLE macro for when shader permutations are active
- add all the new formats needed for the manual override mode
- set the minimum required ReShade version to 6.5.0
colour_space: small clean up
colour_space: rename CSP_PS5 to CSP_BT2020_EXTENDED and implement it everywhere it is used
hdr_and_sdr_analysis: fix typo in definition of uniform names
hdr_and_sdr_analysis: improve the rendering of the CIE diagram outlines massively
2025.06.01.7z
sha256: 0bffbe2929ae478d543eff4e2e6064be8f41148fe8bc7c3035d3893ab92e6b75
2024.12.22
Semi-Automated release 2024.12.22:
Changelog:
hdr_black_floor_fix: fix shader not working when only black floor lowering was enabled
2024.12.22.7z
sha256: 10c84d7366062641352759c7a8239811b1417bc7f5f21bc2f6d2136080b9e186
2024.12.10
Semi-Automated release 2024.12.10:
clean install recommended!
Changelog:
inverse_tone_mappers: clean up
colour_space: add conversion to and from darktable UCS colour spaces
colour_space: clean up
colour_space: make ReShade 6.3.3 the minimum required version
hdr_and_sdr_analysis: clean up
draw_font:
- only use a single font atlas which is tuned for having an outline
- rewrite msdf functions to draw a visible outline
hdr_and_sdr_analysis:
- implement new font atlas
- add option to adjust font size of the waveform scale text
add new shader "AMD Fidelity FX RCAS" for HDR and SDR
cas_hdr: optimise code a bit (normal texel loading is slightly faster than the tex2Dgather way)
hdr_and_sdr_analysis: optimise waveform code a bit and improve compilation time of it a tiny bit
hdr_and_sdr_analysis: reduce the background area of the text to only the active text area so that the empty area below nits/RGB/CLL which is next to the gamut numbers is not part of the background area
hdr_and_sdr_analysis: move the max/avg/min text to the left if the cursor values of nits/RGB/CLL are not shown
map_sdr_into_hdr: clean up + add BRANCH() where it makes sense
colour_space: change the macros BRANCH(x) and FLATTEN(x) to BRANCH() and FLATTEN() and implement it
hdr_and_sdr_analysis: fix CIE related texture width and height naming
hdr_and_sdr_analysis: move nits and RGB/CLL values to the left when RGB/CLL from the cursor is not shown
colour_space: hide colour object behind a define so the HDR10 to linear LUT is not loaded in every shader
hdr_black_floor_fix: implement colour object changes
implement HDR10 to linear LUT where it makes sense
colour_space: add LUT for converting HDR10 to linear to improve performance
colour_space: add more MAXX AND MINX macros + clean up
hdr_black_floor_fix: clean up uniform naming
hdr_black_floor_fix: add new function "gamma adjustment"
cas_hdr: improve the performance of the shader slightly by removing unneeded stuff
colour_space: clean up
colour_space: improve performance of sRGB<->linear functions
hdr_black_floor_fix:
- change the UI max value of the "SDR black floor emulation" "processing cut off" to 400
- change the UI max value of the "black floor lowering" "roll off stopping point" to 50
hdr_black_floor_fix: improve the performance of the gamma 2.2 emulation
hdr_black_floor_fix:
- make use of the ColourObject since finding the optimal colour space conversions is rather complex
- this fixes all issues each lowering method had
hdr_black_floor_fix: improve calculation of parameters and only statically calculate them for performance mode
colour_space:
- add a "colour object" which is the RGB values, the TRC and primaries
- add functions to convert a colour object to other TRCs, primaries and colour spaces
colour_space: add some matrices for scRGB like colour spaces which have different primaries than BT.709
sdr_trc_fix: restrict this shader to SDR only
2024.12.10.7z
sha256: 18600edf6212a8d876e70812aa1437f2333c26fc85d9e98e613182e6c2d1f546