#Unreal Engine

1 messages · Page 1 of 1 (latest)

placid siren
#

Universal mod for UE 4.x and UE 5.x

Works by upgrading the SDR path to HDR10 swapchain and computing a dynamic SDR=>HDR scaling and applying with RenoDRT (not ACES specific).

Links:

  • Repo Build

  • Use pinned Reshade from #📝welcome
    Instructions:

  • Install Reshade 6.5.1+ (if using Xbox Games, pick the gamelaunchhelper.exe file)

  • Install renodx-unrealengine.addon64 file next to game exe (usually called xxxxx-Shipping-Win64.exe)

  • Launch game

You should not apply any .ini modifications to enable HDR.

If you are having issues a shader is likely needed. You can help by

The actual work that needs to be done to the lutbuilders is described in guides/Unreal Engine Modding

bleak nest
#

We should use this for dumping LUTs as well, I think?

@swift plover was right to keep #🧪lab for more intricate testing/collaboration and not the dumb grunt work stuff that's usually shaders at this point.

placid siren
polar crest
#

@placid siren I added this since people kept asking me about the sliders change in UE5 titles

placid siren
#

@dusty girder the bgr8 upgrade in stellar blade demo is what tanks performance, stocklike without it

#

like 40fps => 15fps

regal kayak
#

@dusty girder I've got a lutbuilder that's seemingly missing a ap1 -> bt709 conversion. Is this a thing that happens sometimes?

dusty girder
#

thats a weird one

#

idk if I've seen that before

#

sdr?

#

some old lutbuilders might be weird

regal kayak
dusty girder
#

give me 3 minutes

regal kayak
#

it's ue4

#

came from Outriders

#

also dumped another lutbuilder, it's possible this one doesn't matter

#

the other was pretty typical

#

oh I might be dumb, there's a chance that one dumped with hdr enabled

dusty girder
#

oh this looks like one of those

#

AA lutbuilders

placid siren
#

latest unreal has _new tag

dusty girder
#

or native hdr lutbuilders

#

thats probably junk unless the game actually draws that

regal kayak
#

yeah I think I'm just dumb and forgot I had it set to dump when native hdr was on

dusty girder
regal kayak
#

seems to work with just this lutbuilder added

#

I've got a good stack of commits piled up and keep putting off making a PR blobsweat

bleak nest
#

But _new tag also works well.

dusty girder
#

people already have a hard time

#

finding one folder

bleak nest
#

It'd have gone in that same folder, just titled old.

#

But _new works just as fine.

#

So, not really an issue.

bleak nest
#

Not all the modders are in the channel that can simply see the msg and compile something for you.

#

For instance, Ritsu compiled MGS stuff for me instantly, and he's not in the thread. Same with countless others.

#

#🆘helpdesk it is, I guess.

regal kayak
#

Since it’s a never ending project, we could just have “unreal work queue” channel or something where unimplemented lutbuilders get posted. We delete the post when done.

dusty girder
#

where people can post dumped lutbuilders

#

and we can mark them as added

regal kayak
#

It’s too easy for lutbuilders to get lost in messages otherwise

bleak nest
#

A request channel where someone dumps it, and whenever any modder takes charge of that, they take the convo to appropriate channel i.e. Unreal Engine thread, and tag the poster and continues convo there.

#

And then delete/mark the original posting.

dusty girder
#

until people repinged me

#

sometimes I try to get to them asap, but I might be doing something

#

and then when I go back later; I cant find it

bleak nest
dusty girder
#

I'll do it tomorrow

dusty girder
#

also is the game UE4?

bleak nest
#

Yeah, UE4.

#

lemme try.

dusty girder
#

figured, ue4 games with sm6 shaders have all those branches

#

you'll probably need to upgrade bgr8_typeless and/or rgb10a2 unorm

bleak nest
#

Sliders are working now, but game is 202.9121 capped.

#

Do I need to remove all upgrades, too?

#

I'll try copy destinations.

#

Copy upgrade paths, and menu goes higher.

#

Works now.

#

How do I determine what upgrades it needs? Check them one by one?

#

In-game is capped, not sure why.

#

Menu and cutscenes are fine, in-game gets rekt.

dusty girder
#

well unreal engine only really needs 3

#

bgra8 typeless, bgra8 unorm, rgb10a2

#

unorm isnt common

bleak nest
#

Upgarde Copy Destinations upgrades all at once?

dusty girder
dusty girder
#

try upgrading all 3 to output size, and if it doesnt work

#

enable "upgrade copy destinations"

bleak nest
#

Not typeless?

dusty girder
#

yes

#

rgb10a2 unorm

bleak nest
#

That worked.

#

In-game, as well as cutscene.

dusty girder
#

so lutbuilders good?

#

off to github

bleak nest
#

Yes

#

That sun has a darkness around it, what causes that?

dusty girder
#

idk

#

might be the suns texture

bleak nest
dusty girder
#

ohh that ring

#

it might, but honestly idk

#

maybe its always like that

#

and the sdr blowout just like hides it

#

if upgrade copy destinations fixed it

#

you can start disabling upgrades

#

and seeing which ones you need

placid siren
#

input needs to be clipped to 100.f probably

dusty girder
bleak nest
#

if 100.f fixes that, can just throw it and call it a dedicated mod and move on.

#

Throw it as a separate repo.

#

And not grief other games.

dusty girder
#

yep

#

thats what I do

bleak nest
dusty girder
#

the results are usually better

bleak nest
#

RGB10A2 UNORM alone doesn't work, so throwing in BGRA8 TYPELESS to it now.

