Skip to content

Releases: EndlesslyFlowering/ReShade_HDR_shaders

2024.06.07

07 Jun 20:56
Compare
Choose a tag to compare

Automated release 2024.06.07:

Changelog:

hdr_and_sdr_analysis: replace '/ 256' with '/ 254' to store numbers in a R8_UNORM texture


hdr_and_sdr_analysis: only enable shader when one of the possible colour spaces is set


colour_space: fix CSP_OVERRIDE not showing up in the UI when it's possible to use it


colour_space: make colour space being set for scRGB a requirement for auto detection


hdr_and_sdr_analysis: add descriptions for what the new RGB values describe


draw_font: update font atlases with new msdfgen version


hdr_and_sdr_analysis: remove warning about possible Steam Deck usage as it should be fine now


hdr_and_sdr_analysis: spread out average nits and rgb data depending on the aspect ratio
At 8K (7680x4320) a max average of ~22000 nits is possible, so we should be good for a while :)


hdr_and_sdr_analysis:

  • add ability to show RGB waveform
  • track max/avg/min RGB values (BT.2020 primaries for HDR and BT.709 primaries for SDR)
  • add ability to draw negative numbers in the overlay (needed in scRGB)
  • with this comes a rename from everything named "luminance waveform ..." to just "waveform ..."
  • improve waveform sizing for SDR
  • correct how large the waveform can be at max as to not cause gaps
  • try to not write out the same numbers more than once for the same thing

hdr_and_sdr_analysis: add flatten and branch where it makes sense + small cleanup


hdr_and_sdr_analysis: add 2 more options for thread sizes for the get max luminance shader and count gamuts shader


colour_space: add BUFFER_SIZE_MINUS_1_INT + small cleanup


draw_text_fix: improve when to actually draw the number


tone_mapping: fix warning about uninitialised parameters in the semantics


inverse_tone_mappers: remove leftover gamut "expansion" stuff and small function naming change


inverse_tone_mapping: remove processing in YCbCr and everything related to and replace it with 2 luminance based modes of where one replicated the YCbCr look of the spec 1:1 and another one that looks more natural


tone_mapping: remove YRGB and YCbCr mode and replace it with a luminance based mode that replicated the YCbCr mode from the spec 1:1 without the need to convert to YCbCr


colour_space: use IEEE754 correct behaviour for float representation where possible (before it was rounded)


tone_mapping:

  • remove "luma post adjust" and "gamut compression" from BT.2446A
  • add new default YRGB mode for BT.2446A which is faster

hdr_and_sdr_analysis: use *256 and /256 for reading and storing numbers to and from a R8_UNORM texture instead of *255 and /255


hdr_and_sdr_analysis: change all incorrect colour space / csp naming to gamut naming


rename Scrgb to ScRgb


hdr_and_sdr_analysis: remove leftover CIE diagram specific semantics that are now unused


hdr_and_sdr_analysis: simplify the clear pixel shaders and maybe improve the performance a tiny bit


hdr_and_sdr_analysis: add case handling for float HDR and HDR10 like colour spaces in the gamut map


map_sdr_into_hdr: fix passthrough in HDR10 not working


tone_mapping:

  • remove YCbCr modes as they are not good enough
  • change default shoulder to 25% for Dice tmo
  • small cleanup in BT.2390 EETF and Dice tmo
  • small optimisation in BT.2390 EETF tmo

colour_space: add OKLab<->OKLCh° conversions


colour_space: make float representations in matrices less pedantic without actually loosing precision


tone_mappers: fix BT.2390 and Dice YRGB mode not working correctly in scRGB + small cleanup


inverse_tone_mapping: expose "luma pre adjust" for BT.2446A
tone_mapping: expose "luma post adjust" for BT.2446A


map_sdr_into_hdr: change if for switch for discerning between the input trc


inverse_tone_mapping + map_sdr_into_hdr:

  • fix overbright handling mode "apply gamma" not handling negative colours
  • add clamp mode for when trc linear is chosen

2024.06.07.7z
sha256: df67efcd0bd5eee99970f0fc29663055be11b4c3bfeb5d9169c483a11f7a38ea

