#✅RenoDX: Unreal Engine
1 messages · Page 1 of 1 (latest)
log is the same
17:48:04:403 [11704] | DEBUG | [RenoDX] utils::shader::BuildReplacementPipeline(Replacing 0xbbb5ca7b)
all I did was fix the lutbuilders the same as any other lutbuilder + add this to addon.cpp
// replace the 2 new lutbuilders
TracedShaderEntry(0x9DF2DDD4),
TracedShaderEntry(0xBBB5CA7B),
I assume if the issue was a bad decomp it would just look fucked up
or not compile
vs. crash
the last lines in the log are upgrade 32x32x32 rgb10a2 -> fp16
replace 0xBBB5CA7B
it might not be the reason for the crash; but thats all I see
@bold gulch can you stick the devkit in jousant
and tell me if there are custom shaders that come after the lutbuilder
a normal game is
-> lutbuilder
-> shader that samples lutbuilder [draws to swapchain]
-> ui [draws to swapchain]
-> ui [draws to swapchain]
etc.
i'm adding an Unreal HDR Look
if the sample shader isnt drawing to swapchain, they're doing custom stuff
60 60 60?
or something that mimics aces1000?
80 80 80 with reinhard seems pretty nuts
fine here
looks really good though
midgray actually matches
I dont know the jousant issues, but can I commit the lutbuilders anyway -- the code is well
the same
it might just be jousant doing scuffed shit
are you gonna look into fixing highlight desaturation with tonemappass?
so I dont have to do the scuffed dice/frostbite method
but yea sorry guys, I tried getting the game to work; no idea
when it comes to fixing shaders, no problem
but when it comes to the game crashing or the "lower level" swapchain stuff; I have no idea -- thats shortfuse's territory
what game is this?
Jousant
on game pass
here are the fixed lutbuilders
no idea, but if its not I'll buy you it
idc about the game, but its only 3$ or something on keysites
yeah
i'm downloading it
i bought it from a keysite
this is the unreal engine mod with the latest commits + 2 added lutbuilders
only difference between this and src/games/unrealengine is
-
2 files in sm6 lutbuilders folder
-
addon.cpp [sm6 section]
TracedShaderEntry(0x9DF2DDD4),
TracedShaderEntry(0xBBB5CA7B),
dont remember which one though
what are the lutbuilder hashes

nvm i see
here are the .cso if you need them
yea jusant is 1$ on keysites
can you guys take over jusant?
I wanna take a nap
I was at the doctor today
and if you find what the problem was, ping me -- at this point I'm curious
2 shaders after the lutbuilder
so the shader that samples the lutbuilder
doesnt draw to swapchain?
oh wait i didnt check that
did you check if shader#2 is UI or not?
because 100 ui shaders after the sample shader is normal UE shit
and there will always be 1 shader after the lutbuilder; you can find it easily via 543
the start of the shader asm/llvm will have 543 -- since thats their RNG for grain
its not ui
good question
ui is the 3rd shader after
if there is a shader after the sample shader
the game does custom shit
but even then, it should just look fucked up
not crash
oh im dumb
its a vertex shader
forgot to disable those
so ya just lut sample shader
pulling a marat
so yea this is probably a shortfuse thing
earlier in the log
17:48:03:131 [24500] | DEBUG | [RenoDX] utils::shader::BuildReplacementPipeline(Replacing 0xbbb5ca7b)
17:48:03:131 [24500] | DEBUG | [RenoDX] utils::shader::BuildReplacementPipeline(Added replacement 0xbbb5ca7b)
17:48:03:132 [24500] | DEBUG | [RenoDX] utils::shader::BuildReplacementPipeline(Added replacement pipeline0x0000000000000000)
17:48:03:132 [24500] | ERROR | [RenoDX] utils::shader::PipelineShaderDetails(Failed to replace pipeline)
I wonder if there are input/output issues
try live loading the hlsl?
see if it replaces
does the version of the .dll files in the decomp folder matter
mine might be on the older side (dxil/dxcomppiler)
but if the shader decompiles and then has no issue compiling in vscode; it should be fine?
@bold gulch while we're on the subject, can you please send me the latest dxil/dxcompiler
is it DX Compiler release for February 2025 ?
yea I'm there
is febuary what we want
yes
ty
@earnest bolt @pseudo maple i don't get a crash. it boots without me trying anything, but i don't the SK UI
just made SK load the game and didn't really set anything (still have reshade as the dxgi.dll)
ok ima take a nap, musa jusant is in your hands
and the addon works?
i'm in game
i dont wanna do ue mod stuff
in South of Midnight
riperoni
i downloaded jusant
that doesn't answer my question
the unreal mod is a group effort; 2 lines to fix la lutbuilder
and if we all contribute fixing them little by little
the mod will grow exponentially
🤷♂️
alright jusant is in your hands then; I left you the resources -- marat sleep -- I had a long today and not feeling 100%
that's the issue
not interesting
no custom stuff = boring
shaders i mean
brain isn't big enough to handle other shit
I dont disagree, but its for the people
i dont know how to explain how we're using the same versions of software but getting different results
what's your setup
i just installed the game, installed reshade, dragged over addon. clicked play on SK
i did the same
I try to fix up lutbuilders people share, because its 2 lines, makes the person happy, and also adds another lutbuilder to the mod which might be used in 10 other games
ok
the first lutbuilder we fixed was one shortfuse walked me through, the one in SMT5 long ago
and that lutbuilder alone was used in almost 10 games
this works but yes no sk ui
I thought we dont go into aces until the code after lutbuildertonemap
[branch] // the branch goes through all the different output device cvars (sdr "aces", 1000/2000 HDR10, 1000/2000 scRGB, and 3 debug outputs [7 8 9])
(cbuffer == 0)
also the colors are fucking up
looks normal here
move left and right slowly with the character and the whole scene changes
what are you renodx settings?
stock atm
oh it seems to be the same bug that guy got earlier about changing a setting and it fixes it, i hit reset on peak to change 1000 -> 1499
special K doesn't save Reshade settings, but that's w/e. as long as it doesn't crash
there's RRT which has desaturation
as far as i can tell sk isnt even running but who knows
you can tell because the cursor changes
it probably is
when you press ctrl shift escape
it also breaks the hdr analysis shader
but somehow reshade window can draw
it's all weird
one step closer to having both working 
have to run everything through SK isn't ideal and moving addons around is tedious
i like sk's feature set and i don't like being forced to pick between good hdr and sk
I renamed dxgi.dll to Reshade64.dll and booted SK and it hardlocked my PC (writing from my phone)
fun 
it recovered and said the game crashed
second time it booted
Reshade wasn't even set to load
Yeah SK autoloads reshade when named ReShade32/64.dll
Either in game root folder or in the SK profile folder's ReShade subfolder for the game
try capitalizing the S of Reshade lol
maybe it's a stupid thing like that
that loads from global plugins i believe, the tickbox
no idea, i don't like sk's reshade implementation, it's far too complicated and confusing
yeah, i thas to be \Binaries\WinGDK but dxgi.dll reshade doesn't
You mean it's a mess yeah
that is what i said yes
so how you get both working?
Yay, eventually, once going through per game messes, it gets working when it actually can
- "D:\XboxGames\South Of Midnight\Content\Midnight\Binaries\WinGDK\ReShade64.dll"
- "D:\XboxGames\South Of Midnight\Content\renodx-unrealengine.addon64"
Launch from SK
nothing fancy
even have prevent fullscreen on
Locations are whacked tho
Should never be that complicated
to be fair, UE is busted like that
and xbox games makes it extra cursed
because reshade needs to target the launcher.exe
Yeah but everything next to win64shipping exe should work easy
it might work
Ideally ofc
Fr ? Jusant doesn't have one, that might explain crashes
i just did this and did it fcking work?
no..
fml
lol
which addon again
did you remove dxgi.dll from "D:\XboxGames\South Of Midnight\Content\dxgi.dll"
may have forgotten some inis
"D:\XboxGames\South Of Midnight\Content\ReShade64.dll""D:\XboxGames\South Of Midnight\Content\renodx-unrealengine.addon64""D:\XboxGames\South Of Midnight\Content\Midnight\Binaries\WinGDK\ReShade64.dll"(yes again)
and now SK works
let me remove that second reshade64 for a sanity check