Upgrade_R10G10B10A2_UNORM=1```
#

Game only ships with a single DLSS file.

#

And it's that version, old.

bleak nest
#

And the sun is like that.

#

Seems only in-game, too. The cutscene sun was as bright but no BS like that.

#

Maybe distance to it or something? not sure.

#

But if 100.f can fix that, I can test it.

#

HDR looks goooooooooood in the game.

#

The smoke is going very black as well.

#

It's not like that otherwise.

bleak nest
#

But it's 'good 'nuff' already.

sturdy lagoon
#

Looks cool

sonic copper
#

Can someone help me compile these? Its' for Mafia: The Old Country. The game starts with intro videos playing but the main menu is just a black screen with audio

bleak nest
#

Did you do upgrades?

sonic copper
#

Yeah I did that

bleak nest
#

And you're using latest RenoDX UE snapshot from GitHub?

sonic copper
#

yep

bleak nest
#

As well as latest RenoDX ReShade nightly?

sonic copper
#

yeah I used that and the snapshot

bleak nest
#

Someone else also had that issue few days ago, not sure what's up.

I played the game and it was fine.

sonic copper
#

yeah but I think it just had an update right?

#

So it's missing shaders if I'm not mistaken?

bleak nest
sonic copper
bleak nest
#

yee

sonic copper
placid siren
#

try without dlss to narrow down what's causing the issue

sonic copper
#

it worked

#

anything but dlss works

placid siren
sonic copper
#

what do you mean by scale

#

I have a sharpness scale

#

I can use unreal tsr, fsr, and xess

sonic copper
placid siren
sonic copper
regal kayak
#

@dusty girder did we ever figure out a good way to upgrade CAS shaders?

placid siren
#

could try dlssfix, but i know other people got it all working fine. maybe they updated something

sonic copper
placid siren
#

and avoid dlssfg flicker

sonic copper
#

in the reshade.ini that is

regal kayak
#

alright I added borderlands 3 to the mod list, but the CAS sharpening option in game sets itself to on every time you boot it and it needs to be off sadyeehaw

swift plover
#

Ask Lilium for her RCAS

regal kayak
#

I mean, that would be cool to have permission to use in the generic unreal addon

#

idk if shortfuse wants to make it a part of it though

#

hm, game has native hdr, maybe it has a different version of the shader for that and I could copy paste

swift plover
#

You can just tune rcas to match their cas close enough

regal kayak
#

yeah it's what I'll do for this if I can find an acceptable fix for this, but regular CAS kinda seems very SDR focused

swift plover
#

Lilium also has cas code

#

I haven’t looked at the shader

regal kayak
#

they do have a different permutation for HDR

#

all the same inputs, I should be able to copy paste and we'll be good. This might also be a good solution for the other games that are broken with CAS.

#

did not work

#

RIP

#

oh weird this is PQ encoding

#

pq decode every sample, pq encode at end (not bt709/bt2020 conversions btw)

#

that explains why the native HDR is super saturated, if I remember what not converting it looks like at least...

#

wait I might be dumb

swift plover
#

The lutbuilder would have outputted in pq in hdr

regal kayak
#

I think I got it backwards, I think they're PQ encoding every sample and then decoding at end

swift plover
#

Sharpening should be run in linear

#

It might just be like far cry 6

#

Where you literally just have to remove a saturate

#

And the sharpening works fine

#

Far cry 6 had clamped sharpening in hdr

regal kayak
#

I removed the saturate and it unclamped but went neon

regal kayak
#

@placid siren would it be okay if I added a shader to the addon just to bypass it? It's CAS which clamps and I don't know enough to get it working tired_wojak

#

main reason I even care to add it is because it's in borderlands 3 and every time you start the game it forces the shader back on

#

or maybe we could integrate RCAS like musa suggested

regal kayak
#

there are a few unreal games where it does

placid siren
#

Center, and the above left right below

#

C in this case is center

regal kayak
#

the supermassive games also do

#

lemme send the shader real quick

regal kayak
#

alright

placid siren
#

It has two

#

Like in Starfield

#

C is the same in both (center)
Then abde are branched

#

So you see 9 total: center + 4 +4

#

Which set of 4 is branched somewhere

regal kayak
#

would you want these functions added into common or a separate file in the game folder?

regal kayak
#

guess I could just put it into the shader itself

placid siren
#

Just can copy the CAS function somewhere, like effects

#

Starfield used green instead of Y for speed

regal kayak
#

you mean like, shaders/effects or somewhere for unreal specifically? I'm anxious about touching anything outside of the games folder lol

dusty girder
#

btw what did you mean about upgrading cas when you pinged me

#

the only issue I've ran into with CAS or NIS was having to upgrade UAVs to unclamp (destinations slider in the UE mod)

regal kayak
#

oh, I thought it was an issue you ran into before

#

guess it was just me with supermassive games and now bl3

dusty girder
#

my hentai games dont really get fancy stuff like cas

#

fxaa sure

placid siren
regal kayak
#

thanks

placid siren
#

it's partially wrong since it'smissing the branch

#

but the game does gamma 2 it seems

regal kayak
#

there being 9 loads is confusing me. I don't really get what it's doing I guess.

placid siren
#

what are the cbuffer values?

regal kayak
#

no clue

placid siren
#

can you check?

regal kayak
#

sure, I'd have to get a renderdoc/pix capture for that right?

placid siren
#

devkit

regal kayak
#

oh

placid siren
#

you have to enable capture cbuffers in devkit settings and restart

regal kayak
#

never realized that was there DEAD

placid siren
#

squared is a cheap gamma => linear

dusty girder
#

not just COLOR TRANSFORMATIOnm

placid siren
#

well, i'm feeding it context

dusty girder
#

ah

placid siren
#

it's cas, there's 9 points, one is center etc

dusty girder
placid siren
#

it's actually a perfect reference that probably won't be understood

dusty girder
#

yea sadly idk where its from

placid siren
#

coincidentally, it's a computer that is playing tic tac toe over and over and he's asking the computer to learn from repeated attempts

#

which is basically how AI works anyway

regal kayak
# dusty girder

lmao, I shouldn't have needed that for it to make sense. I was hung up on the abcde thing

dusty girder
#

I'm a big beleiver in visual learning

placid siren
#
·a·
bcd
·e·
regal kayak
#

I see

#

I enabled trace cbuffers in devkit but I'm not seeing where they show up

#

I restarted

placid siren
#

picture of snapshot?

regal kayak
dusty girder
#

btw this is random; but devkit 5_x support when kekwsit

placid siren
#

click preview

regal kayak
placid siren
#

is this dx12? hmm, why no pixel shaders

regal kayak
#

yes dx12

#

I can switch to dx11 though

dusty girder
#

you can do -d3d11 yea

placid siren
#

dx12 cbuffers are rough

#

one contiguous memory block

dusty girder
#

if the shaders are the same

placid siren
#

should be fine to understand what it's going

regal kayak
#

sm 5.0 so probably

dusty girder
#

yea, ue4 keeps the same shaders

#

dx11 and 12

#

if 12 is sm5

placid siren
#

actually, there are 9 draws so.. probably not rcas, just cas or vice versa

#
abc
def
ghi
regal kayak
#

this game came out when regular cas was newish

placid siren
#

there's cas and there's rcas

regal kayak
#

yeah like this predates even fsr1 iirc

#

I don't think rcas was a thing

placid siren
#

oof, a 1 + 8 + 4 model

#
  // Summary of inferred offsets relative to base (x,y):
  // r4 = ( x,   y )   // CENTER
  // r0 = ( x+1, y )   // right
  // r6 = ( x-1, y )   // left
  // r8 = ( x,   y-1 ) // up
  // r9 = ( x,   y+1 ) // down
  // r7 = ( x-1, y-1 ) // top-left
  // r5 = ( x+1, y-1 ) // top-right
  // r3 = ( x-1, y+1 ) // bottom-left
  // r2 = ( x+1, y+1 ) // bottom-right
  // Summary: center is in r0; neighbor samples are in r4,r6,r8,r9,r7,r5,r3,r2.
  // The later coefficient math uses these registers to build two 4-sample
  // neighbor groups and compute adaptive weights for the CAS-like filter.
  // r*.y values now represent the chosen luminance proxy of each sample
  // compute the minimum luminance across the neighborhood
regal kayak
#

okay, it's the same shader and I've got a preview. New values constantly though

placid siren
#

so it's not the 5 point cas

#

might be reused buffer, windows shift s and pray

regal kayak
#

idk how helpful this will be, the values change a lot

dusty girder
#

spekaing of UE

#

do we have an example of a UE game with custom grain

#

ideally SM5

placid siren
#

what's the resolutino of the game, surely not 180x430, right?

regal kayak
#

3440x1440, which are values that show up in here every once in a while

#

like now lol

placid siren
#

yeah, there we go

#

1/3440 = 0.00029069767441860465

#

1/1440 = 0.0006944444444444445

#

because floating point division is rough on gpus

#

i just feed it the screenshot and it actually understood it

#
// Example cb0 usage / sample values (from a capture at 3440x1440):
// - The shader uses cb0[1] as a UV scale/offset to convert SV_POSITION
//   into integer texel coordinates. In a 3440x1440 frame you can observe:
//     screen resolution:      width = 3440, height = 1440
//     reciprocal (1/width):   ~0.00029069767
//     reciprocal (1/height):  ~0.00069444446
// - In the decompiled math r1.xyzw is multiplied by cb0[1].xxyy then
//   offset by cb0[1].zzww, i.e. roughly: texUV = pos * (1/width,1/height) + offset
// - Those small reciprocal values (shown above) are what map the large
//   SV_POSITION coordinates (e.g. 3440,1440) into [0..1] UV space before
//   floor() produces integer texel indices. The table cb0[2] holds other
//   coefficient lookup values used later for weight generation.
regal kayak
#

crazy

placid siren
#

you honestly have enough for your own 5 point cas though

#
  r1.xyzw = min(float4(1, 1, 1, 1), r1.xyzw);
  r11.xyzw = min(float4(1, 1, 1, 1), r11.xyzw);

this will clamp

#

but i'm making it do the work of figuring out the 9 point cas system used

regal kayak
#

I feel like the better solution would be to ask lilium if we could put RCAS into the mod and then just swap out sharpening shaders as we desire.

#

but it's also cool if there's an easy way to fix games where this comes up

placid siren
#

i already gave you the rcas code

regal kayak
#

oh...

placid siren
#

it's in starfield

regal kayak
#

oh my bad, I thought that was normal CAS

placid siren
#

i don't remember which is 9 and which is 5

#

but lilium's is the same as starfield which is 5

#

i mean, the code is all in the AMD repo, just lots of noise

#
// Summary of inferred offsets relative to base (x,y):
  // r4 = ( x,   y )   // CENTER
  // r0 = ( x+1, y )   // right
  // r6 = ( x-1, y )   // left
  // r8 = ( x,   y-1 ) // up
  // r9 = ( x,   y+1 ) // down

you'd plug in those 5 points

regal kayak
#

the RCAS implementation we've done in some other games doesn't require computed positions, we just pass it the one set of coordinates iirc

placid siren
#

it definitely needs positions

#

i don't think you can get proper position without screen resolution

#

or maybe you do

#

since it's +1 int

#

and it's a load operation

regal kayak
placid siren
#
float3 b =
      renodx::color::gamma::DecodeSafe(SamplerFrameBuffer_TEX.SampleLevel(SamplerFrameBuffer_SMP_s, tex_coord + float2(0, -1) * texel_size, 0).rgb);
  float3 d =
  renodx::color::gamma::DecodeSafe(SamplerFrameBuffer_TEX.SampleLevel(SamplerFrameBuffer_SMP_s, tex_coord + float2(-1, 0) * texel_size, 0).rgb);
  float3 e =
      center_color;
  float3 f =
  renodx::color::gamma::DecodeSafe(SamplerFrameBuffer_TEX.SampleLevel(SamplerFrameBuffer_SMP_s, tex_coord + float2(1, 0) * texel_size, 0).rgb);
  float3 h =
  renodx::color::gamma::DecodeSafe(SamplerFrameBuffer_TEX.SampleLevel(SamplerFrameBuffer_SMP_s, tex_coord + float2(0, 1) * texel_size, 0).rgb);

sample is a waste

#

should load instead

regal kayak
#

idk, this is just what lilium gave us (though the decode was me making it work for tw3)

placid siren
#

it's ```cpp
abc
def
ghi

