Skip to content

Commit f1349b8

Browse files
committed
[UE-EXTENDED] Fix Lutbuilder
- Modern UE (5.7) lutbuilder was missing extended code in one of the branches - It seems new lutbuilders run all their code twice, so you need to add the returns (and set gamut expansion off) in both of branches
1 parent 995c99e commit f1349b8

1 file changed

Lines changed: 26 additions & 8 deletions

File tree

src/games/ue-extended/lutbuilder/sm6/lutbuilder_0xCF03A26C.cs_6_6.hlsl

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ struct FWorkingColorSpaceConstants {
1212
int FWorkingColorSpaceConstants_384;
1313
};
1414

15-
1615
RWTexture3D<float4> u0 : register(u0);
1716

1817
cbuffer cb0 : register(b0) {
@@ -152,11 +151,10 @@ cbuffer cb1 : register(b1) {
152151

153152
[numthreads(4, 4, 4)]
154153
void main(
155-
uint3 SV_DispatchThreadID : SV_DispatchThreadID,
156-
uint3 SV_GroupID : SV_GroupID,
157-
uint3 SV_GroupThreadID : SV_GroupThreadID,
158-
uint SV_GroupIndex : SV_GroupIndex
159-
) {
154+
uint3 SV_DispatchThreadID: SV_DispatchThreadID,
155+
uint3 SV_GroupID: SV_GroupID,
156+
uint3 SV_GroupThreadID: SV_GroupThreadID,
157+
uint SV_GroupIndex: SV_GroupIndex) {
160158
float _9[6];
161159
float _10[6];
162160
float _11[6];
@@ -349,7 +347,7 @@ void main(
349347
float4 output = ProcessLutbuilder(float3(_816, _818, _820), cb_config, u0[int3((uint)(SV_DispatchThreadID.x), (uint)(SV_DispatchThreadID.y), (uint)(SV_DispatchThreadID.z))], 3u);
350348
u0[int3((uint)(SV_DispatchThreadID.x), (uint)(SV_DispatchThreadID.y), (uint)(SV_DispatchThreadID.z))] = output;
351349
return;
352-
350+
353351
float _856 = ((mad(0.061360642313957214f, _820, mad(-4.540197551250458e-09f, _818, (_816 * 0.9386394023895264f))) - _816) * cb0_038z) + _816;
354352
float _857 = ((mad(0.169205904006958f, _820, mad(0.8307942152023315f, _818, (_816 * 6.775371730327606e-08f))) - _818) * cb0_038z) + _818;
355353
float _858 = (mad(-2.3283064365386963e-10f, _818, (_816 * -9.313225746154785e-10f)) * cb0_038z) + _820;
@@ -1255,7 +1253,10 @@ void main(
12551253
float _419 = (_408 / _415) + -1.0f;
12561254
float _420 = (_411 / _415) + -1.0f;
12571255
float _421 = (_414 / _415) + -1.0f;
1258-
float _433 = (1.0f - exp2(((_415 * _415) * -4.0f) * cb0_038w)) * (1.0f - exp2(dot(float3(_419, _420, _421), float3(_419, _420, _421)) * -4.0f));
1256+
1257+
// float _433 = (1.0f - exp2(((_415 * _415) * -4.0f) * cb0_038w)) * (1.0f - exp2(dot(float3(_419, _420, _421), float3(_419, _420, _421)) * -4.0f));
1258+
float _433 = (1.0f - exp2(((_415 * _415) * -4.0f) * 0.f)) * (1.0f - exp2(dot(float3(_419, _420, _421), float3(_419, _420, _421)) * -4.0f));
1259+
12591260
float _449 = ((mad(-0.06368321925401688f, _414, mad(-0.3292922377586365f, _411, (_408 * 1.3704125881195068f))) - _408) * _433) + _408;
12601261
float _450 = ((mad(-0.010861365124583244f, _414, mad(1.0970927476882935f, _411, (_408 * -0.08343357592821121f))) - _411) * _433) + _411;
12611262
float _451 = ((mad(1.2036951780319214f, _414, mad(-0.09862580895423889f, _411, (_408 * -0.02579331398010254f))) - _414) * _433) + _414;
@@ -1287,6 +1288,23 @@ void main(
12871288
float _816 = ((_702 * (((cb0_021x + cb0_036x) + _599) + (((cb0_020x * cb0_035x) * _608) * exp2(log2(exp2(((cb0_018x * cb0_033x) * _626) * log2(max(0.0f, ((((cb0_017x * cb0_032x) * _635) * _526) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019x * cb0_034x) * _617)))))) + (_590 * (((cb0_021x + cb0_026x) + _466) + (((cb0_020x * cb0_025x) * _480) * exp2(log2(exp2(((cb0_018x * cb0_023x) * _508) * log2(max(0.0f, ((((cb0_017x * cb0_022x) * _522) * _526) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019x * cb0_024x) * _494))))))) + ((((cb0_021x + cb0_031x) + _711) + (((cb0_020x * cb0_030x) * _720) * exp2(log2(exp2(((cb0_018x * cb0_028x) * _738) * log2(max(0.0f, ((((cb0_017x * cb0_027x) * _747) * _526) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019x * cb0_029x) * _729))))) * _805);
12881289
float _818 = ((_702 * (((cb0_021y + cb0_036y) + _599) + (((cb0_020y * cb0_035y) * _608) * exp2(log2(exp2(((cb0_018y * cb0_033y) * _626) * log2(max(0.0f, ((((cb0_017y * cb0_032y) * _635) * _527) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019y * cb0_034y) * _617)))))) + (_590 * (((cb0_021y + cb0_026y) + _466) + (((cb0_020y * cb0_025y) * _480) * exp2(log2(exp2(((cb0_018y * cb0_023y) * _508) * log2(max(0.0f, ((((cb0_017y * cb0_022y) * _522) * _527) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019y * cb0_024y) * _494))))))) + ((((cb0_021y + cb0_031y) + _711) + (((cb0_020y * cb0_030y) * _720) * exp2(log2(exp2(((cb0_018y * cb0_028y) * _738) * log2(max(0.0f, ((((cb0_017y * cb0_027y) * _747) * _527) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019y * cb0_029y) * _729))))) * _805);
12891290
float _820 = ((_702 * (((cb0_021z + cb0_036z) + _599) + (((cb0_020z * cb0_035z) * _608) * exp2(log2(exp2(((cb0_018z * cb0_033z) * _626) * log2(max(0.0f, ((((cb0_017z * cb0_032z) * _635) * _528) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019z * cb0_034z) * _617)))))) + (_590 * (((cb0_021z + cb0_026z) + _466) + (((cb0_020z * cb0_025z) * _480) * exp2(log2(exp2(((cb0_018z * cb0_023z) * _508) * log2(max(0.0f, ((((cb0_017z * cb0_022z) * _522) * _528) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019z * cb0_024z) * _494))))))) + ((((cb0_021z + cb0_031z) + _711) + (((cb0_020z * cb0_030z) * _720) * exp2(log2(exp2(((cb0_018z * cb0_028z) * _738) * log2(max(0.0f, ((((cb0_017z * cb0_027z) * _747) * _528) + _452)) * 5.55555534362793f)) * 0.18000000715255737f) * (1.0f / ((cb0_019z * cb0_029z) * _729))))) * _805);
1291+
1292+
UECbufferConfig cb_config = CreateCbufferConfig();
1293+
cb_config.ue_filmblackclip = cb0_040x;
1294+
cb_config.ue_filmtoe = cb0_039z;
1295+
cb_config.ue_filmshoulder = cb0_039w;
1296+
cb_config.ue_filmslope = cb0_039y;
1297+
cb_config.ue_filmwhiteclip = cb0_040y;
1298+
cb_config.ue_tonecurveammount = cb0_039x;
1299+
cb_config.ue_mappingpolynomial = float3(cb0_041x, cb0_041y, cb0_041z);
1300+
cb_config.ue_overlaycolor = float4(cb0_015x, cb0_015y, cb0_015z, cb0_015w);
1301+
cb_config.ue_bluecorrection = cb0_038z;
1302+
cb_config.ue_colorscale = float3(cb0_016x, cb0_016y, cb0_016z);
1303+
1304+
float4 output = ProcessLutbuilder(float3(_816, _818, _820), cb_config, u0[int3((uint)(SV_DispatchThreadID.x), (uint)(SV_DispatchThreadID.y), (uint)(SV_DispatchThreadID.z))], 3u);
1305+
u0[int3((uint)(SV_DispatchThreadID.x), (uint)(SV_DispatchThreadID.y), (uint)(SV_DispatchThreadID.z))] = output;
1306+
return;
1307+
12901308
float _856 = ((mad(0.061360642313957214f, _820, mad(-4.540197551250458e-09f, _818, (_816 * 0.9386394023895264f))) - _816) * cb0_038z) + _816;
12911309
float _857 = ((mad(0.169205904006958f, _820, mad(0.8307942152023315f, _818, (_816 * 6.775371730327606e-08f))) - _818) * cb0_038z) + _818;
12921310
float _858 = (mad(-2.3283064365386963e-10f, _818, (_816 * -9.313225746154785e-10f)) * cb0_038z) + _820;

0 commit comments

Comments
 (0)