Releases: EndlesslyFlowering/ReShade_HDR_shaders
2024.06.07
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
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
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
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
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
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
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
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
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
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