#

so bdefh

#

it's the asme ```cpp
half3 ComputeCAS(half3 a, half3 b, half3 c, half3 d, half3 e, half strength) {
half max_value;
half min_value;
bool use_luminance = true;
if (use_luminance) {
float a_y = renodx::color::y::from::BT709(a);
float b_y = renodx::color::y::from::BT709(b);
float c_y = renodx::color::y::from::BT709(c);
float d_y = renodx::color::y::from::BT709(d);
float e_y = renodx::color::y::from::BT709(e);
max_value = max(max(max(max(a_y, b_y), c_y), d_y), e_y);
min_value = min(min(min(min(a_y, b_y), c_y), d_y), e_y);
} else {
// use green
max_value = max(max(max(max(a.g, b.g), c.g), d.g), e.g);
min_value = min(min(min(min(a.g, b.g), c.g), d.g), e.g);
}

if (max_value == 0.h) return c;
half value_0 = min(min_value, (1.0h - max_value)) * (1.0h / max_value);

half value_1 = strength * Sign(value_0) * sqrt(abs(value_0));
half value_2 = 1.0h / (value_1 * 4.0h + 1.0h);

half3 computed = ((value_1 * (a + b + d + e) + c) * value_2);
computed = renodx::color::bt709::clamp::BT2020(computed);
return computed;
}

#

but this doesn't handle linearization and whatever

#

because context is linear

#

which is why i do ```cpp
renodx::draw::RenderIntermediatePass(
ComputeCAS(
renodx::draw::InvertIntermediatePass(_49).rgb,
renodx::draw::InvertIntermediatePass(_67).rgb,
renodx::draw::InvertIntermediatePass(_74).rgb,
renodx::draw::InvertIntermediatePass(_87).rgb,
renodx::draw::InvertIntermediatePass(_100).rgb,
_351)), 1.f);

#

inverts intermediate (to linear) and then the result is intermediate (to gamma)

#

heavily depends on the context

#

it honestly doesn't even matter if you mismatch top,left,right,bottom, since it's going to average them anyway. just center has to be right (c in this case)

#

((value_1 * (a + b + d + e) + c) * value_2); it adds/subtracts a value to c

dusty girder
placid siren
#
uint width, height;
SamplerFrameBuffer_TEX.GetDimensions(width, height);
float2 texel_size = 1.0 / float2(width, height);

you don't need this either since it's passed as a cbuffer

regal kayak
#

I'm still so confused pepe_cri

placid siren
#

i think using .g is ass

#

though the game isn't using rcas, it's cas

#

the long 9 point one

#

rcas is for post tonemap and cas is pretonemap

#

rcas is meant to be decent enough for any input, even tonemapped, so it's fine for a reshade shader, but not intended to be better than cas

#

hence the "robust"

regal kayak
#

tried implementing the 5 sample cas you sent, but I guess these loads aren't going in grid order

#

not really sure how to tell which is which

regal kayak
#

causes sparkly artifacts

placid siren
#

center is r4, #1411800884303626311 message make sure that when you return that it's unchanged

#

just return r4 and it should be identical

regal kayak
placid siren
#

starfield passed the strength, but there's probably a default somewhere

#

i'm still trying to figure which cas method it's doing

#

seems there's only two, with scaling and without. the other difference in AMD is float or half

#
// Annotated decompile: This shader implements a CAS-style (Contrast-Adaptive
// Sharpen) pass and is functionally very close to AMD's FFX CAS "no-scaling"
// reference (3x3 neighborhood). High-level flow matches the AMD code:
//  - load a 3x3 neighborhood (center + 8 neighbors)
//  - compute soft min/max over the neighborhood (avoid clipped regions)
//  - form a normalized contrast scalar, apply a shaping curve (-x^2 + 2x)
//  - map that scalar through per-channel polynomial/tables to produce sample
//    coefficients/weights
//  - apply weights to neighbor samples, normalize by total weight, and undo
//    an earlier color-space square with a final sqrt.
// Differences vs. AMD FFX CAS reference (important):
//  - AMD's simple reference computes a single green-channel weight and uses
//    it on the 4 orthogonal neighbors (B,D,F,H) with an optional add of
//    diagonal contributions; this shader computes two coefficient vectors
//    (r11 and r1) and therefore produces per-neighbor, per-channel weights
//    applied across the 8 neighbors (more general / per-sample weighting).
//  - This decompiled shader explicitly squares sample values early and
//    performs a final sqrt to recover color-space; the AMD snippet uses an
//    input transform (`casInput`) and may not use the same square/sqrt trick.
//  - Normalization differs: AMD uses 1 / (1 + 4*w) for the orthogonal-only
//    case (or slightly modified when diagonals are included); this shader
//    computes an explicit sum of the per-sample weights and uses rcp(sum).
//  - The decompiled shader reads coefficient table/params from `cb0` and
//    builds polynomial inputs there; the AMD reference uses const parameters
//    (const0/const1) and helper macros. Functionally these map to the same
//    role (scalar -> per-sample weight mapping) but the math layout differs.
// Conclusion: yes — it is implementing CAS in spirit and effect, but not a
// byte-for-byte copy of AMD's sample code. The comments below map the
// decompiled registers and steps to the CAS concepts and callouts above.
#

fsr3 rcas is just changing the scaling. you could pass PQ and be done with it, btw

regal kayak
#

like just pq encode each sample then decode at end?

placid siren
#

yep

regal kayak
#

I think I tried that

placid siren
#

in fallout4 i did something similar, but wasn't to PQ

#

was more HLG like

regal kayak
#

maybe not with the original shader, I'll give it a shot though

placid siren
#
float3 convertRenderInput(float3 render) {
  render = renodx::draw::InvertIntermediatePass(render);
  render /= RENODX_PEAK_WHITE_NITS / RENODX_DIFFUSE_WHITE_NITS;
  render = pow(saturate(render), 1.f / 2.2f);
  return render;
}

float3 convertRenderOutput(float3 render) {
  render = pow(saturate(render), 2.2f);
  render *= RENODX_PEAK_WHITE_NITS / RENODX_DIFFUSE_WHITE_NITS;
  render = renodx::draw::RenderIntermediatePass(render);
  return render;
}
#

this is what i did for fallout4 taa

#

where 1.0 represents peak nits

#

and did it in 2.2

#

cas is meant to be in linear

regal kayak
#

is the lutbuilder outputting in pq already?

placid siren
#

just looking at this code, i'm tempted to just make my own contraster

placid siren
#

so you'll want to retain the negatives

regal kayak
#

with the addon I mean

placid siren
#

i mean, moddded ue yes

regal kayak
#

okay

placid siren
#

save the sign, abs it, then when done, revert the sign back

placid siren
#

it stops being cas right here ```cpp
// FfxFloat32 amplifyGreen = ffxSaturate(ffxMin(minimumGreen, FfxFloat32(2.0) - maximumGreen) * reciprocalMaximumGreen);
r3.w = 2 + -r2.w;
r2.w = rcp(r2.w);
r0.w = min(r3.w, r0.w);
r0.w = saturate(r0.w * r2.w);