no ReShade2.ini produced ?
wtf
spelled different dlls
which is it
doesn't matter
they're in two paths is the point
let me rename to the right case
@pseudo maple this works: <#1321685184852135967 message> and no need to configure anything. just click play in SK
sweet jebus it works 
had the changing colors bug but can fix that with reset
wait no, its buggin
yeah i was iirc but after all this testing who knows
i'd like to solve it at some point
it did seem to happen more when ui brightness is not 203 but i cant reproduce it
i normally use 120nit
what about nvidia and stuff? you said you used an overlay?
or maybe some driver option? color calibration?
i have that off now, nvidia driver is set to reference mode, no hdr calibration app
peak brightness shows as unknown in windows settings, usually 1499 (lg tv)
the mod, despite appearances, is not very complex
you can try scRGB instead of HDR10 and also try swapchain compatibility mode and it might do something
Only one of those ReShade64.dll's is necessary.
both are
or else you don't get the SK ui
if you don't have in the "root", then no SK UI. If you don't have in WinGDK, no Reshade UI
@bold gulch @elfin lance Jusant crashes? I just get no upgrade (haven't injected new lut shader yet)
Steam version crashes on launch
im steam version too
Forcing HDR10 or scRGB also works, but I see part of the problem now.
By the time the code that checks for ReShade64.dll runs, the dumbass Unreal Engine has changed the working directory.
So I need to build the full path relative to the executable and use that explicitly.
that might relate to why some people say saving doesn't work. not just in SK, I've seen Reshade have that issue as well. changing working path sounds unnecessarily problematic
It's hugely problematic 😕
I even know about the problem and constantly forget to account for it.
@pseudo maple also, we use this Reshade #🧩renodx-dev message
that might not need the swapchain forcing
(just so we're on the same page)
Seems to be working alright now.
Still don't like that ReShade has to be loaded in-between initialization -- before SK fully initializes everything, but after it creates the dummy window to get the vftable from DXGI.
SK has an alternate mode where it can cache the vftable addresses, but I disable that whenever ReShade is present because that generally causes even more problems. 🤷 Can't win.
--
Actually, come to think of it...
The vftable cache wasn't being disabled because SK didn't spot ReShade in the game's directory, because the damn engine changed the working directory.
That may have been the problem all along.
well, i also had to change a bunch of swapchain stuff
there used to be a crash
no SK UI was after i fixed the crash
I dont have the game, but the issue seems to be crashing
@elfin lance we're talking about South of Midnight
I was replying to this sorry
the reply button didnt go through
jusant has a pipeline layout that doesn't use a descriptor table, which is the lut builder. that's all i found
game wants that blown out look apparently
Yup, that was the problem all along.
SK wasn't looking in the right directory for dxgi.dll
So didn't active ReShade compatibility code.
oof, but i do appreciate the help on bypassing tool windows and dummy windows
are those my lutbuilders?
nope
That even fixed compatibility with The Witness, lol.
I've been trying to figure out for years why I couldn't load ReShade as dxgi.dll in that game and have SK's UI work.
Unreal Engine's a hot mess sometimes.
i just was messing with Jusant (another UE game) and it won't save my RenoDX settings. nothing to do with SK.
so if I find another game that has issues with desc tables; all I do is add it to this list?
if (product_name == "Jusant") return true;
yep
20:45:48:978 [27704] | INFO | [RenoDX] No default settings for ASC-WinGDK-Shipping.exe (Jusant)
whatever is in there
copy
that's product_name
did you use diff colors in your lutbuilders
no, the last one is Grading Strength 0
going to have to figure out some sort of clean way of "don't blowout highlights"
yea
but it's the grading technically, we don't step all of it
i'm working on a different setup for UE
ok yea I checked the lutbuilders you commited, same colors I used
this might be inverse blue correct though: ```cpp
float _823 = ((mad(0.061360642313957214f, _787, mad(-4.540197551250458e-09f, _785, (_783 * 0.9386394023895264f))) - _783) * cb0_036y) + _783;
float _824 = ((mad(0.169205904006958f, _787, mad(0.8307942152023315f, _785, (_783 * 6.775371730327606e-08f))) - _785) * cb0_036y) + _785;
float _825 = (mad(-2.3283064365386963e-10f, _785, (_783 * -9.313225746154785e-10f)) * cb0_036y) + _787;
because ap1 has the blue correct
yea
actually, we don't want to inverse it
iirc you said we dont need blue correct
idk why they do it
because renodx aces/renodrt has it built in
so I think the latest untonemapped_ap1 go before blue correct
oh
so you can inverse to decide how little you want
guess we can start forcing lerp str to 0 for that
i think all the weird color grading has already happen so everything after is just ACES RRT, and SDR tonemap, then maybe lut, then final pow/gamma
yea the stuff after branch is just encoding and pow/gamma type stuff
color space conersions for output device
so i'm thinking of making a CreateUEConfig(untonemapped_ap1)
then you can plug in stuff to the config
there's a clip to bt709 in there
per game configs?
well, per lut builder
idk how well that would work
remember romance saga 2
where it used the same lutbuilder as all the other games we found
but it had different toe/shoulder/etc
like, i want to bypass RRT
so the very first lutbuilder fix we made didnt work
problem is the raw image heavily relie son it

or else we get opaque blue instead of white
// BlueBlueCorrectInv
r5.x = dot(float3(1.06537485, 1.44678506e-06, -0.0653710067), r1.xyz);
r5.y = dot(float3(-3.45525592e-07, 1.20366347, -0.203667715), r1.xyz);
r5.z = dot(float3(1.9865448e-08, 2.12079581e-08, 0.999999583), r1.xyz);
// lerp with BlueCorrection
r5.xyz = r5.xyz + -r1.xyz;
r1.xyz = cb0[36].yyy * r5.xyz + r1.xyz;
// Convert to target space but lacks clamp
r5.x = saturate(dot(cb1[12].xyz, r1.xyz));
r5.y = saturate(dot(cb1[13].xyz, r1.xyz));
r5.z = saturate(dot(cb1[14].xyz, r1.xyz));
good ole devs trying to figure out how to get a color with aces hue shifts
oh
that's lutbuilder_0x31FE4421.ps_5_x
r3.x = dot(float3(1.06537485, 1.44678506e-06, -0.0653710067), r0.xyz);
r3.y = dot(float3(-3.45525592e-07, 1.20366347, -0.203667715), r0.xyz);
r3.z = dot(float3(1.9865448e-08, 2.12079581e-08, 0.999999583), r0.xyz);
r3.xyz = r3.xyz + -r0.xyz;
r0.xyz = cb0[66].xxx * r3.xyz + r0.xyz;
r3.x = dot(float3(1.70505154, -0.621790707, -0.0832583979), r0.xyz);
r3.y = dot(float3(-0.130257145, 1.14080286, -0.0105485283), r0.xyz);
r3.z = dot(float3(-0.0240032747, -0.128968775, 1.15297174), r0.xyz);
r2.xyz = max(float3(0, 0, 0), r3.xyz);
this is stock lutbuilder_0xC1BCC6B5.ps_5_x
goes to bt709
removes all negative colors
somehow crisis core retains AP1
but if it had a lut, rip
yea idk how it works
because there is a max0
and games that use it do get WCG
is 0xc1b "stock" ?
because it is in a lot of games
so it would make sense if it was UE 4.27 stock
yep I remember this
apparently 0xC1BCC6B5 is bugged
but i had hand checked it before and did this: ```cpp
// r4.y = cmp(0 < r3.x);
// r3.x = cmp(r3.x < 0);
// r3.x = (int)-r4.y + (int)r3.x;
// r3.x = (int)r3.x;
r3.x = sign(r3.x);
would be interesting to see that game with the shader piped through
the converstion to dxil tool
dxbc2dxil
and then decomp
let's fin dout
because in theory that would result in a clean decomp
hmm, it just gives me llvm
which is "fine" but i didn't actually build a cli for raw llvm (though i could)
yeah, i'm adding the argument now --llvm
if (is_llvm) {
disassembly = renodx::utils::path::ReadTextFile(paths[0]);
} else {
auto code = renodx::utils::path::ReadBinaryFile(paths[0]);
disassembly = renodx::utils::shader::compiler::directx::DisassembleShader(code);
}
hmm, looks strange
can we get a shorter arg for
[--use-do-while]
like
-udw
all the other ones have it
unless its not "documented"
C:\Users\desktop\Desktop\dev stuff\tools\shortfuse decomp>decomp.exe
USAGE: decomp.exe {cso} [{hlsl}] [--flatten] [-f] [--skip-existing] [-s] [--use-do-while]
oh, i didn't need to do the --llvm
I guess -u would be fine too since there arnt a lot of args, but its up to you
.\bin\dxbc2dxil.exe .\0xC1BCC6B5.ps_5_0.cso /o shader.bin works
spriv = rip 
entry:
if23.else: ; preds = %if3.else
oh
i can fix llvm by hand and then pass it
; Name Index InterpMode DynIdx
; -------------------- ----- ---------------------- ------
; TEXCOORD 0 noperspective
; SV_Position 0
; SV_RenderTargetArrayIndex 0 nointerpolation
cursed formatting
not the formatting, straight up no info
peak index 0
it's usually ```cpp
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xy 0 NONE float xy
// SV_POSITION 0 xyzw 1 POS float
// SV_RenderTargetArrayIndex 0 x 2 RTINDEX uint x
no format
oh
nevermind, it's weird
there's two output signatures sections
one is missing
like svtarget.0 and 1?
too cursed
if its too cursed for you
idk what to tell you
I was never able to get bins from 11on12 or sm5 -> 6 that pix does to decompile
even though the llvm looks "decent"
this isn't actually a normal sm6 though, whatever dxbc2dxil does
it doesn't disassemble the same
problem is i depend on the ; comments more than i should
instead of the stuff at the bottom
!10 = !{i32 1, !"SV_Position", i8 9, i8 3, !9, i8 0, i32 1, i8 4, i32 1, i8 0, null}
!11 = !{i32 2, !"SV_RenderTargetArrayIndex", i8 5, i8 4, !9, i8 1, i32 1, i8 1, i32 2, i8 0, null}
; Input signature:
;
; Name Index InterpMode DynIdx
; -------------------- ----- ---------------------- ------
; TEXCOORD 0 noperspective
; SV_Position 0
; SV_RenderTargetArrayIndex 0 nointerpolation
ngl if it wasnt for the comments, llvm would be gibberish for me
i started from the top, and then found all the info repeated at the bottom
meaning i should have built from the metadata at the bottom first, and then filled that in with stuff from the comments if they were available
Thanks for fixing the forced fullscreen, also.
I often play games like this. The screen's 4K, but I have a 21:9 window centered on screen with a black window behind it.
Forced fullscreen was preventing me from doing that 🙂
also for this game, try the Bypass SDR Grading option. way less blown out
renodx::utils::settings::ResetSettings();
renodx::utils::settings::UpdateSettings({
{"ColorGradeContrast", 80.f},
{"ColorGradeSaturation", 80.f},
{"ColorGradeBlowout", 80.f},
{"ColorGradeStrength", 0.f},
});
it's just this in code
AI Limit is looking good, with my hdr look at home setup
rip meant to go to #🧩renodx-dev
ohh well
I've been enjoying 606060 highlight sat contrast (reinhard)
its not too strong, but looks gud
80 80 80 is basically ACES
yea I seen a pic
btw whatever version of Unity AI Limit is on, the one that uses CS for uberposts -- it doesnt have 500 permutations
I have a dude playing my WIP mod, and he went through multiple areas and
still uses the same shader
uh, are we running the wrong path the whole time?
3dmigoto where everything is a float
same here
LMAO
should be r0.xyz = asuint(cb0[44].y) != 0u ? r1.xyz : r0.xyz;
would float and asuint(float) return 2 diff numbers?
0u != 0.f
or would it be "close enough" to where it would "just work"
I got griefed by it in yumia
miru helped me out
had to change a bunch of stuff to asuint()
3dm cmp memes
meh... i should start the fxc decompiler
imo maybe just figure out decompiling whatever pix does
i'm not going to go and fix all the float int cast nonsense in all those shaders
it upgrades some stuff though that isn't backwards compatible
ah
true
if it uses shit like select
cant recompile as sm5
but I mean can you not fix that up in the decomp
I guess select wont easily replace as a regular bool
also harder to 1:1 check
i don't think it's as hard to be honest
fxc has all the if/else logic built for you
you just do per line
you don't have to keep track of previous values like in sm6
ladder ladder

I remember when I saw my first sm6 shader
wrong number
frontier_phi_1_2_ladder_8 = frontier_phi_1_2_ladder_5_ladder_8;
I instnatly noped out
yea I see 3dm grief us hard
I wonder how much sm5 mods on the modpage
have wrong colors
but since stuff looks "decent enough"
we just moved on with the mod
this is atan
r5.y = r5.y * -2 + 1.57079637;
r5.y = r5.z ? r5.y : 0;
r3.w = r3.w * r5.x + r5.y;
r5.x = cmp(r3.z < -r3.z);
r5.x = r5.x ? -3.141593 : 0;
r3.w = r5.x + r3.w;
r5.x = min(r3.x, r3.z);
r3.x = max(r3.x, r3.z);
r3.z = cmp(r5.x < -r5.x);
r3.x = cmp(r3.x >= -r3.x);
r3.x = r3.x ? r3.z : 0;
r3.x = r3.x ? -r3.w : r3.w;
The arctangent of the x parameter. This value is within the range of -π/2 to π/2.
pie * 2 = diamater
idk what pie / 2 is
wait no radius * 2 = diamater
the problem isn't so much it's atan, it's that it's wrong in the decompile
ik
I was about to ask
wtf is atan
google isnt helping
it assumes I know 5th grade math
r5.x = r5.x ? -3.141593 : 0; ohh wow negative pi
arctan
what anime is that
@viscid mirage let me know if 0xC1BCC6B5 looks better now
🤣
Speaking of which, static analysis just pointed out this lovely mistake.
DWORD dwWait = WAIT_OBJECT_0;
while (dwWait == WAIT_OBJECT_0)
{
dwWait =
MsgWaitForMultipleObjects ( 3, hWaitEvents, FALSE,
INFINITE, QS_ALLINPUT );
XINPUT_STATE xstate = { };
SK_XInput_PollController (0, &xstate);
SK_XInput_PollController (1, &xstate);
SK_XInput_PollController (2, &xstate);
SK_XInput_PollController (3, &xstate);
ResetEvent (hHotplugUnawareXInputRefresh.m_h);
} while ( dwWait == WAIT_OBJECT_0 ); // Events #1 and #2 end this thread
That was clearly do-while a long time ago, now it's while followed by another while.
Harmless thankfully.
oof, i use clang-tidy, but i don't think it would have caught that, at least in when i tried
hmm, maybe it's broken, since this isn't popping up: https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/avoid-do-while.html
Ok so trying latest SK with repo Add-on build, and both load but I can't get to the SK UI
This is with dxgi.dll and the add-on in the Binaries/WinSDK folder
(south of midnight)
Ah using SK to lazy load works
it does, seems fixed now
nice, thanks
could we maybe get custom sliders for game specific fixes or would that be too much work
too much. we should extract stuff into folders then
hmm
the game has a hatching effect and some weird stuff on highlights
if I made a native mod, I'd offer those as additional sliders to tone those down
I think the game specific fixes should definitely be under a "games" folder, so that under unrealengine you only have a lutbuilders, swapchainproxy and games folder
has anyone tried Split Fiction with RenoDX? If I'm not mistaken native HDR is capped
same, if games start getting dumped in the root folder
it will be super bloated
Wuthering Waves
R8G8B8A8_TYPELESS Outpu size
When performing frequent operations, it will crash
R8G8B8A8_TYPELESS OFF
Will not crash during frequent operations
DX11
Sorry, I didn't understand what you meant
i can't debug old versions
so what version of reshade are you using and what version of renodx are you using?
um.. "RenoDX" is not version
There is no version, or I don't know the version of RenoDX
RenoDX
below this
RenoDX?
that... makes no sense
maybe the build numbers are broken?
regardless if you don't have "Prevent Fullscreen", it's an older build.
also, use this reshade version: #🧩renodx-dev message
R8G8B8A8_TYPELESS Outpu size
R8G8B8A8_TYPELESS Outpu size
Color Grading works well
OK
can confirm it's broken right now
month set to august for some reason
yeah, i'm looking at that
probably yeah, but can crash some games
i copy pasted some date stuff from the internet
90% of copy paste i have to end up rewriting
meh
i found it anyway
DX11 mode, working well
DX12 mode, RTX, The same configuration runs poorly
So I can only use DX11 mode
@spare bane is color grading strength 0 equivalent to just ignoring the game's LUT for the look and just using renoDRT on the untonemapped image?
untonemapped still has some grading in linear
dang yall were busy cooking in here hard yesterday
it's:
- linear grading
- untonemapped (here)
- ACES rrt
- UE SDR tonemap
- SDR LUT (if it exists)
- color lerps
- custom gamma
the SDR tonemap may not be ACES-like (80/80/80), but you can usually replicate it, as long as you're willing to manually account for scene games and no LUTs
80 constrat 80 sat 80 blowout right
its at the bottom, next to reset all
oh thanks i see it now
yeah, kal came in and we fixed stuff
new game drops usually are like that
(South of Midnight)
looks like wuwa is still clamping 
new shaders i think
at least it doesn't seem to apply in menus
difference between sdr bypass and the game's grading is pretty huge tho
i'm assuming the blownout one is vanilla
Forgot to mention I played through all of ender magnolia with the mod and it was perfect
thats the reason why I experimented with this here #1321685184852135967 message
would probably better than just skipping the sdr grade entirely
😢 Latest snapshot, latest pinned reshade, latest SK.. Redout2 is more unstable than ever before, can't get past the main menu
SK's logs & INI
when did it last work?
there's nightlies. is it from b8g8r8a8_typeless ?
No idea, I haven't retouched settings for a while
It used to only crash very rarely as warned about on the mods/wiki page
you guys still using this reshade?
@stoic latch thanks, I guess I can set them to green checkmarks on the modlist
I'm surprised both of those games worked all the way through
enotria is a small game
so one sample shader might be fine
but ender magnolia has a bunch of different areas/biomes
I think nothing changed for stability from Reno/Reshade, it's latest SK that's causing it
I just played a good session without SK and it was all fine until a fatal error popup on exiting the game.
Got it working for Terminator Resistance I get what they were going for that cinematic feel but damn that raised black level from the original gross
is FG still flickering for transformer dll for you guys
Nevermind solved it
looks a bit crushed though
returnal
FYI, Returnal (and few other games afaik) auto enables the native HDR if windows HDR is enabled
Would it be possible to add the option to the addon to block native HDR like SK has?
I also remember that hijacking the native HDR output was on the table at some point, dunno which option would be better
oy lads ping me when mod is gud stage so i can make vidya aboot it
18:59:05:567 [11292] | DEBUG | [RenoDX] utils::resource::OnInitDevice(Hooking device: 284816512, api: opengl)
?
Use load order lazy
Lazy?
reshade Load order with SK
@spare bane should HDR be on in game for South of Midnight when using unrealengine renodx? I get a desaturated/grey image when I do that
no
thank you 🙏
How did you do that when the game has no reshade settings for renodx? I've had the same issue from the start, like it's swapping between different presets, one of which is more red overall
wdym it has no settings? the generic unreal mod has a ton of them
Yeah but with SoM in particular, the mod only works normally for me when ingame HDR is off
And then, I don't see the mod UI at all, don't even see it in the addon section even though it's working since there is HDR
are you using SK?
I am since earlier today, but it was behaving the same way prior to SK too
I'll try with the latest mod and without SK
HDR should be off in all Unreal mods
In-game HDR right? Should there still be a UI element for the reno addon?
In Midnight specifically
HDR should be off in all Unreal mods
at least this renodx-unrealengine.addon64
Unreal HDR is fundamentally broken
Got it, just not sure why I don't see the mod HUD for this game, even though I do see it for other UE games
because that's an SK bug that was fixed in SK
SK inject order?
Have you updated?
all good now, I set it to lazy and it works. I had the issue with the mod UI not being visible in the game even before SK, so I didn't try to mess with the load order.
I just nuked everything and reinstalled rehsade+sk from scratch and it works, just gootta test if the red flashing/tonemapper switch thing is still happening
I tried changing any settings per Ersh's advice, but the same thing still happens, sadly. Does SoM need any upgrades in the UE mod settings?
I tried dumping lutbuilders when it's happening but I don't see a folder being created. Is the renodx folder supposed to appear next to the exe when the dumping option is enabled?
damn
no idea how to narrow it down further then :S
I could be completely wrong but switching between color spaces like US modern/JPN modern looks very similar if not the same to what I'm seeing
but only it's happening randomly and rapidly, usually when moving the camera and moving around
struct ShaderInjectData {
float toneMapType;
float toneMapPeakNits;
float toneMapGameNits;
float toneMapUINits;
float toneMapGammaCorrection;
float toneMapHueShift;
float toneMapHueCorrection;
float toneMapHueProcessor;
float toneMapPerChannel;
float colorGradeExposure;
float colorGradeHighlights;
float colorGradeShadows;
float colorGradeContrast;
float colorGradeSaturation;
float colorGradeHighlightSaturation;
float colorGradeBlowout;
float colorGradeFlare;
float colorGradeColorSpace;
float colorGradeRestorationMethod;
float colorGradeStrength;
float processingUseSCRGB;
};
these are the cbuffers in order
so if some of them are being reset to 0, could explain
i wonder if it's the proxy
hmm
Yeah trying to get it balanced it was set at shadows 40, contrast 65, and flare 50. Tried to fix the black raise with just using reno before falling back with liliums black floor fix
wanted to add support for raincode, need hue shift and correction to be 0 by default since they cause issues. is this not the correct way to do that
const std::unordered_map<
std::string, // Filename or ProductName
std::unordered_map<std::string, float>> // {Key, Value}
GAME_DEFAULT_SETTINGS = {
(...)
{
"RainCodePlus-Win64-Shipping.exe",
{
{"Upgrade_B8G8R8A8_TYPELESS", UPGRADE_TYPE_OUTPUT_RATIO},
{"ToneMapHueShift", 0.f},
{"ToneMapHueCorrection", 0.f},
},
},
the bgra8 upgrade gets correctly set as the default for the game
but it doesn't work for the other two settings, theres nothing in the log for those
16:55:12:223 [ 5144] | WARN | [RenoDX] GetPeakNits(Not HDR)
Is HDR on?
Yes
I have SpecialK temporarily enable HDR
No error this time 🤔
cool I was just thinking about rain code
oh rain code is a great option
back before the renodx unreal mod existed
some stuff was still clamped
so adrian replaced some shaders and remove some saturates
The actiony bits in south of midnight with the mid, they look quite dim, is the look just the intended effect? Feels like SDR
these sections
looks clamped
turn on the lut dump option
actually first see if the contrast slider does anything
Contrast seem to do something but the whole image seems muted
Where do the luts get dumped
renodx folder besides game's exe
They dump immediately if it's a new lutbuilder
Nothing getting dumped means lutbuilder is already included
or its a compute shader (dx11 CS might dump, not 100% sure)
Can’t see anything
What's your pw and ui brightness?
120 UI, 203 PW
Ah brain isn't working but it's probably clamped by something
Well I see no dumped anything with the option turned on
Dno if a SK + reshade thing
If your game is the steam version then you can share the save data
Nah it’s game pass
Nah, they're doing some custom post process probably
Does it clamp early on in the game?
No just during these fighting sections
They are a bit later on in the game
Lots in chapter 5
Ah I'll play it soon so will fix it then
You go into like a circular ring thing and fight enemies basically
They also seem to be clamped in these running towards a tree sections
chapter 6 seems clamped
Try upgrading B8G8R8A8_TYPELESS by output ratio
how are we getting reshade into games from game pass like South of Midnight? I'm getting a permission warning. Is it just how mine is set up or am I not going through the reshade installer?
If you're using reshade installer choose gamelaunchhelper.exe instead of the game's actual exe
Awesome; thanks! I can use the hdr analysis tool now; haven't used the UE mod before now though, so I need to get that set up
question: is all I have to do with reshade-addon version is drop the renodx-unrealengine.addon64 in the content folder? I'm getting an error message
05:00:31:247 [30276] | INFO | Loading add-on from 'C:\Program Files\WindowsApps\Microsoft.XGSMidnight_1.1.2.0_x64__8wekyb3d8bbwe.\renodx-unrealengine.addon64' ...
05:00:31:248 [30276] | ERROR | Failed to load add-on from 'C:\Program Files\WindowsApps\Microsoft.XGSMidnight_1.1.2.0_x64__8wekyb3d8bbwe.\renodx-unrealengine.addon64' with error code 126!
hold up; working through the pin comment
on the last part checking the settings now, as I'm still getting an error message
WindowsApps is a protected location
You should change the installation so it’s not that folder
hmm, wonder why it's loading from there when I pointed to the D drive
Put the addon in Content
see in my second photo, the addon is sitting beside the southofmidnight exe on the D drive where I keep the game, but reshade seems to be pointing to the protected folder on the C drive
maybe I'll just uninstall reshade and start over
Install reshade in any other game then copy dxgi.dll & renodx-unrealengine to South Of Midnight\Content\Midnight\Binaries\WinGDK
So I did that and copied the files over. When I open the game without the dxgi.dll it loads with an error. When I add that in, the game crashes. Everything is on the D drive. The log shows this:
05:52:03:029 [30796] | INFO | Initializing crosire's ReShade version '6.4.0.1955' (64-bit) loaded from 'C:\Program Files\WindowsApps\Microsoft.XGSMidnight_1.1.2.0_x64__8wekyb3d8bbwe\Midnight\Binaries\WinGDK\dxgi.dll' into 'C:\Program Files\WindowsApps\Microsoft.XGSMidnight_1.1.2.0_x64__8wekyb3d8bbwe\Midnight\Binaries\WinGDK\SouthOfMidnight.exe' (0x5AA16DA7) ...
05:52:03:031 [30796] | WARN | Another ReShade instance was already loaded from 'C:\Program Files\WindowsApps\Microsoft.XGSMidnight_1.1.2.0_x64__8wekyb3d8bbwe\dxgi.dll'! Aborting initialization ...
05:52:03:033 [30796] | INFO | Exiting ...
05:52:03:035 [30796] | INFO | Uninstalling 0 hook(s) ...
05:52:03:036 [30796] | INFO | Finished exiting.
same thing just the log file itself
I would uninstall the game tbh
And then reinstall to a new location
old reshade, update that too
I think that helped…
Has anyone tried Darksiders 3 with Renodx? Really curious if it works well in that game!
RenoUE is crashing the Metal Eden demo (UE 5.3.1), not using anything else, all overlays disabled (except for steam), using the latest RenoUE and Reshade #🧩renodx-dev message
Reshade log
@fallow mica let me finish eating
and I'll try to fix those lutbuilders
thanks
if the game fires up native hdr every launch
you'll have to use SK
to hide hdr capabilities
no that will crash the game
@unborn verge tesed it i remember
Yeah
0x86F9308B
0xD5D3DF19
The only workaround is to disable windows HDR before starting the game
the second lutbuilder is weird
is some weird shit
everything is optimized really weird in bools and shit
yea 0xd5d is like some weird shit
idk how to fix it
I can only fix one of them
0x86F9308B
so we need shortfuse then
I can give you an addon with only 1 fixed lutbuilder for fun
no idea what its going to look like
probably like the other OG sony games
like horizon1 and gow2018
where they expected the tv to display map
no its a ps5 game and it read peak value from edid
this is with 10k profile
oh
@spare bane did you ever see anything like this?
it was dumped by the UE addon
but it seems to be missing most of the lutbuilder
ok so since there is only one lutbuilder
dont know if it will break later
looks hella custom
but one of them might've been the main menu
ima commit the fixed lutbuilder for now
just for the collection
srgb to linear and then 1.5x exposure for aces hdr
the uninstall did it; I placed it in the drive, so don't know what that was about. But it works!
Thanks
sdr is a custom colorspace adjustment and gamma encode 2.0
I wonder if that was the native hdr lutbuilder
and the one I fixed was the sdr lutbuilder
doesn't seem to be any 1000/2000 difference
they're edid aware
and scale to peak
not here
It looks like it streaches tbh
clip to peak
there's no peak nits here
just one cbuffer that is the output type: 3,4,5,6,11
it does clip #1321685184852135967 message
cb[11].z for colorspace and cb[11].y for output type
@elfin lance you need to output cb[11].y and see what you get
highlights look super bright in native hdr
if it uses cb[11].y == 11 we need to account for that
I dont have the game
That explains why SDR is darker
2.0 should be brighter
No, input gamma (OETF?) is darker the lower the value
Display gamma (EOTF?) is brighter the lower the value
@elfin lance what's the shader i'm looking at if the PR is different
polly dumped 2 lutbuilders
one of them was a standard unreal lutbuilder
and seems to work ?
yeah
figured I'd throw it in the lutbuilder collection
but im at first level
and the second lutbuilder is this custom shit
literally the start of the game
and the cursed one you're looking at is idk from where; but it came from returnal too
might be old code to show how cursed sony is
maybe; but for now that one lutbuilder seems to work just fine
if he keeps playing we'll see what happens
my guess is the regular lutbuilder spawns for sdr -- which is what we want
and the lutbuilder that clamps (custom lutbuilder) is for native hdr -- even though it has the cbuffers for all the paths
or unused
@fallow mica if you move the UI nits slider in returnal
with my addon
does it only scale the UI?
let me try it
yeah it only scales the UI
everything works correctly then
enjoy
let me know if later areas have differnet lutbuilders
hopefully whatever the cursed builder was is unused 

someone in my steam family bought it
yea ik
did you have to do any tweaks
to get around it forcing native hdr?
or the mod just works?
need this
I mean you said the game forces native hdr on
yeah
it looks broken
need to turn it off everytime
let me show you how in game hdr on with reno looks like
the cursed lutbuilder is probably the native hdr lutbuilder then
yea because the unreal mod isnt made to be played with games that are native hdr
the game is probably doing a bunch of stuff
i remember one game will crash if you do that
i never buy games on egs
Edit launcher.ini, set NoOperation to 1. Save. Uninstall it if it got uninstalled.```
I dont even have an EGS acc
but some steam games install the EOS overlay
It does
it does
but you can remove it
@spare bane I downloaded the game, the cursed lutbuilder doesnt draw at all (both sdr and hdr) -- probably grabbed from shader precompilation or somewhere idk
only the shader I made a pull request for gets drawn
any other shaders needed or i just merge the pr?
merge pr
the game is very pretty
(Returnal, RenoDX UE HDR)
what if you disable color grading?
1s
btw, i realized i should have upgradetonemap invert the loss in saturation from hdrcolor / neutralsdr
lets go no more dice memes
Does this mod for AMD GPU or only Nvidia?
should be universal
dx11 is universal. dx12 might have issues, but not completely sure
thats right; dx12 upgrade memes
Asking cuz on GitHub it says about upgrading something for some games
it's a DLSS-FG thing
Ok, thx
Unreal makes a proxy texture for DLSS-FG regardless if the game will use it.
that proxy has to be upgraded
damn
using this in a native hdr game
rorange door
yep
i use the ue addon in a lot of native hdr games
you need the 80/80/80 for aces match
I was talking more about the scene
ue hdr = garbage most of the time
I know it's wrong channel but is it somethj g like that possible for GTA v or Witcher 3?
highlights contrast sat
or contrast sat blowout?
oh thats what bypass sdr grade does
808080, grading str 100
here is bypass sdr grade
the blue flowers dont "look right"
Thanks, didn't know it's there. Cuz there is no mention of those 2 games on GitHub
returnal has insane amount of gamut expansion in native hdr
isn't that just aces
808080 grading str 100
[Returnal, RenoDX Unreal Engine HDR]
grading bypass
vanilla
man we really need "hide hdr support from game"
SK doesnt work with the game
and turning off native hdr every launch is ass
there's so many ways to detect hdr, unfortunately, and we're talking about blocking Windows functions
antivurses are already unhappy

Would lut builders be cached in the shader precomp?
ue doesn't use the directx cache afaik
custom
if it uses directx, renodx would pick it up, regardless of cache state
it goes into custom folders
like
C:\Users\desktop\AppData\Local\Enotria\Saved\Enotria_PCD3D_SM6.upipelinecache
i wish there was a way to disable UE's custom thing and use microsoft's
I have one cursed indie game (UE5)
even if you update your drivers
it doesnt re-compile shaders
delete the file, doesnt recompile
(Enotria the last Song -- pizza souls)
the only time I've seen it recompile
is when the game itself updated
they're probably setting a flag somewhere in a conf/ini file
"shadersCompiled=1"
and as long as its 1, it wont recompile
peak pepega setup 
I asked Kal in the patreons section if he can add
hide HDR Capabilities to Skinny as an option
I wonder if the custom lutbuilder is a leftover -- even though its not ran; it still gets precompiled
I think SKinny doesn't really play nicely with reshade :(
tried it in sekiro to get HDR + the DLSS mod working
but couldn't
rip
@spare bane for the thaumaturge lutbuilder I added with the PR I actually had to use an old decomp, the newest version spits out an "unexpected goto" error
I also still can't figure out why the dialogue scenes are clamped :/
do you still have the game
ah thx
@viscid mirage try upgrades?
it might be upgrade related, but can't figure it out rn
the game is really crash prone

with the devkit
yeah, but haven't really played it
same
@elfin lance Low health effect breaks HDR in Returnal, doesn't seem to produce new LUT file
Maybe that's what the other LUT file is for?
Anything can be done about it?
@unborn verge move the contrast slider up and down
does it change anything?
if it changes something, that means its using the same lutbuilder
and it might either be an upgrade issue or
low health draws another shader after the lutbuilder
ima do some chores around the house and check it out
It does!
good 'ol B8G8R8A8_TYPELESS does the trick
so low health looks right with bgra8 typeless?
yeah
moving the color grading sliders like contrast up and down
is an easy way to check if its missing a shader or resource upgrades/custom stuff
if the lutbuilder is missing, the contrast slider would do nothing
I'll add this to the wiki real fast; ty
BTW I couldn't get to the third biome, but the first two work, so I assume others will work too

just casually updated 53 shaders 
south of midnight is just straight up blownout
it's custom sdr blowout
hmm
hdr just has no sdr grading
r7.xyz = cb0[42].yzw * r1.xyz;
r1.xyz = -r1.xyz * cb0[42].yzw + cb0[43].xyz;
r1.xyz = cb0[43].www * r1.xyz + r7.xyz;
r1.xyz = max(r1.xyz, r0.xyz);
r1.xyz = log2(r1.xyz);
r1.xyz = cb0[27].yyy * r1.xyz;
r1.xyz = exp2(r1.xyz);
r7.xy = cmp(asint(cb0[66].zz) == int2(3, 5));
r0.w = (int)r7.y | (int)r7.x;
if (r0.w != 0) {
r7.xyz = float3(1.5, 1.5, 1.5) * r1.xyz;
unreal does this in HDR, which is apply some of the SDR effects when in BT709, and then does ACES 1000
where as sdr does aces rrt, custom tonemap and then those sdr effects
the max(r1.xyz, r0.xyz) is weird though
wait... that's...
none of this makes sense
ue seems more broken now than before
does it matter if the decompilation is broken after we run applyusertonemap?
probably not
I guess vanilla would be broken
whats r0 here, r1 is the color
r1.xyz is what we have for untonemapped_ap1 but in bt709
so they do some of the final gamma adjustments and stuff in bt709, like SDR does
but it doesn't have the UE tonemapper
it's there that south of midnight goes to hell
could it be vignette memes -- the no vignette cvar is tonemappingparam.3 or something
I think the description is "filmic no vignette"
// Pre desaturate
WorkingColor = lerp( dot( WorkingColor, AP1_RGB2Y ), WorkingColor, 0.96 );
const half ToeScale = 1 + FilmBlackClip - FilmToe;
const half ShoulderScale = 1 + FilmWhiteClip - FilmShoulder;
const float InMatch = 0.18;
const float OutMatch = 0.18;
float ToeMatch;
if( FilmToe > 0.8 )
{
// 0.18 will be on straight segment
ToeMatch = ( 1 - FilmToe - OutMatch ) / FilmSlope + log10( InMatch );
}
else
{
// 0.18 will be on toe segment
// Solve for ToeMatch such that input of InMatch gives output of OutMatch.
const float bt = ( OutMatch + FilmBlackClip ) / ToeScale - 1;
ToeMatch = log10( InMatch ) - 0.5 * log( (1+bt)/(1-bt) ) * (ToeScale / FilmSlope);
}
float StraightMatch = ( 1 - FilmToe ) / FilmSlope - ToeMatch;
float ShoulderMatch = FilmShoulder / FilmSlope - StraightMatch;
half3 LogColor = log10( WorkingColor );
half3 StraightColor = FilmSlope * ( LogColor + StraightMatch );
half3 ToeColor = ( -FilmBlackClip ) + (2 * ToeScale) / ( 1 + exp( (-2 * FilmSlope / ToeScale) * ( LogColor - ToeMatch ) ) );
half3 ShoulderColor = ( 1 + FilmWhiteClip ) - (2 * ShoulderScale) / ( 1 + exp( ( 2 * FilmSlope / ShoulderScale) * ( LogColor - ShoulderMatch ) ) );
ToeColor = select(LogColor < ToeMatch, ToeColor, StraightColor);
ShoulderColor = select(LogColor > ShoulderMatch, ShoulderColor, StraightColor);
half3 t = saturate( ( LogColor - ToeMatch ) / ( ShoulderMatch - ToeMatch ) );
t = ShoulderMatch < ToeMatch ? 1 - t : t;
t = (3-2*t)*t*t;
half3 ToneColor = lerp( ToeColor, ShoulderColor, t );
// Post desaturate
ToneColor = lerp( dot( float3(ToneColor), AP1_RGB2Y ), ToneColor, 0.93 );
that's UE tonemap
thats right we have the source lmao
desaturate once to 96% saturation, tonemap to sdr, desaturate again to 93%
don't ask yourself that
you know why
"it looks better!"
hardcoded nonsense
i need to show much is lost
||thats the first thing I thought of, but was really really hoping that wasnt the case||
I didnt know you could desaturate with just color = lerp(y(color), color, x)
I think I get it
jesus, the sun is yellow because clipping