2024.04.18

18 Apr 02:40
Compare
Choose a tag to compare

Semi-Automated release 2024.04.18:

Changelog:

inverse_tone_mapping: cleanup, simplification and add helper functions


tone_mapping: change default value of GamutCompression for BT.2446A to match the input gamut


inverse_tone_mapping & map_sdr_into_hdr: implement the new "extended SDR transfer functions" from the last commit


colour_space: implement new "extended SDR transfer functions" that are linear above and below 1 and rename the default extended one
inverse_tone_mappers & map_sdr_into_hdr: apply the renames


map_sdr_into_hdr: fix shader not working correctly for HDR10 output


hdr_and_sdr_analysis: add support for the D3D10 API


hdr_and_sdr_analysis: get rid off warnings about "use of potentially uninitialised variables" since it causes The Evil Within 2 to crash


hdr_and_sdr_analysis: get rid off unneeded precise


hdr_and_sdr_analysis: add ability to show crosshair on the CIE diagram of the CIE xy or uv position which is taken from the current cursor poisition. to have the correct draw order, the merging of the CIE gamut outlines had to be moved into a separate pixel shader again. this also changes the CIE background texture and gamut triangles to have a proper alpha channel, is made use of.


hdr_and_sdr_analysis: change PS_CalcNitsPerPixel and PS_CalcCsps to use the vertex shader without TexCoord


2024.04.18.7z
sha256: edb6c1a0cf688c4039d8b09186a1974e8c3b76a9864d931150b0fe5882818a18

2024.04.05

05 Apr 02:44
Compare
Choose a tag to compare

Semi-Automated release 2024.04.05:

Changelog:

hdr_and_sdr_analysis: spread out storing avg nits into 16x16 area as to not overflow


hdr_and_sdr_analysis: fix warning about truncating a vector for waveform specific clamping


colour_space: add int version of BUFFER_WIDTH_MINUS_1 and BUFFER_HEIGHT_MINUS_1


2024.04.05.7z
sha256: 135c223ce78349cb51dcaae4c12ec79d74e254501c7d4f4eab538fd05cdc9e09

2024.04.02

02 Apr 00:37
Compare
Choose a tag to compare

Semi-Automated release 2024.04.02:

Changelog:

colour_space: fix sign for YCbCr KG values being wrong


hdr_and_sdr_analysis:

  • fix scaling behaviour of the waveform in 8 bit SDR
  • don't allow the waveform to be 2x its size in 10 bit SDR
  • fix sampling postition for the waveform text being wrong (needed a +0.5f)

2024.04.02.7z
sha256: 57135a03571991635fbb763328681bc652420f58f3fe789e0bb343243476de67

2024.03.30

30 Mar 22:11
Compare
Choose a tag to compare

Semi-Automated release 2024.03.30:

Changelog:

hdr_and_sdr_analysis: the waveform was not updating when "show max/avg/min nits" and "show nits from cursor" was disabled


hdr_and_sdr_analysis: fix oversight when checking whether clamping is needed for getting max/avg/min nits and counting csps


colour_space: get rid off all asfloat(x)


2024.03.30.7z
sha256: 7ae710af7fb42da88aa554c646b3b5866c9121ee990e44fc27d8376efe033b08

2024.03.26

26 Mar 22:22
Compare
Choose a tag to compare

Semi-Automated release 2024.03.26:

Changelog:

hdr_and_sdr_analysis: fix text being offset wrongly by two chars when displayed in the top right and disabling cursorNits or max/avg/minNits


hdr_and_sdr_analysis: forgot to reenable the avgNits being clamped to maxNits and also clamp it to minNits


2024.03.26.7z
sha256: aacad1aca775ab0a0f55b2b31abbf53bf21b5571d4b377a3ca746941a42ed48a

2024.03.24

24 Mar 03:47
Compare
Choose a tag to compare

Semi-Automated release 2024.03.24:

Important Hotfix:
average nits calculation was not working correctly!

Changelog:

hdr_and_sdr_analysis: fix average nits being calculated wrong (the final calculation did not take into account the now variable dispatch and thread size)