regal kayak
placid siren
#

how old is the game? also which game

#

this is the refactored code ```cpp
float3 SampleTexSquared(Texture2D<float4> src, int2 pos) {
float3 c = src.Load(int3(pos, 0)).xyz;
return c * c; // shader works in squared color-space and sqrt() at the end
}

float3 CAS9_Shader(int2 centerPos, Texture2D<float4> src, float4 cb0[3]) {
// load 3x3 neighborhood (readable names)
float3 a = SampleTexSquared(src, centerPos + int2(-1,-1)); // tl
float3 b = SampleTexSquared(src, centerPos + int2( 0,-1)); // up
float3 c = SampleTexSquared(src, centerPos + int2( 1,-1)); // tr
float3 d = SampleTexSquared(src, centerPos + int2(-1, 0)); // left
float3 e = SampleTexSquared(src, centerPos + int2( 0, 0)); // center
float3 f = SampleTexSquared(src, centerPos + int2( 1, 0)); // right
float3 g = SampleTexSquared(src, centerPos + int2(-1, 1)); // bl
float3 h = SampleTexSquared(src, centerPos + int2( 0, 1)); // down
float3 i = SampleTexSquared(src, centerPos + int2( 1, 1)); // br

// soft min / max over green channel (decompiled used doubled accumulators)
float maxG = max(max(max(b.g, d.g), max(e.g, f.g)),
max(max(max(a.g, c.g), max(g.g, h.g)), i.g));
float minG = min(min(min(b.g, d.g), min(e.g, f.g)),
min(min(min(a.g, c.g), min(g.g, h.g)), i.g));

if (maxG == 0.0f) {
return e; // guard, matches decompiled early return (no sharpening)
}

// compute normalized conservative contrast metric:
float amplify = saturate( min(minG, 2.0f - maxG) * (1.0f / maxG) );
// shape the response with the quadratic shaper used in the decompiled code
float shaped = amplify * 2.0f;
shaped = -amplify * amplify + shaped; // -x^2 + 2x
shaped = max(0.5f, shaped); // floor to avoid zero

// build polynomial-driven per-sample coefficients (cb0 used like tiny scalars)
// -- these mimic the r11 / r1 assembly in the decompile --
float2 scaleParams = shaped * float2(1.5f, 1.5f) + float2(1.0f, 2.0f);
float4 aInput = (float4)scaleParams.x * cb0[2].xxxx + cb0[2].yyyy; // example mapping
float4 bInput = (float4)scaleParams.y * cb0[2].xxxx - cb0[2].yzyz;

// polynomial-ish transforms, squaring/clamping similar to decompiled transforms
float4 A = saturate(aInput * aInput);
float4 B = saturate(bInput * bInput);
// combine into two coefficient vectors (per-channel)
float4 coeffSet0 = float4(1,1,1,1) + (-scaleParams.y * A + (A * scaleParams.x));
float4 coeffSet1 = float4(1,1,1,1) + (-scaleParams.y * B + (B * scaleParams.x));

// apply coefficients to different neighbors (mapping follows decompiled pattern)
// example mapping: coeffSet0.xxx -> up, coeffSet0.yyy -> top-right, coeffSet0.zzz -> left, coeffSet0.www -> bottom-left
float3 accum = float3(0,0,0);
float totalWeight = 0.0f;

// top-left + top + top-right
accum += a * coeffSet0.xxx; totalWeight += coeffSet0.x;
accum += b * coeffSet0.xxx; totalWeight += coeffSet0.x;
accum += c * coeffSet0.yyy; totalWeight += coeffSet0.y;

// left + center + right
accum += d * coeffSet0.zzz; totalWeight += coeffSet0.z;
accum += e * coeffSet1.xxx; totalWeight += coeffSet1.x; // center uses other set
accum += f * coeffSet1.yyy; totalWeight += coeffSet1.y;

// bottom-left + bottom + bottom-right
accum += g * coeffSet0.www; totalWeight += coeffSet0.w;
accum += h * coeffSet1.zzz; totalWeight += coeffSet1.z;
accum += i * coeffSet1.www; totalWeight += coeffSet1.w;

// normalize by reciprocal of sum of weights
float invSum = rcp(totalWeight + 1e-6f); // decompiled summed and rcp; tiny eps for robustness
float3 result = saturate(accum * invSum);

// undo squared color-space
return sqrt(result);
}

#

right after amplify = is basically not CAS

regal kayak
placid siren
#

amd code syntax is cancer

#

like they pay per character for function names

regal kayak
#

since it's int2s here

placid siren
#

you're loading pixels positions exactly from a texture

bleak nest
#

Question regarding RenoDX UE mod, the peak nits slider can fuck up sometimes or nah? Left is 3000 peak nits set, right is 4000 peak nits set.

My panel can do 3000 nits, but the game stays hard capped at diff values (well under the limit we set)

It can't be the game itself, right? Since going from 3000 to 4000 adds another 400 nits to game anyway?

#

FWIW, the game itself only does 1k nits max from its menu, lol.

bleak nest
#

OIC, lemme try that.

#

Expected behaviour then, right?

#

Happens in some games?

bleak nest
#

And then play with white clip?

#

I can keep it 3000 on peak slider, and 1 on white clip to reach 3k nits.

or I can keep 4000 on peak slider, and 38 on white clip, to reach 3k nits.

#

Which is the better approach?

dusty girder
#

honestly most UE games can probably be safely set to ~20

#

since untonemapped isntcrazy bright anyway

#

and you wont loose too much

bleak nest
#

Yeah, but that's what I'm asking.

bleak nest
#

Both are leading to same results, as far as max nits go.

#

But idk if it's going to fuck up anything else along the way, if I do one approach than the other.

regal kayak
#

borderlands 3 looks shockingly good with the addon

pliant belfry
#

Big upgrade over Native HDR?

regal kayak
#

I'll grab a shot real quick, I didn't even compare

#

eh, not really, native HDR honestly looks good

#

though it's limited to 1000 nits and needs bff

#

also no paper white adjustment

#

I also adjusted the settings a bit in the photos I sent, was blowout restoration up to 70, saturation 55, blowout 40

#

this one's lined up a bit better

pastel sand
#

Hey there pals. Just a general question about Using UE "generic" RenoDX mod. I've always kind of deterred form using it since I feel like UE is so broad that I might run into issues while if I use a mod, there is a team looking after the project. Anyways...

#

I go to this site and if the game I'm looking for says nothing specific I should leave the config as default?

desert heron
#

leave the config as default until something goes wrong

#

then ask for help

pastel sand
#

Haha. Fair enough.

#

Oh I just saw the pinned comment and it explains it all pretty well. I was afraid of all that LUT dump stuff, but seems quite straightforward.

pastel sand
#

Ouch. Also the game seems clamped at 203 and I'm a bit clueless about all the UE mod settings.

#

It's Tales of Arise.

bleak nest
#

Maybe that's the occasional freakout mentioned there?

As for 203, did you try doing upgrades?

#

RGB10A2 and BGR8 ones.

#

See if that helps with clamping.

pastel sand
#

I have to reload the game for those, right?

bleak nest
#

Yeap

coarse axle
bleak nest
#

Genuinely looks like a solid HDR title, wtf.

#

lol

pastel sand
#

I tried this one config, but was full of artifacts.

#

I'm definetely clueless about all this options. Haha. But apparently some people got Tales of Arise working with RenoDX with some minor bugs.

placid siren
pastel sand
#

Lots of artifacts under that config.

placid siren
#

the fact they're red, green, blue feels like values that teeter along 0

pastel sand
#

I could keep trying other configurations, but they seem endless.

placid siren
#

it's not normal UE, so using the UE addon is kinda shoehorning a solution

#

could try dumping luts to see if any of the lutbuilders are bad, but i doubt it

#

generally artifacts would only appear on Vanilla Tone Mapper with a bad lut builder

digital raptor
#

looked great, so its not too custom

#

not sure why I had different output shaders

pastel sand
#

Meaning there's hope still? Haha.

digital raptor
#

apparently the game need r8g8b8a8_typeless upgrades depending on arise sdk config

#

if this doesn't work you may need to find the shader yourself with the devkit

regal kayak
#

Are there lutbuilders to dump?

coarse axle
#

Haven't tried reno

#

Native HDR is capped to 1000

#

No other settings outside of max brightness slider

regal kayak
#

I’ll definitely get it working with the mod (though I’m trying to actually finish a bl3 playthrough for once)

pastel sand
#

So I just need to turn on R8B8A8_typeless to the first toggle?

coarse axle
regal kayak
digital raptor
#

so you may need to track it down yourself

#

since I can't replicate it

pastel sand
#

Like using that LUT dump thing or tweak my ini until I find what's messing with the mod?

digital raptor
#

no, using the reno devkit

#

the lutbuilder shaders that get automatically dumped are different ones

pastel sand
digital raptor
#

Could maybe work

pastel sand
#

Same :((

#

If there is a tutorial or some guide for the devkit and it'd benefit other users I don't mind trying. Otherwise I think is beyond my technical capabilities haha.

digital raptor
#

Then you need to download the devkit. Open it up in game, click "Snapshot" (top left) and switch to the shaders tab. You should see a long list of shaders, one of them having a dropdown that says "addon". You want to click the dump button on the next two shaders in the list

digital raptor
pastel sand
#

Your latest build had the toggle preselected right?

digital raptor
#

no

coarse axle
pastel sand
#

Should i use RenoDevkit along the UE mod, right?

digital raptor
digital raptor
pastel sand
#

On it.

digital raptor
#

so yea, this might fix it for @devout grove as well

pastel sand
digital raptor
pastel sand
#

Then it's like endless add-on tabs.

#

dump this two?

digital raptor
#

you're on the right track, can you click "more" and then "dump binary" on these two?

digital raptor
pastel sand
#

I look at this... And honestly think...

#

This people are aliens.

digital raptor
#

lmao

#

thats assembly, we can properly decompile them, then its a bit more readable

#

the shaders get dumped to a new folder in your game folder

pastel sand
#

I did the dump thing.

digital raptor
#

renodx-dev\dump

pastel sand
#

Lots of files there. I will delete them and repeat to make sure it's just those two you pointed.

digital raptor
#

ah you probably clicked "auto dump", that dumps all shaders

#

you can easily get the hash of the shader by clicking "more" and then "copy hash" in the devkit

#

and then just search the dump folder for them

pastel sand
#

Got the two.

digital raptor
#

and send them here :)

pastel sand
digital raptor
#

lets see

#

this build should work. 0xDCFDF14D was the shader that needed a fix

placid siren
#

not a lut builder?

digital raptor
#

no, lutbuilder was already included

#

some custom output shader

#

had an unsafe pow

#

the artifacts are probably only that strong because of their custom sharpening

pastel sand
#

😐

#

What can I say?

placid siren
#

custom do be custom

pastel sand
#

Perfectly working.

digital raptor
#

nice

pastel sand
#

(One day I'll learn to use ReShade screenshots (I promise)).

placid siren
#

jxr's in 2025?

pastel sand
#

I'll learn now. HAHA. Just let me... Haha.

placid siren
#

looks blownout to hell and back though

pastel sand
#

It's mostly because GameBar puts them all in the same folder and way more easy to keep track.

placid siren
#

i've modified some games to dump the reshade screen in to the same game bar folder (Videos/Captures)

pastel sand
#

Nice. Haha.

digital raptor
placid siren
#

my fault, my windows is in SDR atm, testing stuff

digital raptor
#

@pastel sand you can delete the devkit or deactivate it in the reshade menu, would otherwise cause perf issues during gameplay

placid siren
#

actually testing exactly that, auto switch Windows to HDR on game boot, and switching back on exit

digital raptor
#

ah nice

pastel sand
#

RenoDX looked a bit more pale, but lately I've been reading and trying to understand about hue shifts so I guess RenoDX sometimes looked a tad bit more desaturated is hue correction?

#

In this case it's the saturation correction slider.

regal kayak
#

saturation correction usually looks a bit weird in stylized games tbh

#

but in general it's probably worth keeping and upping saturation a smidge instead

devout grove
#

thanks, new update fixed the issue I had as well. Renodx/vanilla

regal kayak
#

also, big fan of blowout restoration going up to ~70 in basically all games

#

but I also turn up regular blowout a little too

digital raptor
pastel sand
#

I won't go crazy over it. It looks fantastic on default. But trying to understand a bit better in tiny steps haha.

coarse axle
regal kayak
#

yeah it looks like bog standard UE HDR

#

means the addon probably just works at least

#

could fire up the devkit to check what upgrades it needs (bl3 had a lot of r11g11b10)

placid siren
pastel sand
placid siren
#

i tries to merge the per channel SDR tonemap with a neutral, by-luminance tonemap

pastel sand
#

Yes. Yes. I was trying the opposite, to make the image more vibrant, as I think SDR was. Sure some shadows are red, but SDR looked like that as well.

#

If I used the saturation slider, even s single unit bump was overkill compared to SDR.

#

What would be the downside of turning off saturation correction in this case though?

placid siren
pastel sand
#

Now with saturation correction to 0.

#

Notice how on SDR and saturation correction to 0 the red shadows are more similar. Also in the second set, the girl's tunic is more brown and the rocks and main character skin more red.

placid siren
#

yeah, that's kinda intended because per channel ends up smearing all detail out of shadows

#

more accurate shadows is the consequence of fixing the saturation

#

red is notoriously smeared up

#

the per channel makes that should be dark-red/black just flat red

swift plover
#

I just set saturation correction to 100 and increase saturation to compensate

regal kayak
#

this is the way

regal kayak
placid siren
#

did you try the use do while?

#

if not, rip, tbh

#

maybe i can get copilot to figure out branching

regal kayak
#

fucking hell, forgot

regal kayak
#

I should switch to that lol

#

use do while worked

placid siren
#

if a shader can't work with do-while it's doing some unholy logic

dusty girder
#

--use-do-while is in the sm6 tutorial kekwsit

regal kayak
#

I don't check the tutorial if I think I know what I'm doing smart

regal kayak
coarse axle
#

but

#

FG will flicker

regal kayak
#

maybe the fix works, I don't even have the game yet lol

coarse axle
#

tru tru, need to see if FG fix works

#

might just crash

regal kayak
#

I have been told it still doesn’t work

coarse axle
regal kayak
#

hm, I was sent this one earlier as well but it doesn't look like a real lutbuilder

#

figured it was garbage from precomp or from native hdr being used

#

maybe I'm crazy

#

lemme check again

#

oof, idk why I thought that, yeah one sec lemme add this

coarse axle
#

because I added all the BL3 upgrades

#

but the game is still clamped

regal kayak
coarse axle
#

It worky

#

Ty very much

regal kayak
coarse axle
#

Let me see

#

Sliders don't do anything

#

But it unclamps

#

Tonemapping sliders do work

#

Wait

#

I forgot they don't update in rels time now

regal kayak
#

yeah, apparently this is ue 5.5.4 so no realtime sliders

regal kayak
coarse axle
#

I am going to test that now

#

FG Flicker fix works

regal kayak
#

awesome

coarse axle
#

hmm it is weird to me

#

it has that CNN FG tearing

#

2x doesnt have it as much

#

fix is working since reshade is reporting base FPS now

#

fix also solved ghosting I was seeing in vanilla

#

on weapon sights and whilst moving guns

#

but the fix has its own ghosting

#

fix solved the disocclusion ghosting present in vanilla but now has its own tearing like and boiling/bad motion vector like ghosting/blur

#

SDRlets truly are in shambles

regal kayak
#

bl4 honestly looks pretty great. It's insane to me how normal it is for people to see cartoony textures and suddenly be incapable of recognizing all the other rendering going on

coarse axle
#

works fine

regal kayak
#

nice

coarse axle
#

so the shadows are a bit crushed

regal kayak
#

so tired of the sun being a tiny dot in the sky in HDR

coarse axle
#

yep

placid siren
# coarse axle

this is the type of thing where, i'm like, when in real life does the sky ever look the left?

coarse axle
#

BF1 has nice looking sun, especially the middle eastern maps

placid siren
#

sun is tiny, but could be right

regal kayak
#

is this just preset off or is the lutbuilder getting reloaded?

#

idk if it matters...

placid siren
#

the reflections on the water are as narrow as the sun

coarse axle
#

I took default reno then off

#

not sure if I should flick to native then open up menu to get lutbuilder to reload

regal kayak
#

if you already know that reloads the lutbuilder, then try that for preset off

#

it looks too clipped even for sdr

coarse axle
#

Reno / Vanilla Tonemapper (after lutrebuild) / Off

#

🤷‍♂️ guess vanilla is just that clipped

placid siren
#

if you can, do a full mod disable

#

i doubt it'll make a different, but man, SDR is no bueno

coarse axle
#

will be hard to line up the shots

placid siren
#

just want to see ballpark if exteriors are that blown out

regal kayak
#

wild that it's just that clipped

#

I guess bl3 was also bright as hell in SDR

coarse axle
#

off topic but this is killing me

#

the sun is hiding behind the fog / clouds

#

but theres still a blazing reflection on the water

#

because rn from this perspective, where dafuq is the light reflection source

placid siren
#

you'd think the sun is high above view

coarse axle
#

nope it is dead ahead

#

if you move to the right

#

it will appear

#

🤷‍♂️

#

SDR (removed reno entirely)

#

despairge it is all just clipped to hell

#

@regal kayak what are your settings for BL3?

#

might as well try them out here

regal kayak
#

70 blowout restoration, 55 sat, 40 blowout

#

per channel corrections had a noticeable impact to sat in 3

coarse axle
#

I'll test those out

#

but damn

#

FG fix works to stop the flicker

#

but it is still WIP for the smoothness and look

#

when I removed it alongside reno, FG just feels better

regal kayak
#

I mean from what you posted, the native hdr looks good

#

seems like it's only really worth using reno if you wanna play with sliders or weren't gonna use framegen anyway

coarse axle
#

but I want to play with slider...

regal kayak
coarse axle
#

one sec got to remove reno again

regal kayak
#

apologies for putting you to work lol

coarse axle
#

SDR / Native HDR

regal kayak
#

stupid time of day

coarse axle
#

rip

#

I have no control

regal kayak
#

native HDR looks solid though

placid siren
#

still per channel in native so you'll get blown to white

#

but does mean the game has no luts, at least

#

could bypass the grading entirely, probably

coarse axle
#

Theres no differences in SDR / HDR to me

#

in regards to grading

#

so if theyre using bog standard UE

#

theres no SDR grading bypass shenanigans going on

#

notice this in the tutorial area as well

#

Gearbox solved the UE HDR problem

#

just dont do any grading

half mulch
#

no gamma mismatch ?

regal kayak
#

there is

half mulch
#

well

#

that sdr shot is not in an hdr container

#

then yes

#

its gamma mismatch obviously

placid siren
#

i think aces hdr has more contrast than aces sdr though, might somewhat balance out

pastel sand
# placid siren

Wait I thought right was with saturation correction to 0 against left to 100. But checking now, I'd say, to my untrained eye...

placid siren
pastel sand
#

I see. True. RenoDX brings way more shadow detail. But now checking I saw that saturation correction to 0 brings even more.

#

I've tried matching with saturation, but no luck. It goes hard just at the slightest bump. But! Won't go crazy over it. Vastly appreciate all the time and help you people put out already.

mild hazel
twilit lantern
mild hazel
#

also did have DLSS fix installed and no upgrades etc

#

also no mod installed

#

in game hdr off

regal kayak
regal kayak
twilit lantern
#

For changes to take effect

mild hazel
#

always capped to 200 nits

#

reno version of reshade, dlss fix, no upgrades, that UE version, base game

regal kayak
#

Hm. Well if any new lutbuilders dump, they’ll have new in the name

bleak nest
mild hazel
#

Ah ok

#

I tried copy and bgr10

bleak nest
#

Try the other one as well.

regal kayak
#

Try the 8 bit ones

bleak nest
#

RGB one.

mild hazel
#

aight

#

not super satisfied with base HDR, feels weirdly flat

#

will give it a shot in a little bit

austere root
#

rg10 typeless to output size didn't seem to fix black screen

austere root
#

seemed pretty punchy if not maybe too punchy

mild hazel
#

I already pushed floor down and idk, colors feel meh to me

austere root
#

probably just UE engine standard shit

mild hazel
#

yeah its not terrible

austere root
#

it's surprisingly a game well suited to HDR which is odd

#

the originals were just like in teh desert haha

mild hazel
#

bout to try more upgrades see if that fixes the sliders

austere root
#

yeah lmk i am "working" so don't have time to restart the game a bunch of times

coarse axle
#

Lazorr how is the FG fix on your end

#

because it isnt usable for me with reno

#

garbles the whole screen

#

FG fix by itself is fine

mild hazel
#

it all works except I was stuck at 200 nits

#

now I cant get the game to launch without asking me to start steam

#

as I click play through steam

#

trying other reno upgrades now

austere root
#

the game is unplayable without FG hah

mild hazel
#

wdym, after modding and tuning the in game settings, using dlss performance, turning a bunch of settings down, my 5090 can hit 60 base fps (tbf I am at 5k x 2k as well)

regal kayak
regal kayak
mild hazel
#

no worries I just got the game launching again, trying stuff

regal kayak
#

forge said it all worked without upgrades

coarse axle
#

what the hell is going on

#

one fella cant use FG fix because it garbles the screen

#

the another fella cant use reno becasue it is clamped

#

The thing worked out of the box with no upgrades outside of the one to fix black screen

#

but I did redo my shader cache

#

the game by itself also prompted a shader cache rebuilt the moment I added Reno

mild hazel
#

oh

#

we in business I think

#

yup

#

I am stupid, its literally the standard upgrade

austere root
mild hazel
#

I just mistakenly clicked bgr off memory the first time

austere root
#

ok it works but it crashed after a short period

#

FG x4 on

mild hazel
#

are you using dlss fix

austere root
#

no how do i implement that?

mild hazel
#

I am at 2x with streamline 2.9.0, FG 310.4.0, and DLSS Fix

austere root
#

do i just add that like i would reno and in addition to the reno already in the folder

#

and reshade 6.5.1 addons?

#

@mild hazel

mild hazel
#

use the reno reshade in #📝welcome

#

and follow the dlss fix instructions

austere root
#

ok i think i got it

#

hdr OFF in game right

#

@mild hazel

mild hazel
#

I do be getting a couple reno crashes

austere root
#

yeah i just got another one too haha

#

even with dlss fix installed correctly i believe

mild hazel
#

the fix is more for flickering with FG

austere root
#

yeah it's a shame that reno seems to be finnicky with frame gen

#

not all the time i guess

mild hazel
#

I swapped to streamline 2.8.0 and have more success

#

sometimes it bugs out and I have to open and close menu but it comes back

austere root
#

@mild hazel i am not on the cutting edge here what does this mean

mild hazel
#

nvidia streamline libraries

austere root
#

yeah i updated it

placid siren
mild hazel
#

then down to 2.8.0 and I stopped crashing

#

I do get moment where screen more or less freezes

#

and I have to alt tab or open close menu for it to come back

placid siren
mild hazel
regal kayak
#

snapshots should have the bl4 lutbuilders now

#

also presets settings for bl3 and bypasses the sharpening shader that clamps, so people don't have to fuss with it

mild hazel
regal kayak
#

idk when it finished compiling, just know that shortfused merged it

#

it was merged 2 hours ago and it usually takes a good bit to compile in snapshots

#

but it's definitely in there now

dusty girder
#

if it was 2 hours ago, its 100% up

regal kayak
#

yeah I checked

#

I just got the game, so I'll check if it'll benefit from anything else

mild hazel
#

I am trying to figure out the giant occasional stutters I get with reno

regal kayak
#

reminder that renodx usually breaks shader precomp, so if the game isn't being good about that, that's probably it

#

like if it didn't trigger the precomp step after you installed it

mild hazel
#

it does trigger it

#

and have cleared shaders/rebuilt with a couple different configurations

mild hazel
#

by giant stutters I mean

#

literally 1 fps for seconds

regal kayak
#

damn

#

are you using framegen and all that?

mild hazel
#

yeah, dlss fix too

#

I could see if it happens without

regal kayak
#

does it happen if you don't use framegen?

#

I haven't actually tried the dlssfix in anything yet

#

it sounds too unreliable currently

mild hazel
#

seems alright

#

without

regal kayak
#

might be worth making a dedicated mod for, since it's a big game.

mild hazel
#

yeah

regal kayak
#

ini hdr could save the day again

mild hazel
#

I would be very down for that

#

how hard is it to make a custom one? just time more or less?

regal kayak
#

now that I'm familiar with Musa's UE setup, it could be done today probably

#

but also like, the native HDR really isn't too bad

#

just needs bff

#

oh right, 50 series needs 10 bit unorm upgraded

#

should have made that happen automatically

mild hazel
#

yeah native isn't bad its just... idk lacking something

#

highlights

#

colors feel a bit flat

placid siren
#

aces is per channel

#

highlights go white

regal kayak
#

game might benefit from bgr8_typeless upgrades by output ratio

mild hazel
placid siren
mild hazel
#

this is the primary issue I am running into now

regal kayak
#

forge also mentioned visual issues with it that didn't exist without renodx + fix

mild hazel
#

I didnt run into that myself

placid siren
#

hmm, the thing it does do per frame is give it the cloned textures, but i don't think we're cloning much here

#

the rest is just initialized variables

mild hazel
#

game basically hard freezes and gpu usage drops to 0

placid siren
#

streamline log could be throwing a bunch of errors

#

but we're not seeing them

#

my real_slDLSSSetOptions hook was bad

#

but i don't hink i shipped with that

mild hazel
#

unsure what this means but I have a lot of dumps in C:\ProgramData\NVIDIA\Streamline\Borderlands4

regal kayak
digital stone
#

hello - sorry if this is a really basic question, but i was trying to get this universal mod to work with everspace 2. i saw old posts in the old HDR den discord that it worked, but it only seems to work in directx 11 for me. if i try to use the mod in directx 12 i just get a black screen + music/sound effects (i.e. not a CTD)

regal kayak
digital stone
stark shell
wooden oasis
#

Did anyone try the new firefighting game with renodx ?

polar crest
#

does this looks like renodx is working ?

#

highlights are dim

#

i mean

#

i need to go further in the game

#

but all sliders work

rustic lichen
#

Dispatch game demo. TellTale games type deal. I'll have to mess with the UE addon later. For now I'm using SK with ITM. Feels like a banger of a game though

desert heron
#

I wonder what would happen if I used this on the halo master chief collection Clueless

desert heron
#

oh
black screen in game, what else was I expecting lol

#

(menu is fine)

analog light
#

Anybody tried the UE version with Dragon Quest 11 S? Would love some Reno goodness but couldn't find anything on it. Game must not be that popular.

mortal birch
#

hello, sorry to bother does this works for ready or not?
because i just tried by applying this addon and also the dlss fix and the worked crashed after the first 2 intros

polar crest
#

so no dice

fervent lodge
#

Shader files for Sonic Racing Crossworlds, as mentioned in #🆘helpdesk message

regal kayak
#

seems to be working in the main menu

#

no upgrades needed here

#

clamps in the first track though

regal kayak
#

@fervent lodge just need to upgrade R10G10B10A2_UNORM by output size

fervent lodge
#

I'm Sorry, I don't know what you mean by 'already patched as part of the unreal mod'. i just dumped the files as asked dogekek

fervent lodge
regal kayak
fervent lodge
#

neither using this file nor upgrading R10G10B10A2_UNORM by output size seem to have any effect

#

well nevermind, scene change wasn't enough, but a game restart worked

#

is there some resources i can use to read up on what these upgrades do? would love to learn a little more about all this

regal kayak
#

yeah you have to restart for resource upgrades

regal kayak
fervent lodge
#

i see, thank you ThinkO_O

#

i'll play around with resource upgrades in the future then

fervent lodge
#

aah i see, so the generic unreal mod wouldn't just work for any unreal game? that's interesting too

regal kayak
regal kayak
#

fun game to play with sliders in lol

placid siren
#

windows clipboard sdr-clip

vital geyser
#

Oh there's a demo?
Is that why I see so many people test it?

regal kayak
#

idk, I bought it

#

I have no idea how they're this close...

#

maybe reloading the level isn't running the lutbuilder again

#

seems so, annoying

#

maddening game to tweak, lutbuilder doesn't run again until you go to an entirely different track lol

vital geyser
#

I do find it a bit too expensive but if it turns out that the splitscreen play actually works well I might actually reconsider

regal kayak
#

I had no interest in this game until I saw impressions at release

#

I loved sonic and all stars racing transformed, I just had no faith lol

#

game is super fun though

#

okay here's renodx defaults and sdr

#

doesn't even rerun the lutbuilder on a new track if it doesn't call for a new lutbuilder. Props to them for minimizing loading things already in memory I guess

regal kayak
#

really feel like this game got kinda screwed by aces

placid siren
#

as always

regal kayak
#

renodx letting me turn this into the cartoon slop I want

regal kayak
fleet vault
regal kayak
#

Sliders aren’t real time

#

@placid siren would it be alright if I integrated the lutbuilder callback stuff like you have in oblivion? We could also setup a message that shows up if no lutbuilder ever gets triggered telling people to dump and post shaders.

placid siren
regal kayak
#

maybe I should actually look at the oblivion implementation to see what I'm trying to get into lol

#

oh, yeah there would need to be a macro for this to make sense

#

I'll have to see what I can do, gonna have to familiarize myself more with how everything works 😅. It's a problem I really think we should solve though since it's gonna affect most new releases now.

#

and it's unreasonable to expect the average person to have any idea why it wouldn't be working

placid siren
#

I wanted to make cmake generate a macro that is like __ALL_{FOLDERNAME}_SHADERS but I got lazy

tall wedge
#

had to upgrade R10G10B10A2_UNORM to get display

sturdy lagoon
#

Very fitting

broken smelt
#

Tchia works with B8G8R8A8_TYPELESS Output Size, cutscenes clamped/SDR

fervent lodge
#

so, funny thing about sonic racing crossworlds, it's back to being capped at game brightness as soon as resolution scale is not 100%

severe grove
# regal kayak

It is insane with the huge highlights like those ones did not get an actual native HDR into the actual game without the mods, as the rendering style is made for HDR usage. Even the Engine.ini HDR config has the similar highlights as the mod (as I used the Engine.ini config in the Open Network Beta).

regal kayak
#

I'll make sure that works really quick

fervent lodge
#

it works indeed, thank you!

#

so why would i use output size instead of output ratio to begin with?

regal kayak
#

RIP, doesn't work on ultrawide lol. I'll have to make a build with special upgrades

#

output size upgrades resources that are sized to window size, while aspect ratio will upgrade sub native res resources

#

in general you want to use the minimum amount of upgrades necessary since upgrades can cause issues.

fervent lodge
#

huh i see, thank you

#

glad it works at 16:9 aspect ratio then. got a 4090 so i figured i might as well use it to play at a higher res scale

#

60 fps lock is a bummer

severe grove
# fervent lodge 60 fps lock is a bummer

The game's FPS is tied to the speed. Unstable FPS will slow down the game and worse DC'd in online races for everyone as error 1-6-0, despite in UE5. I don't know why they hard coded as that. This is a kart racer, not a fighting game (when frame input is important).

regal kayak
#
  • add explicit rgb10_unorm 16/9 upgrades for sonic crossworlds
  • set rgb10_unorm upgrades by aspect ratio for sonic crossworlds (in case of ultrawide mods)
fervent lodge
#

oh, it works out of the box with this now?

regal kayak
#

yeah

severe grove
regal kayak
#

it's still just the unreal mod

#

I should add it to the list though

#

needs to get merged first

fervent lodge
regal kayak
mint escarp
#

@barren nexus is this it?

#

ok

mint escarp
#

off

#

12

#

np

rustic lichen
#

unreal engine TinyGlade clone

#

game is called Outside the Blocks, there's a demo out for it now

#

tried getting RenoDX to work but could only get the UI slider to do anything

placid siren
#

did you get _new_ lutbuilder?

rustic lichen
#

I didn't

#

I exported and it was ones it already had

placid siren
#

if you said tiny book shop, i would jump, since my wife asked for the game

#

but tiny glade? i sleep

#

unless it's free/xbox

rustic lichen
#

Outside the Blocks, free demo

#

the game itself isn't out yet

placid siren
#

link?

rustic lichen
placid siren
#

you need to enable descriptor tracking for dx12 in devkit options

#

doesn't run every frame, maybe?

#

it...should, unless the metrics aren't right (different dimensions) or there's no lut builder

#
renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({
    .old_format = reshade::api::format::r10g10b10a2_unorm,
    .new_format = reshade::api::format::r16g16b16a16_float,
    .dimensions = {.width = 32, .height = 32, .depth = 32},
    .resource_tag = 1.f,
});
#

uav3...

#
auto pair = compute_uav_binds.find({0, 0});
  if (pair == compute_uav_binds.end()) return false;
  auto uav_view = pair->second;
  if (uav_view.handle == 0u) return false;
  auto* uav_view_info = renodx::utils::resource::GetResourceViewInfo(uav_view);
  if (uav_view_info == nullptr) return false;
  if (uav_view_info->resource_info == nullptr) return false;
  if (uav_view_info->resource_info->resource_tag != 1.f) return false;
#

it only looks at UAV0,space0

#

probably can extend to search all

#
  if (compute_uav_binds.empty()) return false;
  bool found_lut_uav = std::ranges::any_of(
      compute_uav_binds,
      [](const auto& pair) {
        const auto& uav_view = pair.second;
        if (uav_view.handle == 0u) return false;
        auto* uav_view_info = renodx::utils::resource::GetResourceViewInfo(uav_view);
        return uav_view_info && uav_view_info->resource_info && uav_view_info->resource_info->resource_tag == 1.f;
      });
  if (!found_lut_uav) return false;
#

%"hostlayout.class.StructuredBuffer<FPackedNaniteView>" = type { %hostlayout.struct.FPackedNaniteView } i don't think that's your lutbuilder

#

it upgraded it though

#

InstanceCullBuildInstanceIdBufferCS

#

but yeah... 1.05

#

that's this? #1411800884303626311 message

#

yeah, that is lut builder

#

a really simple one

#

sdr lut sampling in there

#

float4 _246 = t4.Sample(s2, float3((cb0_034z * TEXCOORD_4.x), (cb0_034w * TEXCOORD_4.y), ((((cb0_026y * _226) + cb0_026z) * 0.96875f) + 0.015625f)));

#

31/32 = 0.96875

#

and some smoothstep

#
float smoothstep (float edge0, float edge1, float x) {
   // Scale, and clamp x to 0..1 range
   x = clamp((x - edge0) / (edge1 - edge0));

   return x * x * (3.0f - 2.0f * x);
}