blob: c8dcc12b187e26769f01f61fae97ab343346377e [file] [log] [blame]
dan sinclair8f1d2762024-07-31 02:35:40 +00001struct tint_GammaTransferParams {
2 float G;
3 float A;
4 float B;
5 float C;
6 float D;
7 float E;
8 float F;
9 uint padding;
10};
dan sinclair69313792024-06-13 20:35:21 +000011
dan sinclair8f1d2762024-07-31 02:35:40 +000012struct tint_ExternalTextureParams {
13 uint numPlanes;
14 uint doYuvToRgbConversionOnly;
15 float3x4 yuvToRgbConversionMatrix;
16 tint_GammaTransferParams gammaDecodeParams;
17 tint_GammaTransferParams gammaEncodeParams;
18 float3x3 gamutConversionMatrix;
19 float3x2 sampleTransform;
20 float3x2 loadTransform;
21 float2 samplePlane0RectMin;
22 float2 samplePlane0RectMax;
23 float2 samplePlane1RectMin;
24 float2 samplePlane1RectMax;
25 uint2 visibleSize;
26 float2 plane1CoordFactor;
27};
28
29struct VertexOutput {
30 float4 pos;
31 float4 prevent_dce;
32};
33
34struct vertex_main_outputs {
35 nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
36 float4 VertexOutput_pos : SV_Position;
37};
38
39
40RWByteAddressBuffer prevent_dce : register(u0);
41Texture2D<float4> arg_0_plane0 : register(t0, space1);
42Texture2D<float4> arg_0_plane1 : register(t1, space1);
43cbuffer cbuffer_arg_0_params : register(b2, space1) {
44 uint4 arg_0_params[17];
45};
46uint2 tint_v2f32_to_v2u32(float2 value) {
47 return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
48}
49
50float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
51 float3 v_1 = float3((params.G).xxx);
52 float3 v_2 = float3((params.D).xxx);
53 float3 v_3 = abs(v);
54 float3 v_4 = float3(sign(v));
55 return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
56}
57
58float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
59 float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
60 uint2 v_6 = tint_v2f32_to_v2u32(v_5);
61 float3 v_7 = (0.0f).xxx;
62 float v_8 = 0.0f;
63 if ((params.numPlanes == 1u)) {
64 int2 v_9 = int2(v_6);
65 float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
66 v_7 = v_10.xyz;
67 v_8 = v_10[3u];
68 } else {
69 int2 v_11 = int2(v_6);
70 float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
71 int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
72 v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
73 v_8 = 1.0f;
74 }
75 float3 v_14 = v_7;
76 float3 v_15 = (0.0f).xxx;
77 if ((params.doYuvToRgbConversionOnly == 0u)) {
78 tint_GammaTransferParams v_16 = params.gammaDecodeParams;
79 tint_GammaTransferParams v_17 = params.gammaEncodeParams;
80 v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
81 } else {
82 v_15 = v_14;
83 }
84 return float4(v_15, v_8);
85}
86
87float3x2 v_18(uint start_byte_offset) {
88 uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
89 float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
90 uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
91 float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
92 uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
93 return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
94}
95
96float3x3 v_24(uint start_byte_offset) {
97 float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
98 float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
99 return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
100}
101
102tint_GammaTransferParams v_27(uint start_byte_offset) {
103 float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
104 float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
105 float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
106 float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
107 float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
108 float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
109 float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
110 tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
111 return v_35;
112}
113
114float3x4 v_36(uint start_byte_offset) {
115 float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
116 float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
117 return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
118}
119
120tint_ExternalTextureParams v_39(uint start_byte_offset) {
121 uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
122 uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
123 float3x4 v_42 = v_36((16u + start_byte_offset));
124 tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
125 tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
126 float3x3 v_45 = v_24((128u + start_byte_offset));
127 float3x2 v_46 = v_18((176u + start_byte_offset));
128 float3x2 v_47 = v_18((200u + start_byte_offset));
129 uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
130 float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
131 uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
132 float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
133 uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
134 float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
135 uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
136 float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
137 uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
138 uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
139 uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
140 tint_GammaTransferParams v_59 = v_43;
141 tint_GammaTransferParams v_60 = v_44;
142 tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
143 return v_61;
144}
145
146float4 textureLoad_8acf41() {
dan sinclaird42e0e92024-09-19 21:49:20 +0000147 tint_ExternalTextureParams v_62 = v_39(0u);
148 tint_ExternalTextureParams v_63 = v_62;
149 float4 res = tint_TextureLoadExternal(arg_0_plane0, arg_0_plane1, v_63, uint2((int(1)).xx));
dan sinclair8f1d2762024-07-31 02:35:40 +0000150 return res;
151}
152
153void fragment_main() {
154 prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
155}
156
157[numthreads(1, 1, 1)]
158void compute_main() {
159 prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
160}
161
162VertexOutput vertex_main_inner() {
163 VertexOutput tint_symbol = (VertexOutput)0;
164 tint_symbol.pos = (0.0f).xxxx;
165 tint_symbol.prevent_dce = textureLoad_8acf41();
dan sinclaird42e0e92024-09-19 21:49:20 +0000166 VertexOutput v_64 = tint_symbol;
167 return v_64;
dan sinclair8f1d2762024-07-31 02:35:40 +0000168}
169
170vertex_main_outputs vertex_main() {
dan sinclaird42e0e92024-09-19 21:49:20 +0000171 VertexOutput v_65 = vertex_main_inner();
172 VertexOutput v_66 = v_65;
173 VertexOutput v_67 = v_65;
174 vertex_main_outputs v_68 = {v_67.prevent_dce, v_66.pos};
175 return v_68;
dan sinclair8f1d2762024-07-31 02:35:40 +0000176}
177