colour_space: add matrices for conversions to and from AP0/AP1 with D60 white point


2024.03.24.7z
sha256: 75370a028914c597968813517b12c6892eeb535904c6a4e90a2788406bab96c8

2024.03.16

15 Mar 23:09
Compare
Choose a tag to compare

Semi-Automated release 2024.03.16:

Changelog:

colour_space: add weird workaround for DS1PTDE


hdr_and_sdr_analysis: fix the waveform being way too big when SDR is 10 bit


hdr_and_sdr_analysis: add workaround so '#if's out of scope do not get evaluated


make shader compile in d3d9 and d3d10 and give a proper error message there


delete lilium__font_atlas_consolidated.png


2024.03.16.7z
sha256: 32d4d1a4a4f2c5764b24471d626b3ccc38f7d266510c4c9a27f236418d3ddcfc

2024.03.15

15 Mar 01:17
Compare
Choose a tag to compare

Semi-Automated release 2024.03.15:

Spent the last 2 weeks+ rewriting the font rendering so you can use Performance Mode without games freezing up for an absurdly long time.
Also added a workaround for some edge cases that games do not freeze up there too...

Changelog:

hdr_and_sdr_analysis: add workaround so that the compiler does not unroll the 2 loops in the function DrawCharToScale which is used to redraw the waveform scale


hdr_and_sdr_analysis: improve performance of getting the gamut percentages


hdr_and_sdr_analysis: improve performance of getting the max/avg/min nits


hdr_and_sdr_analysis: add option to modify the update rate of the displayed values


hdr_and_sdr_analysis: rewrite font rendering completely to use a vertex + pixel shader combo rather than a compute shader so that in performance mode the compilation does not get stuck unrolling the loops and the shader compiles faster now


colour_space: add global variants of BUFFER_WIDTH and BUFFER_HEIGHT in different types


map_sdr_into_hdr: small cleanup


hdr_and_sdr_analysis: small cleanup


draw_font: simplify char size arrays and implement it


hdr_black_floor_fix: fix shader not working in HDR10


hdr_and_sdr_analysis: optimise max/avg/min shader a bit


colour_space: small cleanup


hdr_and_sdr_analysis: improve accuracy of displayed numbers


colour_space:

  • fix overlap between CSP_UNSET and CSP_UNKNOWN causing issues
  • fix shader not compiling when colour space was not set and bit depth not being 16 or 10

2024.03.15.7z
sha256: 8d851ee48b3208ad2eed5edb3fe5ac762a3a3b597ad19972a92dec936593a088

2024.03.04

04 Mar 00:31
Compare
Choose a tag to compare

Automated release 2024.03.04:

Thanks to @dylanraga for pointing out issues in the SDR TRC fix shader :)

Changelog:

hdr_black_floor_fix: change void functions with inout colour to normal functions that return the processed result


hdr_black_floor_fix: add option to only lower black levels and leave highlights and midtones alone


hdr_black_floor_fix:

  • use independent R, G and B channels rather than luminance as indicator for when the gamma 2.2 emulation should be applied
  • check if the R, G or B channel is above 0; this leads to more accurate and expected results

change Id naming to VertexID naming


change VPos naming to Position naming


get rid off ReShade.fxh dependency and implement replacements


colour_space: improve when to show the allowed colour space override


map_sdr_into_hdr: add "linear (scRGB)" and "linear with SDR black floor emulation (scRGB)" as options for input gamma


inverse_tone_mapping: fix tooltip for "max input brightness" still mentioning the "scRGB TRC fix" shader instead of the "map SDR into HDR" shader


hdr_analysis: normalise output from BT.1886 so that 0 matches the black point and 1 the white point of the display


sdr_trc_fix: properly implement BT.1886


hdr_and_sdr_analysis: properly include "draw_font.fxh"


sdr_trc_fix:

  • fix target Gamma being sRGB not working (thanks to dylanraga)
  • general cleanup
  • use vertex shader that doesn't forward TexCoord
  • add sRGB variant of BT.1886

2024.03.04.7z
sha256: 1728d581c953cdbc1fc83726987e770a15826b3513649c7978bff7e752beb366