Skip to content

Releases: EndlesslyFlowering/ReShade_HDR_shaders

2026.02.28

27 Feb 23:16

Choose a tag to compare

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

26 Feb 23:47

Choose a tag to compare

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

27 Jan 14:35

Choose a tag to compare

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

14 Dec 12:40

Choose a tag to compare

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

17 Aug 22:49

Choose a tag to compare

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

15 Aug 03:25

Choose a tag to compare

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

20 Jun 23:29

Choose a tag to compare

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

31 May 23:54

Choose a tag to compare

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

22 Dec 20:34

Choose a tag to compare

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

10 Dec 01:36

Choose a tag to compare

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