[UI] UI common shaders to XeSL
This commit is contained in:
parent
e07ed95f53
commit
9b1fdac986
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_UI_SHADERS_AMD_LANGUAGE_XESLI_
|
||||
#define XENIA_UI_SHADERS_AMD_LANGUAGE_XESLI_
|
||||
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define A_GLSL 1
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
#define A_HLSL 1
|
||||
#else
|
||||
#error Unknown shading language for AMD shaders.
|
||||
#endif
|
||||
|
||||
#endif // XENIA_UI_SHADERS_AMD_LANGUAGE_XESLI_
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeBilinearConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// int2 xe_bilinear_output_offset; // Offset: 0 Size: 8
|
||||
|
@ -18,9 +18,9 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_sampler_linear_clamp sampler NA NA S0 s0 1
|
||||
// xe_texture texture float3 2d T0 t0 1
|
||||
// XeBilinearConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_id_sampler_xe_bilinear_source sampler NA NA S0 s0 1
|
||||
// xesl_id_texture_xe_bilinear_source texture float4 2d T0 t0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -309,7 +309,7 @@ mul r0.zw, r0.zzzw, CB0[0][0].zzzw
|
|||
sample_l r1.xyz, r0.zwzz, T0[0].xyzw, S0[0], l(0.000000)
|
||||
bfi r0.y, l(4), l(4), r0.y, l(0)
|
||||
bfi r0.x, l(4), l(0), r0.x, r0.y
|
||||
add o0.xyz, r1.xyzx, icb[r0.x + 0].xxxx
|
||||
add_sat o0.xyz, r1.xyzx, icb[r0.x + 0].xxxx
|
||||
mov o0.w, l(1.000000)
|
||||
ret
|
||||
// Approximately 11 instruction slots used
|
||||
|
@ -317,21 +317,21 @@ ret
|
|||
|
||||
const BYTE guest_output_bilinear_dither_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 238, 251,
|
||||
7, 36, 12, 102, 119, 199,
|
||||
78, 59, 74, 185, 195, 243,
|
||||
55, 64, 1, 0, 0, 0,
|
||||
56, 21, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 33, 174,
|
||||
209, 229, 79, 78, 56, 218,
|
||||
208, 208, 178, 136, 129, 86,
|
||||
50, 203, 1, 0, 0, 0,
|
||||
92, 21, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
68, 2, 0, 0, 120, 2,
|
||||
0, 0, 172, 2, 0, 0,
|
||||
156, 20, 0, 0, 82, 68,
|
||||
69, 70, 8, 2, 0, 0,
|
||||
1, 0, 0, 0, 236, 0,
|
||||
104, 2, 0, 0, 156, 2,
|
||||
0, 0, 208, 2, 0, 0,
|
||||
192, 20, 0, 0, 82, 68,
|
||||
69, 70, 44, 2, 0, 0,
|
||||
1, 0, 0, 0, 16, 1,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
224, 1, 0, 0, 19, 19,
|
||||
4, 2, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -343,43 +343,49 @@ const BYTE guest_output_bilinear_dither_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 204, 0,
|
||||
0, 0, 0, 0, 215, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
5, 0, 0, 0, 4, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
0, 0, 12, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 215, 0, 0, 0,
|
||||
0, 0, 250, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
120, 101, 95, 115, 97, 109,
|
||||
112, 108, 101, 114, 95, 108,
|
||||
105, 110, 101, 97, 114, 95,
|
||||
99, 108, 97, 109, 112, 0,
|
||||
120, 101, 95, 116, 101, 120,
|
||||
116, 117, 114, 101, 0, 88,
|
||||
101, 66, 105, 108, 105, 110,
|
||||
101, 97, 114, 67, 111, 110,
|
||||
115, 116, 97, 110, 116, 115,
|
||||
0, 171, 215, 0, 0, 0,
|
||||
2, 0, 0, 0, 4, 1,
|
||||
120, 101, 115, 108, 95, 105,
|
||||
100, 95, 115, 97, 109, 112,
|
||||
108, 101, 114, 95, 120, 101,
|
||||
95, 98, 105, 108, 105, 110,
|
||||
101, 97, 114, 95, 115, 111,
|
||||
117, 114, 99, 101, 0, 120,
|
||||
101, 115, 108, 95, 105, 100,
|
||||
95, 116, 101, 120, 116, 117,
|
||||
114, 101, 95, 120, 101, 95,
|
||||
98, 105, 108, 105, 110, 101,
|
||||
97, 114, 95, 115, 111, 117,
|
||||
114, 99, 101, 0, 120, 101,
|
||||
115, 108, 95, 112, 117, 115,
|
||||
104, 95, 99, 111, 110, 115,
|
||||
116, 97, 110, 116, 115, 0,
|
||||
171, 171, 250, 0, 0, 0,
|
||||
2, 0, 0, 0, 40, 1,
|
||||
0, 0, 16, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 84, 1, 0, 0,
|
||||
0, 0, 120, 1, 0, 0,
|
||||
0, 0, 0, 0, 8, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
116, 1, 0, 0, 0, 0,
|
||||
152, 1, 0, 0, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
152, 1, 0, 0, 8, 0,
|
||||
188, 1, 0, 0, 8, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
2, 0, 0, 0, 188, 1,
|
||||
2, 0, 0, 0, 224, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
|
@ -394,7 +400,7 @@ const BYTE guest_output_bilinear_dither_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 110, 1, 0, 0,
|
||||
0, 0, 146, 1, 0, 0,
|
||||
120, 101, 95, 98, 105, 108,
|
||||
105, 110, 101, 97, 114, 95,
|
||||
111, 117, 116, 112, 117, 116,
|
||||
|
@ -406,7 +412,7 @@ const BYTE guest_output_bilinear_dither_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 180, 1, 0, 0,
|
||||
0, 0, 216, 1, 0, 0,
|
||||
77, 105, 99, 114, 111, 115,
|
||||
111, 102, 116, 32, 40, 82,
|
||||
41, 32, 72, 76, 83, 76,
|
||||
|
@ -1187,7 +1193,7 @@ const BYTE guest_output_bilinear_dither_ps[] =
|
|||
0, 0, 10, 0, 16, 0,
|
||||
0, 0, 0, 0, 26, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 8, 114, 32,
|
||||
0, 32, 0, 8, 114, 32,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 6, 144, 144, 0,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeBilinearConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// int2 xe_bilinear_output_offset; // Offset: 0 Size: 8
|
||||
|
@ -18,9 +18,9 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_sampler_linear_clamp sampler NA NA S0 s0 1
|
||||
// xe_texture texture float3 2d T0 t0 1
|
||||
// XeBilinearConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_id_sampler_xe_bilinear_source sampler NA NA S0 s0 1
|
||||
// xesl_id_texture_xe_bilinear_source texture float4 2d T0 t0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -59,21 +59,21 @@ ret
|
|||
|
||||
const BYTE guest_output_bilinear_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 195, 73,
|
||||
6, 106, 30, 227, 35, 134,
|
||||
146, 186, 4, 157, 98, 172,
|
||||
18, 157, 1, 0, 0, 0,
|
||||
204, 4, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 44, 10,
|
||||
188, 16, 29, 197, 185, 8,
|
||||
92, 81, 39, 219, 196, 94,
|
||||
69, 224, 1, 0, 0, 0,
|
||||
240, 4, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
68, 2, 0, 0, 120, 2,
|
||||
0, 0, 172, 2, 0, 0,
|
||||
48, 4, 0, 0, 82, 68,
|
||||
69, 70, 8, 2, 0, 0,
|
||||
1, 0, 0, 0, 236, 0,
|
||||
104, 2, 0, 0, 156, 2,
|
||||
0, 0, 208, 2, 0, 0,
|
||||
84, 4, 0, 0, 82, 68,
|
||||
69, 70, 44, 2, 0, 0,
|
||||
1, 0, 0, 0, 16, 1,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
224, 1, 0, 0, 19, 19,
|
||||
4, 2, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -85,43 +85,49 @@ const BYTE guest_output_bilinear_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 204, 0,
|
||||
0, 0, 0, 0, 215, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
5, 0, 0, 0, 4, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
0, 0, 12, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 215, 0, 0, 0,
|
||||
0, 0, 250, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
120, 101, 95, 115, 97, 109,
|
||||
112, 108, 101, 114, 95, 108,
|
||||
105, 110, 101, 97, 114, 95,
|
||||
99, 108, 97, 109, 112, 0,
|
||||
120, 101, 95, 116, 101, 120,
|
||||
116, 117, 114, 101, 0, 88,
|
||||
101, 66, 105, 108, 105, 110,
|
||||
101, 97, 114, 67, 111, 110,
|
||||
115, 116, 97, 110, 116, 115,
|
||||
0, 171, 215, 0, 0, 0,
|
||||
2, 0, 0, 0, 4, 1,
|
||||
120, 101, 115, 108, 95, 105,
|
||||
100, 95, 115, 97, 109, 112,
|
||||
108, 101, 114, 95, 120, 101,
|
||||
95, 98, 105, 108, 105, 110,
|
||||
101, 97, 114, 95, 115, 111,
|
||||
117, 114, 99, 101, 0, 120,
|
||||
101, 115, 108, 95, 105, 100,
|
||||
95, 116, 101, 120, 116, 117,
|
||||
114, 101, 95, 120, 101, 95,
|
||||
98, 105, 108, 105, 110, 101,
|
||||
97, 114, 95, 115, 111, 117,
|
||||
114, 99, 101, 0, 120, 101,
|
||||
115, 108, 95, 112, 117, 115,
|
||||
104, 95, 99, 111, 110, 115,
|
||||
116, 97, 110, 116, 115, 0,
|
||||
171, 171, 250, 0, 0, 0,
|
||||
2, 0, 0, 0, 40, 1,
|
||||
0, 0, 16, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 84, 1, 0, 0,
|
||||
0, 0, 120, 1, 0, 0,
|
||||
0, 0, 0, 0, 8, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
116, 1, 0, 0, 0, 0,
|
||||
152, 1, 0, 0, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
152, 1, 0, 0, 8, 0,
|
||||
188, 1, 0, 0, 8, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
2, 0, 0, 0, 188, 1,
|
||||
2, 0, 0, 0, 224, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
|
@ -136,7 +142,7 @@ const BYTE guest_output_bilinear_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 110, 1, 0, 0,
|
||||
0, 0, 146, 1, 0, 0,
|
||||
120, 101, 95, 98, 105, 108,
|
||||
105, 110, 101, 97, 114, 95,
|
||||
111, 117, 116, 112, 117, 116,
|
||||
|
@ -148,7 +154,7 @@ const BYTE guest_output_bilinear_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 180, 1, 0, 0,
|
||||
0, 0, 216, 1, 0, 0,
|
||||
77, 105, 99, 114, 111, 115,
|
||||
111, 102, 116, 32, 40, 82,
|
||||
41, 32, 72, 76, 83, 76,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeCasSharpenConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// int2 xe_cas_output_offset; // Offset: 0 Size: 8
|
||||
|
@ -18,8 +18,8 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_texture texture float3 2d T0 t0 1
|
||||
// XeCasSharpenConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_id_texture_xe_cas_source texture float4 2d T0 t0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -97,21 +97,21 @@ ret
|
|||
|
||||
const BYTE guest_output_ffx_cas_sharpen_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 2, 226,
|
||||
230, 16, 201, 205, 207, 54,
|
||||
189, 193, 184, 163, 140, 156,
|
||||
247, 96, 1, 0, 0, 0,
|
||||
40, 9, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 156, 173,
|
||||
216, 107, 79, 128, 79, 193,
|
||||
241, 218, 239, 80, 94, 13,
|
||||
168, 81, 1, 0, 0, 0,
|
||||
56, 9, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
4, 2, 0, 0, 56, 2,
|
||||
0, 0, 108, 2, 0, 0,
|
||||
140, 8, 0, 0, 82, 68,
|
||||
69, 70, 200, 1, 0, 0,
|
||||
1, 0, 0, 0, 176, 0,
|
||||
20, 2, 0, 0, 72, 2,
|
||||
0, 0, 124, 2, 0, 0,
|
||||
156, 8, 0, 0, 82, 68,
|
||||
69, 70, 216, 1, 0, 0,
|
||||
1, 0, 0, 0, 192, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
160, 1, 0, 0, 19, 19,
|
||||
176, 1, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -121,143 +121,177 @@ const BYTE guest_output_ffx_cas_sharpen_ps[] =
|
|||
0, 0, 5, 0, 0, 0,
|
||||
4, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 8, 0,
|
||||
1, 0, 0, 0, 12, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 151, 0,
|
||||
0, 0, 0, 0, 170, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 101, 95, 116,
|
||||
101, 120, 116, 117, 114, 101,
|
||||
0, 88, 101, 67, 97, 115,
|
||||
83, 104, 97, 114, 112, 101,
|
||||
110, 67, 111, 110, 115, 116,
|
||||
97, 110, 116, 115, 0, 171,
|
||||
171, 171, 151, 0, 0, 0,
|
||||
2, 0, 0, 0, 200, 0,
|
||||
0, 0, 16, 0, 0, 0,
|
||||
0, 0, 120, 101, 115, 108,
|
||||
95, 105, 100, 95, 116, 101,
|
||||
120, 116, 117, 114, 101, 95,
|
||||
120, 101, 95, 99, 97, 115,
|
||||
95, 115, 111, 117, 114, 99,
|
||||
101, 0, 120, 101, 115, 108,
|
||||
95, 112, 117, 115, 104, 95,
|
||||
99, 111, 110, 115, 116, 97,
|
||||
110, 116, 115, 0, 171, 171,
|
||||
170, 0, 0, 0, 2, 0,
|
||||
0, 0, 216, 0, 0, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 24, 1, 0, 0,
|
||||
0, 0, 0, 0, 8, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
52, 1, 0, 0, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
88, 1, 0, 0, 8, 0,
|
||||
0, 0, 4, 0, 0, 0,
|
||||
2, 0, 0, 0, 124, 1,
|
||||
40, 1, 0, 0, 0, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
2, 0, 0, 0, 68, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 120, 101,
|
||||
95, 99, 97, 115, 95, 111,
|
||||
117, 116, 112, 117, 116, 95,
|
||||
111, 102, 102, 115, 101, 116,
|
||||
0, 105, 110, 116, 50, 0,
|
||||
171, 171, 1, 0, 2, 0,
|
||||
1, 0, 2, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 45, 1,
|
||||
0, 0, 0, 0, 104, 1,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
4, 0, 0, 0, 2, 0,
|
||||
0, 0, 140, 1, 0, 0,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 120, 101, 95, 99,
|
||||
97, 115, 95, 115, 104, 97,
|
||||
114, 112, 110, 101, 115, 115,
|
||||
95, 112, 111, 115, 116, 95,
|
||||
115, 101, 116, 117, 112, 0,
|
||||
102, 108, 111, 97, 116, 0,
|
||||
171, 171, 0, 0, 3, 0,
|
||||
1, 0, 1, 0, 0, 0,
|
||||
97, 115, 95, 111, 117, 116,
|
||||
112, 117, 116, 95, 111, 102,
|
||||
102, 115, 101, 116, 0, 105,
|
||||
110, 116, 50, 0, 171, 171,
|
||||
1, 0, 2, 0, 1, 0,
|
||||
2, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 116, 1,
|
||||
0, 0, 77, 105, 99, 114,
|
||||
111, 115, 111, 102, 116, 32,
|
||||
40, 82, 41, 32, 72, 76,
|
||||
83, 76, 32, 83, 104, 97,
|
||||
100, 101, 114, 32, 67, 111,
|
||||
109, 112, 105, 108, 101, 114,
|
||||
32, 49, 48, 46, 49, 0,
|
||||
73, 83, 71, 78, 44, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
8, 0, 0, 0, 32, 0,
|
||||
0, 0, 61, 1, 0, 0,
|
||||
120, 101, 95, 99, 97, 115,
|
||||
95, 115, 104, 97, 114, 112,
|
||||
110, 101, 115, 115, 95, 112,
|
||||
111, 115, 116, 95, 115, 101,
|
||||
116, 117, 112, 0, 102, 108,
|
||||
111, 97, 116, 0, 171, 171,
|
||||
0, 0, 3, 0, 1, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 3, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
15, 3, 0, 0, 83, 86,
|
||||
95, 80, 111, 115, 105, 116,
|
||||
105, 111, 110, 0, 79, 83,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 132, 1, 0, 0,
|
||||
77, 105, 99, 114, 111, 115,
|
||||
111, 102, 116, 32, 40, 82,
|
||||
41, 32, 72, 76, 83, 76,
|
||||
32, 83, 104, 97, 100, 101,
|
||||
114, 32, 67, 111, 109, 112,
|
||||
105, 108, 101, 114, 32, 49,
|
||||
48, 46, 49, 0, 73, 83,
|
||||
71, 78, 44, 0, 0, 0,
|
||||
1, 0, 0, 0, 8, 0,
|
||||
0, 0, 32, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
0, 0, 0, 0, 15, 0,
|
||||
0, 0, 83, 86, 95, 84,
|
||||
97, 114, 103, 101, 116, 0,
|
||||
171, 171, 83, 72, 69, 88,
|
||||
24, 6, 0, 0, 81, 0,
|
||||
0, 0, 134, 1, 0, 0,
|
||||
106, 8, 0, 1, 89, 0,
|
||||
0, 7, 70, 142, 48, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 88, 24, 0, 7,
|
||||
70, 126, 48, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 85, 85,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
100, 32, 0, 4, 50, 16,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 101, 0,
|
||||
0, 3, 242, 32, 16, 0,
|
||||
0, 0, 0, 0, 104, 0,
|
||||
0, 2, 5, 0, 0, 0,
|
||||
27, 0, 0, 5, 50, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 16, 16, 0, 0, 0,
|
||||
0, 0, 30, 0, 0, 10,
|
||||
50, 0, 16, 0, 0, 0,
|
||||
0, 0, 70, 0, 16, 0,
|
||||
0, 0, 0, 0, 70, 128,
|
||||
48, 128, 65, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
30, 0, 0, 10, 242, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
70, 4, 16, 0, 0, 0,
|
||||
0, 0, 2, 64, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 54, 0,
|
||||
0, 5, 50, 0, 16, 0,
|
||||
2, 0, 0, 0, 230, 10,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
54, 0, 0, 8, 194, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
2, 64, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 45, 0, 0, 8,
|
||||
114, 0, 16, 0, 2, 0,
|
||||
0, 0, 70, 14, 16, 0,
|
||||
2, 0, 0, 0, 70, 126,
|
||||
0, 0, 0, 0, 15, 3,
|
||||
0, 0, 83, 86, 95, 80,
|
||||
111, 115, 105, 116, 105, 111,
|
||||
110, 0, 79, 83, 71, 78,
|
||||
44, 0, 0, 0, 1, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
32, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 54, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 0, 0,
|
||||
0, 0, 15, 0, 0, 0,
|
||||
83, 86, 95, 84, 97, 114,
|
||||
103, 101, 116, 0, 171, 171,
|
||||
83, 72, 69, 88, 24, 6,
|
||||
0, 0, 81, 0, 0, 0,
|
||||
134, 1, 0, 0, 106, 8,
|
||||
0, 1, 89, 0, 0, 7,
|
||||
70, 142, 48, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
88, 24, 0, 7, 70, 126,
|
||||
48, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 85, 85, 0, 0,
|
||||
0, 0, 0, 0, 100, 32,
|
||||
0, 4, 50, 16, 16, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 101, 0, 0, 3,
|
||||
242, 32, 16, 0, 0, 0,
|
||||
0, 0, 104, 0, 0, 2,
|
||||
5, 0, 0, 0, 27, 0,
|
||||
0, 5, 50, 0, 16, 0,
|
||||
0, 0, 0, 0, 70, 16,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
30, 0, 0, 10, 50, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 0, 16, 0, 0, 0,
|
||||
0, 0, 70, 128, 48, 128,
|
||||
65, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 30, 0,
|
||||
0, 10, 242, 0, 16, 0,
|
||||
1, 0, 0, 0, 70, 4,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
2, 64, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 54, 0, 0, 5,
|
||||
50, 0, 16, 0, 2, 0,
|
||||
0, 0, 230, 10, 16, 0,
|
||||
1, 0, 0, 0, 54, 0,
|
||||
0, 8, 194, 0, 16, 0,
|
||||
1, 0, 0, 0, 2, 64,
|
||||
2, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
45, 0, 0, 8, 114, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
70, 14, 16, 0, 2, 0,
|
||||
0, 0, 70, 126, 32, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 0, 0, 8,
|
||||
194, 0, 16, 0, 1, 0,
|
||||
0, 0, 2, 64, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 45, 0,
|
||||
0, 8, 114, 0, 16, 0,
|
||||
1, 0, 0, 0, 70, 14,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
70, 14, 16, 0, 1, 0,
|
||||
70, 126, 32, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
54, 0, 0, 8, 194, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
2, 64, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 45, 0, 0, 8,
|
||||
114, 0, 16, 0, 3, 0,
|
||||
0, 0, 70, 14, 16, 0,
|
||||
0, 0, 0, 0, 70, 126,
|
||||
32, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 30, 0,
|
||||
0, 10, 242, 0, 16, 0,
|
||||
0, 0, 0, 0, 70, 4,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
2, 64, 0, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 0, 0, 5,
|
||||
50, 0, 16, 0, 4, 0,
|
||||
0, 0, 230, 10, 16, 0,
|
||||
0, 0, 0, 0, 54, 0,
|
||||
0, 8, 194, 0, 16, 0,
|
||||
4, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
45, 0, 0, 8, 114, 0,
|
||||
16, 0, 4, 0, 0, 0,
|
||||
70, 14, 16, 0, 4, 0,
|
||||
0, 0, 70, 126, 32, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 0, 0, 8,
|
||||
|
@ -267,217 +301,185 @@ const BYTE guest_output_ffx_cas_sharpen_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 45, 0,
|
||||
0, 8, 114, 0, 16, 0,
|
||||
3, 0, 0, 0, 70, 14,
|
||||
0, 0, 0, 0, 70, 14,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 126, 32, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
30, 0, 0, 10, 242, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 4, 16, 0, 0, 0,
|
||||
0, 0, 2, 64, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 54, 0,
|
||||
0, 5, 50, 0, 16, 0,
|
||||
4, 0, 0, 0, 230, 10,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
54, 0, 0, 8, 194, 0,
|
||||
16, 0, 4, 0, 0, 0,
|
||||
2, 64, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 45, 0, 0, 8,
|
||||
114, 0, 16, 0, 4, 0,
|
||||
0, 0, 70, 14, 16, 0,
|
||||
4, 0, 0, 0, 70, 126,
|
||||
32, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 54, 0,
|
||||
0, 8, 194, 0, 16, 0,
|
||||
0, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
45, 0, 0, 8, 114, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 14, 16, 0, 0, 0,
|
||||
0, 0, 70, 126, 32, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 56, 0, 0, 7,
|
||||
114, 0, 16, 0, 2, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
2, 0, 0, 0, 70, 2,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
56, 0, 0, 7, 114, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
70, 2, 16, 0, 2, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
2, 0, 0, 0, 56, 0,
|
||||
0, 7, 114, 0, 16, 0,
|
||||
1, 0, 0, 0, 70, 2,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
1, 0, 0, 0, 56, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
0, 0, 0, 0, 26, 0,
|
||||
16, 0, 3, 0, 0, 0,
|
||||
26, 0, 16, 0, 3, 0,
|
||||
0, 0, 56, 0, 0, 7,
|
||||
114, 0, 16, 0, 4, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
4, 0, 0, 0, 70, 2,
|
||||
16, 0, 4, 0, 0, 0,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 26, 0, 16, 0,
|
||||
3, 0, 0, 0, 26, 0,
|
||||
16, 0, 3, 0, 0, 0,
|
||||
56, 0, 0, 7, 114, 0,
|
||||
16, 0, 4, 0, 0, 0,
|
||||
70, 2, 16, 0, 4, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
4, 0, 0, 0, 56, 0,
|
||||
0, 7, 114, 0, 16, 0,
|
||||
0, 0, 0, 0, 70, 2,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
0, 0, 0, 0, 51, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
1, 0, 0, 0, 58, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
26, 0, 16, 0, 4, 0,
|
||||
0, 0, 51, 0, 0, 7,
|
||||
130, 0, 16, 0, 1, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
1, 0, 0, 0, 26, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
51, 0, 0, 7, 130, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
26, 0, 16, 0, 0, 0,
|
||||
0, 0, 26, 0, 16, 0,
|
||||
2, 0, 0, 0, 51, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
1, 0, 0, 0, 58, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
58, 0, 16, 0, 2, 0,
|
||||
0, 0, 52, 0, 0, 7,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
0, 0, 0, 0, 26, 0,
|
||||
16, 0, 4, 0, 0, 0,
|
||||
52, 0, 0, 7, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 0, 0, 0,
|
||||
51, 0, 0, 7, 130, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
58, 0, 16, 0, 1, 0,
|
||||
0, 0, 26, 0, 16, 0,
|
||||
1, 0, 0, 0, 52, 0,
|
||||
1, 0, 0, 0, 51, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
2, 0, 0, 0, 26, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
26, 0, 16, 0, 2, 0,
|
||||
0, 0, 51, 0, 0, 7,
|
||||
130, 0, 16, 0, 1, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
1, 0, 0, 0, 58, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
52, 0, 0, 7, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 0, 0, 0,
|
||||
0, 0, 26, 0, 16, 0,
|
||||
4, 0, 0, 0, 52, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
0, 0, 0, 0, 58, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
26, 0, 16, 0, 1, 0,
|
||||
0, 0, 52, 0, 0, 7,
|
||||
130, 0, 16, 0, 2, 0,
|
||||
0, 0, 26, 0, 16, 0,
|
||||
0, 0, 0, 0, 26, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
52, 0, 0, 7, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
2, 0, 0, 0, 30, 0,
|
||||
0, 8, 130, 0, 16, 0,
|
||||
2, 0, 0, 0, 58, 0,
|
||||
16, 128, 65, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 64,
|
||||
0, 0, 187, 126, 240, 126,
|
||||
0, 0, 0, 8, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 128, 65, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 64, 0, 0, 0, 0,
|
||||
128, 63, 51, 0, 0, 7,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
0, 0, 0, 0, 58, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
56, 32, 0, 7, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 0, 2, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
0, 0, 0, 0, 85, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
0, 0, 0, 0, 58, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
1, 64, 0, 0, 1, 0,
|
||||
0, 0, 30, 0, 0, 7,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
0, 0, 0, 0, 1, 64,
|
||||
0, 0, 57, 70, 188, 31,
|
||||
56, 0, 0, 9, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 0, 0, 0,
|
||||
0, 0, 42, 128, 48, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
50, 0, 0, 9, 130, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
58, 0, 16, 0, 0, 0,
|
||||
0, 0, 1, 64, 0, 0,
|
||||
0, 0, 128, 64, 1, 64,
|
||||
0, 0, 0, 0, 128, 63,
|
||||
30, 0, 0, 8, 130, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
58, 0, 16, 128, 65, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 64, 0, 0, 187, 126,
|
||||
240, 126, 0, 0, 0, 8,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
1, 64, 0, 0, 255, 159,
|
||||
241, 126, 50, 0, 0, 10,
|
||||
130, 0, 16, 0, 1, 0,
|
||||
0, 0, 58, 0, 16, 128,
|
||||
65, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 64, 0, 0,
|
||||
0, 0, 128, 63, 51, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
0, 0, 0, 0, 58, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
65, 0, 0, 0, 2, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
1, 0, 0, 0, 1, 64,
|
||||
0, 0, 0, 0, 0, 64,
|
||||
56, 0, 0, 7, 130, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
58, 0, 16, 0, 1, 0,
|
||||
0, 0, 56, 32, 0, 7,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
2, 0, 0, 0, 58, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
85, 0, 0, 7, 130, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
58, 0, 16, 0, 0, 0,
|
||||
0, 0, 1, 64, 0, 0,
|
||||
1, 0, 0, 0, 30, 0,
|
||||
0, 7, 130, 0, 16, 0,
|
||||
0, 0, 0, 0, 58, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
1, 64, 0, 0, 57, 70,
|
||||
188, 31, 56, 0, 0, 9,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
0, 0, 0, 0, 42, 128,
|
||||
48, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 50, 0, 0, 9,
|
||||
130, 0, 16, 0, 1, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
0, 0, 0, 0, 1, 64,
|
||||
0, 0, 0, 0, 128, 64,
|
||||
1, 64, 0, 0, 0, 0,
|
||||
128, 63, 30, 0, 0, 8,
|
||||
130, 0, 16, 0, 2, 0,
|
||||
0, 0, 58, 0, 16, 128,
|
||||
65, 0, 0, 0, 1, 0,
|
||||
0, 0, 1, 64, 0, 0,
|
||||
255, 159, 241, 126, 50, 0,
|
||||
0, 10, 130, 0, 16, 0,
|
||||
1, 0, 0, 0, 58, 0,
|
||||
16, 128, 65, 0, 0, 0,
|
||||
2, 0, 0, 0, 58, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
1, 64, 0, 0, 0, 0,
|
||||
0, 64, 56, 0, 0, 7,
|
||||
130, 0, 16, 0, 1, 0,
|
||||
0, 0, 58, 0, 16, 0,
|
||||
1, 0, 0, 0, 58, 0,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
56, 0, 0, 7, 114, 0,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
246, 15, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
1, 0, 0, 0, 50, 0,
|
||||
0, 9, 114, 0, 16, 0,
|
||||
1, 0, 0, 0, 70, 2,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
246, 15, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
1, 0, 0, 0, 50, 0,
|
||||
0, 9, 114, 0, 16, 0,
|
||||
1, 0, 0, 0, 70, 2,
|
||||
16, 0, 4, 0, 0, 0,
|
||||
246, 15, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
1, 0, 0, 0, 50, 0,
|
||||
0, 9, 114, 0, 16, 0,
|
||||
0, 0, 0, 0, 70, 2,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
246, 15, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
1, 0, 0, 0, 50, 0,
|
||||
0, 9, 114, 0, 16, 0,
|
||||
0, 0, 0, 0, 70, 2,
|
||||
16, 0, 3, 0, 0, 0,
|
||||
70, 2, 16, 0, 3, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
0, 0, 0, 0, 56, 32,
|
||||
2, 0, 0, 0, 56, 0,
|
||||
0, 7, 114, 0, 16, 0,
|
||||
0, 0, 0, 0, 246, 15,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
70, 2, 16, 0, 0, 0,
|
||||
0, 0, 75, 0, 0, 5,
|
||||
114, 32, 16, 0, 0, 0,
|
||||
1, 0, 0, 0, 246, 15,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 50, 0, 0, 9,
|
||||
114, 0, 16, 0, 1, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
0, 0, 0, 0, 54, 0,
|
||||
0, 5, 130, 32, 16, 0,
|
||||
0, 0, 0, 0, 1, 64,
|
||||
0, 0, 0, 0, 128, 63,
|
||||
62, 0, 0, 1, 83, 84,
|
||||
65, 84, 148, 0, 0, 0,
|
||||
49, 0, 0, 0, 5, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
2, 0, 0, 0, 27, 0,
|
||||
0, 0, 6, 0, 0, 0,
|
||||
1, 0, 0, 0, 1, 0,
|
||||
2, 0, 0, 0, 246, 15,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 50, 0, 0, 9,
|
||||
114, 0, 16, 0, 1, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
4, 0, 0, 0, 246, 15,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 50, 0, 0, 9,
|
||||
114, 0, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
0, 0, 0, 0, 246, 15,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 50, 0, 0, 9,
|
||||
114, 0, 16, 0, 0, 0,
|
||||
0, 0, 70, 2, 16, 0,
|
||||
3, 0, 0, 0, 70, 2,
|
||||
16, 0, 3, 0, 0, 0,
|
||||
70, 2, 16, 0, 0, 0,
|
||||
0, 0, 56, 32, 0, 7,
|
||||
114, 0, 16, 0, 0, 0,
|
||||
0, 0, 246, 15, 16, 0,
|
||||
1, 0, 0, 0, 70, 2,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
75, 0, 0, 5, 114, 32,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 0, 0,
|
||||
0, 0, 54, 0, 0, 5,
|
||||
130, 32, 16, 0, 0, 0,
|
||||
0, 0, 1, 64, 0, 0,
|
||||
0, 0, 128, 63, 62, 0,
|
||||
0, 1, 83, 84, 65, 84,
|
||||
148, 0, 0, 0, 49, 0,
|
||||
0, 0, 5, 0, 0, 0,
|
||||
0, 0, 0, 0, 2, 0,
|
||||
0, 0, 27, 0, 0, 0,
|
||||
6, 0, 0, 0, 1, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 5, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
5, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 8, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
|
@ -487,5 +489,6 @@ const BYTE guest_output_ffx_cas_sharpen_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0
|
||||
};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeFsrEasuConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// float2 xe_fsr_easu_input_output_size_ratio;// Offset: 0 Size: 8
|
||||
|
@ -18,9 +18,9 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_sampler_linear_clamp sampler NA NA S0 s0 1
|
||||
// xe_texture texture float3 2d T0 t0 1
|
||||
// XeFsrEasuConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_id_sampler_xe_fsr_easu_source sampler NA NA S0 s0 1
|
||||
// xesl_id_texture_xe_fsr_easu_source texture float4 2d T0 t0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -45,9 +45,9 @@ dcl_resource_texture2d (float,float,float,float) T0[0:0], space=0
|
|||
dcl_input_ps_siv linear noperspective v0.xy, position
|
||||
dcl_output o0.xyzw
|
||||
dcl_temps 22
|
||||
mul r0.w, CB0[0][0].w, l(4.000000)
|
||||
mul r0.w, l(4.000000), CB0[0][0].w
|
||||
mad r0.xy, CB0[0][0].xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(-0.500000, -0.500000, 0.000000, 0.000000)
|
||||
mul r1.xyz, CB0[0][0].zwwz, l(1.000000, 1.000000, -1.000000, 0.000000)
|
||||
mul r1.xyz, l(1.000000, 1.000000, -1.000000, 0.000000), CB0[0][0].zwwz
|
||||
ftou r2.xy, v0.xyxx
|
||||
utof r2.xy, r2.xyxx
|
||||
mad r0.xy, r2.xyxx, CB0[0][0].xyxx, r0.xyxx
|
||||
|
@ -349,21 +349,21 @@ ret
|
|||
|
||||
const BYTE guest_output_ffx_fsr_easu_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 240, 45,
|
||||
22, 153, 167, 152, 10, 67,
|
||||
48, 29, 75, 57, 104, 138,
|
||||
197, 43, 1, 0, 0, 0,
|
||||
236, 40, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 244, 213,
|
||||
198, 18, 209, 124, 162, 152,
|
||||
164, 52, 152, 171, 230, 26,
|
||||
6, 168, 1, 0, 0, 0,
|
||||
16, 41, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
36, 2, 0, 0, 88, 2,
|
||||
0, 0, 140, 2, 0, 0,
|
||||
80, 40, 0, 0, 82, 68,
|
||||
69, 70, 232, 1, 0, 0,
|
||||
1, 0, 0, 0, 236, 0,
|
||||
72, 2, 0, 0, 124, 2,
|
||||
0, 0, 176, 2, 0, 0,
|
||||
116, 40, 0, 0, 82, 68,
|
||||
69, 70, 12, 2, 0, 0,
|
||||
1, 0, 0, 0, 16, 1,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
191, 1, 0, 0, 19, 19,
|
||||
227, 1, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -375,43 +375,49 @@ const BYTE guest_output_ffx_fsr_easu_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 204, 0,
|
||||
0, 0, 0, 0, 215, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
5, 0, 0, 0, 4, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
0, 0, 12, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 215, 0, 0, 0,
|
||||
0, 0, 250, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
120, 101, 95, 115, 97, 109,
|
||||
112, 108, 101, 114, 95, 108,
|
||||
105, 110, 101, 97, 114, 95,
|
||||
99, 108, 97, 109, 112, 0,
|
||||
120, 101, 95, 116, 101, 120,
|
||||
116, 117, 114, 101, 0, 88,
|
||||
101, 70, 115, 114, 69, 97,
|
||||
115, 117, 67, 111, 110, 115,
|
||||
120, 101, 115, 108, 95, 105,
|
||||
100, 95, 115, 97, 109, 112,
|
||||
108, 101, 114, 95, 120, 101,
|
||||
95, 102, 115, 114, 95, 101,
|
||||
97, 115, 117, 95, 115, 111,
|
||||
117, 114, 99, 101, 0, 120,
|
||||
101, 115, 108, 95, 105, 100,
|
||||
95, 116, 101, 120, 116, 117,
|
||||
114, 101, 95, 120, 101, 95,
|
||||
102, 115, 114, 95, 101, 97,
|
||||
115, 117, 95, 115, 111, 117,
|
||||
114, 99, 101, 0, 120, 101,
|
||||
115, 108, 95, 112, 117, 115,
|
||||
104, 95, 99, 111, 110, 115,
|
||||
116, 97, 110, 116, 115, 0,
|
||||
171, 171, 215, 0, 0, 0,
|
||||
2, 0, 0, 0, 4, 1,
|
||||
171, 171, 250, 0, 0, 0,
|
||||
2, 0, 0, 0, 40, 1,
|
||||
0, 0, 16, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 84, 1, 0, 0,
|
||||
0, 0, 120, 1, 0, 0,
|
||||
0, 0, 0, 0, 8, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
128, 1, 0, 0, 0, 0,
|
||||
164, 1, 0, 0, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
164, 1, 0, 0, 8, 0,
|
||||
200, 1, 0, 0, 8, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
2, 0, 0, 0, 128, 1,
|
||||
2, 0, 0, 0, 164, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
|
@ -428,7 +434,7 @@ const BYTE guest_output_ffx_fsr_easu_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 1, 0, 0,
|
||||
0, 0, 156, 1, 0, 0,
|
||||
120, 101, 95, 102, 115, 114,
|
||||
95, 101, 97, 115, 117, 95,
|
||||
105, 110, 112, 117, 116, 95,
|
||||
|
@ -482,11 +488,11 @@ const BYTE guest_output_ffx_fsr_easu_ps[] =
|
|||
104, 0, 0, 2, 22, 0,
|
||||
0, 0, 56, 0, 0, 9,
|
||||
130, 0, 16, 0, 0, 0,
|
||||
0, 0, 58, 128, 48, 0,
|
||||
0, 0, 1, 64, 0, 0,
|
||||
0, 0, 128, 64, 58, 128,
|
||||
48, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 64, 0, 0, 0, 0,
|
||||
128, 64, 50, 0, 0, 17,
|
||||
0, 0, 50, 0, 0, 17,
|
||||
50, 0, 16, 0, 0, 0,
|
||||
0, 0, 70, 128, 48, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
|
@ -499,12 +505,12 @@ const BYTE guest_output_ffx_fsr_easu_ps[] =
|
|||
0, 191, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 56, 0,
|
||||
0, 12, 114, 0, 16, 0,
|
||||
1, 0, 0, 0, 230, 139,
|
||||
48, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 2, 64, 0, 0,
|
||||
1, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 128, 63,
|
||||
0, 0, 128, 63, 0, 0,
|
||||
128, 63, 0, 0, 128, 191,
|
||||
128, 191, 0, 0, 0, 0,
|
||||
230, 139, 48, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 28, 0,
|
||||
0, 5, 50, 0, 16, 0,
|
||||
2, 0, 0, 0, 70, 16,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeFsrRcasConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// int2 xe_fsr_rcas_output_offset; // Offset: 0 Size: 8
|
||||
|
@ -18,8 +18,8 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_texture texture float3 2d T0 t0 1
|
||||
// XeFsrRcasConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_id_texture_xe_fsr_rcas_source texture float4 2d T0 t0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -347,7 +347,7 @@ mad r1.xyz, r0.zzzz, r5.xyzx, r1.xyzx
|
|||
add r1.xyz, r3.xyzx, r1.xyzx
|
||||
bfi r0.y, l(4), l(4), r0.y, l(0)
|
||||
bfi r0.x, l(4), l(0), r0.x, r0.y
|
||||
mad o0.xyz, r1.xyzx, r0.wwww, icb[r0.x + 0].xxxx
|
||||
mad_sat o0.xyz, r1.xyzx, r0.wwww, icb[r0.x + 0].xxxx
|
||||
mov o0.w, l(1.000000)
|
||||
ret
|
||||
// Approximately 51 instruction slots used
|
||||
|
@ -355,21 +355,21 @@ ret
|
|||
|
||||
const BYTE guest_output_ffx_fsr_rcas_dither_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 171, 87,
|
||||
217, 222, 87, 57, 211, 199,
|
||||
141, 108, 123, 139, 108, 18,
|
||||
226, 124, 1, 0, 0, 0,
|
||||
192, 25, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 243, 208,
|
||||
149, 237, 137, 44, 118, 107,
|
||||
240, 46, 48, 108, 54, 213,
|
||||
2, 137, 1, 0, 0, 0,
|
||||
216, 25, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
8, 2, 0, 0, 60, 2,
|
||||
0, 0, 112, 2, 0, 0,
|
||||
36, 25, 0, 0, 82, 68,
|
||||
69, 70, 204, 1, 0, 0,
|
||||
1, 0, 0, 0, 172, 0,
|
||||
32, 2, 0, 0, 84, 2,
|
||||
0, 0, 136, 2, 0, 0,
|
||||
60, 25, 0, 0, 82, 68,
|
||||
69, 70, 228, 1, 0, 0,
|
||||
1, 0, 0, 0, 196, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
164, 1, 0, 0, 19, 19,
|
||||
188, 1, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -379,35 +379,39 @@ const BYTE guest_output_ffx_fsr_rcas_dither_ps[] =
|
|||
0, 0, 5, 0, 0, 0,
|
||||
4, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 8, 0,
|
||||
1, 0, 0, 0, 12, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 151, 0,
|
||||
0, 0, 0, 0, 175, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 101, 95, 116,
|
||||
101, 120, 116, 117, 114, 101,
|
||||
0, 88, 101, 70, 115, 114,
|
||||
82, 99, 97, 115, 67, 111,
|
||||
110, 115, 116, 97, 110, 116,
|
||||
115, 0, 171, 171, 151, 0,
|
||||
0, 0, 120, 101, 115, 108,
|
||||
95, 105, 100, 95, 116, 101,
|
||||
120, 116, 117, 114, 101, 95,
|
||||
120, 101, 95, 102, 115, 114,
|
||||
95, 114, 99, 97, 115, 95,
|
||||
115, 111, 117, 114, 99, 101,
|
||||
0, 120, 101, 115, 108, 95,
|
||||
112, 117, 115, 104, 95, 99,
|
||||
111, 110, 115, 116, 97, 110,
|
||||
116, 115, 0, 171, 175, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
196, 0, 0, 0, 16, 0,
|
||||
220, 0, 0, 0, 16, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 20, 1,
|
||||
0, 0, 0, 0, 44, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
8, 0, 0, 0, 2, 0,
|
||||
0, 0, 52, 1, 0, 0,
|
||||
0, 0, 76, 1, 0, 0,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 88, 1, 0, 0,
|
||||
0, 0, 112, 1, 0, 0,
|
||||
8, 0, 0, 0, 4, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
128, 1, 0, 0, 0, 0,
|
||||
152, 1, 0, 0, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
|
@ -421,7 +425,7 @@ const BYTE guest_output_ffx_fsr_rcas_dither_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 46, 1,
|
||||
0, 0, 0, 0, 70, 1,
|
||||
0, 0, 120, 101, 95, 102,
|
||||
115, 114, 95, 114, 99, 97,
|
||||
115, 95, 115, 104, 97, 114,
|
||||
|
@ -434,7 +438,7 @@ const BYTE guest_output_ffx_fsr_rcas_dither_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 121, 1, 0, 0,
|
||||
0, 0, 145, 1, 0, 0,
|
||||
77, 105, 99, 114, 111, 115,
|
||||
111, 102, 116, 32, 40, 82,
|
||||
41, 32, 72, 76, 83, 76,
|
||||
|
@ -1417,7 +1421,7 @@ const BYTE guest_output_ffx_fsr_rcas_dither_ps[] =
|
|||
0, 0, 10, 0, 16, 0,
|
||||
0, 0, 0, 0, 26, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
50, 0, 0, 10, 114, 32,
|
||||
50, 32, 0, 10, 114, 32,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 2, 16, 0, 1, 0,
|
||||
0, 0, 246, 15, 16, 0,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeFsrRcasConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// int2 xe_fsr_rcas_output_offset; // Offset: 0 Size: 8
|
||||
|
@ -18,8 +18,8 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_texture texture float3 2d T0 t0 1
|
||||
// XeFsrRcasConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_id_texture_xe_fsr_rcas_source texture float4 2d T0 t0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -97,21 +97,21 @@ ret
|
|||
|
||||
const BYTE guest_output_ffx_fsr_rcas_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 185, 223,
|
||||
242, 110, 212, 184, 173, 198,
|
||||
168, 143, 147, 205, 178, 152,
|
||||
68, 191, 1, 0, 0, 0,
|
||||
84, 9, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 166, 229,
|
||||
254, 191, 58, 156, 80, 230,
|
||||
98, 56, 59, 50, 111, 142,
|
||||
200, 152, 1, 0, 0, 0,
|
||||
108, 9, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
8, 2, 0, 0, 60, 2,
|
||||
0, 0, 112, 2, 0, 0,
|
||||
184, 8, 0, 0, 82, 68,
|
||||
69, 70, 204, 1, 0, 0,
|
||||
1, 0, 0, 0, 172, 0,
|
||||
32, 2, 0, 0, 84, 2,
|
||||
0, 0, 136, 2, 0, 0,
|
||||
208, 8, 0, 0, 82, 68,
|
||||
69, 70, 228, 1, 0, 0,
|
||||
1, 0, 0, 0, 196, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
164, 1, 0, 0, 19, 19,
|
||||
188, 1, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -121,35 +121,39 @@ const BYTE guest_output_ffx_fsr_rcas_ps[] =
|
|||
0, 0, 5, 0, 0, 0,
|
||||
4, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 8, 0,
|
||||
1, 0, 0, 0, 12, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 151, 0,
|
||||
0, 0, 0, 0, 175, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 101, 95, 116,
|
||||
101, 120, 116, 117, 114, 101,
|
||||
0, 88, 101, 70, 115, 114,
|
||||
82, 99, 97, 115, 67, 111,
|
||||
110, 115, 116, 97, 110, 116,
|
||||
115, 0, 171, 171, 151, 0,
|
||||
0, 0, 120, 101, 115, 108,
|
||||
95, 105, 100, 95, 116, 101,
|
||||
120, 116, 117, 114, 101, 95,
|
||||
120, 101, 95, 102, 115, 114,
|
||||
95, 114, 99, 97, 115, 95,
|
||||
115, 111, 117, 114, 99, 101,
|
||||
0, 120, 101, 115, 108, 95,
|
||||
112, 117, 115, 104, 95, 99,
|
||||
111, 110, 115, 116, 97, 110,
|
||||
116, 115, 0, 171, 175, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
196, 0, 0, 0, 16, 0,
|
||||
220, 0, 0, 0, 16, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 20, 1,
|
||||
0, 0, 0, 0, 44, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
8, 0, 0, 0, 2, 0,
|
||||
0, 0, 52, 1, 0, 0,
|
||||
0, 0, 76, 1, 0, 0,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 88, 1, 0, 0,
|
||||
0, 0, 112, 1, 0, 0,
|
||||
8, 0, 0, 0, 4, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
128, 1, 0, 0, 0, 0,
|
||||
152, 1, 0, 0, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
|
@ -163,7 +167,7 @@ const BYTE guest_output_ffx_fsr_rcas_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 46, 1,
|
||||
0, 0, 0, 0, 70, 1,
|
||||
0, 0, 120, 101, 95, 102,
|
||||
115, 114, 95, 114, 99, 97,
|
||||
115, 95, 115, 104, 97, 114,
|
||||
|
@ -176,7 +180,7 @@ const BYTE guest_output_ffx_fsr_rcas_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 121, 1, 0, 0,
|
||||
0, 0, 145, 1, 0, 0,
|
||||
77, 105, 99, 114, 111, 115,
|
||||
111, 102, 116, 32, 40, 82,
|
||||
41, 32, 72, 76, 83, 76,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeTriangleStripRectConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// float2 xe_triangle_strip_rect_offset;// Offset: 0 Size: 8
|
||||
|
@ -18,7 +18,7 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// XeTriangleStripRectConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -53,21 +53,21 @@ ret
|
|||
|
||||
const BYTE guest_output_triangle_strip_rect_vs[] =
|
||||
{
|
||||
68, 88, 66, 67, 67, 209,
|
||||
250, 163, 3, 195, 64, 100,
|
||||
167, 54, 190, 31, 173, 113,
|
||||
120, 163, 1, 0, 0, 0,
|
||||
216, 3, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 149, 206,
|
||||
103, 147, 159, 147, 2, 90,
|
||||
215, 81, 85, 83, 111, 183,
|
||||
165, 48, 1, 0, 0, 0,
|
||||
204, 3, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
184, 1, 0, 0, 236, 1,
|
||||
0, 0, 32, 2, 0, 0,
|
||||
60, 3, 0, 0, 82, 68,
|
||||
69, 70, 124, 1, 0, 0,
|
||||
1, 0, 0, 0, 132, 0,
|
||||
172, 1, 0, 0, 224, 1,
|
||||
0, 0, 20, 2, 0, 0,
|
||||
48, 3, 0, 0, 82, 68,
|
||||
69, 70, 112, 1, 0, 0,
|
||||
1, 0, 0, 0, 120, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
254, 255, 0, 5, 0, 0,
|
||||
84, 1, 0, 0, 19, 19,
|
||||
72, 1, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -79,26 +79,24 @@ const BYTE guest_output_triangle_strip_rect_vs[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 88, 101,
|
||||
84, 114, 105, 97, 110, 103,
|
||||
108, 101, 83, 116, 114, 105,
|
||||
112, 82, 101, 99, 116, 67,
|
||||
111, 110, 115, 116, 97, 110,
|
||||
116, 115, 0, 171, 171, 171,
|
||||
0, 0, 0, 0, 120, 101,
|
||||
115, 108, 95, 112, 117, 115,
|
||||
104, 95, 99, 111, 110, 115,
|
||||
116, 97, 110, 116, 115, 0,
|
||||
100, 0, 0, 0, 2, 0,
|
||||
0, 0, 156, 0, 0, 0,
|
||||
0, 0, 144, 0, 0, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
236, 0, 0, 0, 0, 0,
|
||||
224, 0, 0, 0, 0, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
2, 0, 0, 0, 20, 1,
|
||||
2, 0, 0, 0, 8, 1,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 56, 1,
|
||||
0, 0, 0, 0, 44, 1,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
8, 0, 0, 0, 2, 0,
|
||||
0, 0, 20, 1, 0, 0,
|
||||
0, 0, 8, 1, 0, 0,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
|
@ -114,7 +112,7 @@ const BYTE guest_output_triangle_strip_rect_vs[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 10, 1, 0, 0,
|
||||
0, 0, 254, 0, 0, 0,
|
||||
120, 101, 95, 116, 114, 105,
|
||||
97, 110, 103, 108, 101, 95,
|
||||
115, 116, 114, 105, 112, 95,
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// xe_immediate_sampler sampler NA NA S0 s0 1
|
||||
// xe_immediate_texture texture float4 2d T0 t0 1
|
||||
// xesl_id_sampler_xe_immediate_texture sampler NA NA S0 s0 1
|
||||
// xesl_id_texture_xe_immediate_texture texture float4 2d T0 t0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -17,7 +17,7 @@
|
|||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// TEXCOORD 0 xy 0 NONE float xy
|
||||
// TEXCOORD 1 xyzw 1 NONE float xyzw
|
||||
// COLOR 0 xyzw 1 NONE float xyzw
|
||||
//
|
||||
//
|
||||
// Output signature:
|
||||
|
@ -42,21 +42,21 @@ ret
|
|||
|
||||
const BYTE immediate_ps[] =
|
||||
{
|
||||
68, 88, 66, 67, 218, 200,
|
||||
108, 196, 58, 28, 70, 226,
|
||||
98, 137, 89, 199, 218, 58,
|
||||
155, 172, 1, 0, 0, 0,
|
||||
0, 3, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 16, 180,
|
||||
111, 94, 249, 238, 63, 126,
|
||||
172, 161, 159, 61, 24, 3,
|
||||
19, 209, 1, 0, 0, 0,
|
||||
36, 3, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
28, 1, 0, 0, 104, 1,
|
||||
0, 0, 156, 1, 0, 0,
|
||||
100, 2, 0, 0, 82, 68,
|
||||
69, 70, 224, 0, 0, 0,
|
||||
60, 1, 0, 0, 140, 1,
|
||||
0, 0, 192, 1, 0, 0,
|
||||
136, 2, 0, 0, 82, 68,
|
||||
69, 70, 0, 1, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
255, 255, 0, 5, 0, 0,
|
||||
182, 0, 0, 0, 19, 19,
|
||||
214, 0, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -68,40 +68,46 @@ const BYTE immediate_ps[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 161, 0,
|
||||
0, 0, 0, 0, 177, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
5, 0, 0, 0, 4, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 12, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 101, 95, 105,
|
||||
109, 109, 101, 100, 105, 97,
|
||||
116, 101, 95, 115, 97, 109,
|
||||
112, 108, 101, 114, 0, 120,
|
||||
101, 95, 105, 109, 109, 101,
|
||||
100, 105, 97, 116, 101, 95,
|
||||
116, 101, 120, 116, 117, 114,
|
||||
101, 0, 77, 105, 99, 114,
|
||||
111, 115, 111, 102, 116, 32,
|
||||
40, 82, 41, 32, 72, 76,
|
||||
83, 76, 32, 83, 104, 97,
|
||||
100, 101, 114, 32, 67, 111,
|
||||
109, 112, 105, 108, 101, 114,
|
||||
32, 49, 48, 46, 49, 0,
|
||||
171, 171, 73, 83, 71, 78,
|
||||
68, 0, 0, 0, 2, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
56, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 101, 115, 108,
|
||||
95, 105, 100, 95, 115, 97,
|
||||
109, 112, 108, 101, 114, 95,
|
||||
120, 101, 95, 105, 109, 109,
|
||||
101, 100, 105, 97, 116, 101,
|
||||
95, 116, 101, 120, 116, 117,
|
||||
114, 101, 0, 120, 101, 115,
|
||||
108, 95, 105, 100, 95, 116,
|
||||
101, 120, 116, 117, 114, 101,
|
||||
95, 120, 101, 95, 105, 109,
|
||||
109, 101, 100, 105, 97, 116,
|
||||
101, 95, 116, 101, 120, 116,
|
||||
117, 114, 101, 0, 77, 105,
|
||||
99, 114, 111, 115, 111, 102,
|
||||
116, 32, 40, 82, 41, 32,
|
||||
72, 76, 83, 76, 32, 83,
|
||||
104, 97, 100, 101, 114, 32,
|
||||
67, 111, 109, 112, 105, 108,
|
||||
101, 114, 32, 49, 48, 46,
|
||||
49, 0, 171, 171, 73, 83,
|
||||
71, 78, 72, 0, 0, 0,
|
||||
2, 0, 0, 0, 8, 0,
|
||||
0, 0, 56, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 0, 0,
|
||||
0, 0, 3, 3, 0, 0,
|
||||
56, 0, 0, 0, 1, 0,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
0, 0, 0, 0, 3, 3,
|
||||
0, 0, 65, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 1, 0,
|
||||
0, 0, 15, 15, 0, 0,
|
||||
84, 69, 88, 67, 79, 79,
|
||||
82, 68, 0, 171, 171, 171,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
1, 0, 0, 0, 15, 15,
|
||||
0, 0, 84, 69, 88, 67,
|
||||
79, 79, 82, 68, 0, 67,
|
||||
79, 76, 79, 82, 0, 171,
|
||||
79, 83, 71, 78, 44, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
8, 0, 0, 0, 32, 0,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Buffer Definitions:
|
||||
//
|
||||
// cbuffer XeImmediateVertexConstants
|
||||
// cbuffer xesl_push_constants
|
||||
// {
|
||||
//
|
||||
// float2 xe_coordinate_space_size_inv;// Offset: 0 Size: 8
|
||||
|
@ -17,7 +17,7 @@
|
|||
//
|
||||
// Name Type Format Dim ID HLSL Bind Count
|
||||
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
|
||||
// XeImmediateVertexConstants cbuffer NA NA CB0 cb0 1
|
||||
// xesl_push_constants cbuffer NA NA CB0 cb0 1
|
||||
//
|
||||
//
|
||||
//
|
||||
|
@ -35,7 +35,7 @@
|
|||
// Name Index Mask Register SysValue Format Used
|
||||
// -------------------- ----- ------ -------- -------- ------- ------
|
||||
// TEXCOORD 0 xy 0 NONE float xy
|
||||
// TEXCOORD 1 xyzw 1 NONE float xyzw
|
||||
// COLOR 0 xyzw 1 NONE float xyzw
|
||||
// SV_Position 0 xyzw 2 POS float xyzw
|
||||
//
|
||||
vs_5_1
|
||||
|
@ -59,21 +59,21 @@ ret
|
|||
|
||||
const BYTE immediate_vs[] =
|
||||
{
|
||||
68, 88, 66, 67, 141, 232,
|
||||
76, 204, 152, 38, 127, 131,
|
||||
125, 87, 10, 113, 217, 159,
|
||||
27, 143, 1, 0, 0, 0,
|
||||
24, 4, 0, 0, 5, 0,
|
||||
68, 88, 66, 67, 15, 240,
|
||||
112, 179, 37, 234, 188, 136,
|
||||
206, 192, 216, 134, 250, 183,
|
||||
16, 201, 1, 0, 0, 0,
|
||||
20, 4, 0, 0, 5, 0,
|
||||
0, 0, 52, 0, 0, 0,
|
||||
108, 1, 0, 0, 220, 1,
|
||||
0, 0, 76, 2, 0, 0,
|
||||
124, 3, 0, 0, 82, 68,
|
||||
69, 70, 48, 1, 0, 0,
|
||||
1, 0, 0, 0, 128, 0,
|
||||
100, 1, 0, 0, 212, 1,
|
||||
0, 0, 72, 2, 0, 0,
|
||||
120, 3, 0, 0, 82, 68,
|
||||
69, 70, 40, 1, 0, 0,
|
||||
1, 0, 0, 0, 120, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
60, 0, 0, 0, 1, 5,
|
||||
254, 255, 0, 5, 0, 0,
|
||||
8, 1, 0, 0, 19, 19,
|
||||
0, 1, 0, 0, 19, 19,
|
||||
68, 37, 60, 0, 0, 0,
|
||||
24, 0, 0, 0, 40, 0,
|
||||
0, 0, 40, 0, 0, 0,
|
||||
|
@ -85,144 +85,143 @@ const BYTE immediate_vs[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 88, 101,
|
||||
73, 109, 109, 101, 100, 105,
|
||||
97, 116, 101, 86, 101, 114,
|
||||
116, 101, 120, 67, 111, 110,
|
||||
115, 116, 97, 110, 116, 115,
|
||||
0, 171, 100, 0, 0, 0,
|
||||
1, 0, 0, 0, 152, 0,
|
||||
0, 0, 16, 0, 0, 0,
|
||||
0, 0, 0, 0, 120, 101,
|
||||
115, 108, 95, 112, 117, 115,
|
||||
104, 95, 99, 111, 110, 115,
|
||||
116, 97, 110, 116, 115, 0,
|
||||
100, 0, 0, 0, 1, 0,
|
||||
0, 0, 144, 0, 0, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 192, 0, 0, 0,
|
||||
0, 0, 0, 0, 8, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
228, 0, 0, 0, 0, 0,
|
||||
184, 0, 0, 0, 0, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
2, 0, 0, 0, 220, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 0, 0,
|
||||
0, 0, 255, 255, 255, 255,
|
||||
0, 0, 0, 0, 255, 255,
|
||||
255, 255, 0, 0, 0, 0,
|
||||
120, 101, 95, 99, 111, 111,
|
||||
114, 100, 105, 110, 97, 116,
|
||||
101, 95, 115, 112, 97, 99,
|
||||
101, 95, 115, 105, 122, 101,
|
||||
95, 105, 110, 118, 0, 102,
|
||||
108, 111, 97, 116, 50, 0,
|
||||
1, 0, 3, 0, 1, 0,
|
||||
2, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 120, 101,
|
||||
95, 99, 111, 111, 114, 100,
|
||||
105, 110, 97, 116, 101, 95,
|
||||
115, 112, 97, 99, 101, 95,
|
||||
115, 105, 122, 101, 95, 105,
|
||||
110, 118, 0, 102, 108, 111,
|
||||
97, 116, 50, 0, 1, 0,
|
||||
3, 0, 1, 0, 2, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 221, 0, 0, 0,
|
||||
77, 105, 99, 114, 111, 115,
|
||||
111, 102, 116, 32, 40, 82,
|
||||
41, 32, 72, 76, 83, 76,
|
||||
32, 83, 104, 97, 100, 101,
|
||||
114, 32, 67, 111, 109, 112,
|
||||
105, 108, 101, 114, 32, 49,
|
||||
48, 46, 49, 0, 73, 83,
|
||||
71, 78, 104, 0, 0, 0,
|
||||
3, 0, 0, 0, 8, 0,
|
||||
0, 0, 80, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
0, 0, 0, 0, 3, 3,
|
||||
0, 0, 89, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
1, 0, 0, 0, 3, 3,
|
||||
0, 0, 98, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
2, 0, 0, 0, 15, 15,
|
||||
0, 0, 80, 79, 83, 73,
|
||||
84, 73, 79, 78, 0, 84,
|
||||
69, 88, 67, 79, 79, 82,
|
||||
68, 0, 67, 79, 76, 79,
|
||||
82, 0, 79, 83, 71, 78,
|
||||
213, 0, 0, 0, 77, 105,
|
||||
99, 114, 111, 115, 111, 102,
|
||||
116, 32, 40, 82, 41, 32,
|
||||
72, 76, 83, 76, 32, 83,
|
||||
104, 97, 100, 101, 114, 32,
|
||||
67, 111, 109, 112, 105, 108,
|
||||
101, 114, 32, 49, 48, 46,
|
||||
49, 0, 73, 83, 71, 78,
|
||||
104, 0, 0, 0, 3, 0,
|
||||
0, 0, 8, 0, 0, 0,
|
||||
80, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 0, 0,
|
||||
0, 0, 3, 12, 0, 0,
|
||||
80, 0, 0, 0, 1, 0,
|
||||
0, 0, 3, 3, 0, 0,
|
||||
89, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 1, 0,
|
||||
0, 0, 15, 0, 0, 0,
|
||||
89, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
0, 0, 3, 3, 0, 0,
|
||||
98, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 2, 0,
|
||||
0, 0, 15, 0, 0, 0,
|
||||
84, 69, 88, 67, 79, 79,
|
||||
82, 68, 0, 83, 86, 95,
|
||||
80, 111, 115, 105, 116, 105,
|
||||
111, 110, 0, 171, 171, 171,
|
||||
83, 72, 69, 88, 40, 1,
|
||||
0, 0, 81, 0, 1, 0,
|
||||
74, 0, 0, 0, 106, 8,
|
||||
0, 1, 89, 0, 0, 7,
|
||||
70, 142, 48, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
95, 0, 0, 3, 50, 16,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
95, 0, 0, 3, 50, 16,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
95, 0, 0, 3, 242, 16,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
101, 0, 0, 3, 50, 32,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
101, 0, 0, 3, 242, 32,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
103, 0, 0, 4, 242, 32,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
1, 0, 0, 0, 104, 0,
|
||||
0, 2, 1, 0, 0, 0,
|
||||
56, 0, 0, 9, 50, 0,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 16, 16, 0, 0, 0,
|
||||
0, 0, 70, 128, 48, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
50, 0, 0, 15, 50, 32,
|
||||
16, 0, 2, 0, 0, 0,
|
||||
70, 0, 16, 0, 0, 0,
|
||||
0, 0, 2, 64, 0, 0,
|
||||
0, 0, 0, 64, 0, 0,
|
||||
0, 192, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 128, 191,
|
||||
0, 0, 128, 63, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
54, 0, 0, 5, 242, 32,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
70, 30, 16, 0, 2, 0,
|
||||
0, 0, 54, 0, 0, 8,
|
||||
194, 32, 16, 0, 2, 0,
|
||||
0, 0, 2, 64, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 128, 63, 54, 0,
|
||||
0, 5, 50, 32, 16, 0,
|
||||
0, 0, 0, 0, 70, 16,
|
||||
16, 0, 1, 0, 0, 0,
|
||||
62, 0, 0, 1, 83, 84,
|
||||
65, 84, 148, 0, 0, 0,
|
||||
6, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
6, 0, 0, 0, 2, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 15, 15, 0, 0,
|
||||
80, 79, 83, 73, 84, 73,
|
||||
79, 78, 0, 84, 69, 88,
|
||||
67, 79, 79, 82, 68, 0,
|
||||
67, 79, 76, 79, 82, 0,
|
||||
79, 83, 71, 78, 108, 0,
|
||||
0, 0, 3, 0, 0, 0,
|
||||
8, 0, 0, 0, 80, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 3, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 12, 0, 0, 89, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 3, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
15, 0, 0, 0, 95, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 3, 0,
|
||||
0, 0, 2, 0, 0, 0,
|
||||
15, 0, 0, 0, 84, 69,
|
||||
88, 67, 79, 79, 82, 68,
|
||||
0, 67, 79, 76, 79, 82,
|
||||
0, 83, 86, 95, 80, 111,
|
||||
115, 105, 116, 105, 111, 110,
|
||||
0, 171, 83, 72, 69, 88,
|
||||
40, 1, 0, 0, 81, 0,
|
||||
1, 0, 74, 0, 0, 0,
|
||||
106, 8, 0, 1, 89, 0,
|
||||
0, 7, 70, 142, 48, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 95, 0, 0, 3,
|
||||
50, 16, 16, 0, 0, 0,
|
||||
0, 0, 95, 0, 0, 3,
|
||||
50, 16, 16, 0, 1, 0,
|
||||
0, 0, 95, 0, 0, 3,
|
||||
242, 16, 16, 0, 2, 0,
|
||||
0, 0, 101, 0, 0, 3,
|
||||
50, 32, 16, 0, 0, 0,
|
||||
0, 0, 101, 0, 0, 3,
|
||||
242, 32, 16, 0, 1, 0,
|
||||
0, 0, 103, 0, 0, 4,
|
||||
242, 32, 16, 0, 2, 0,
|
||||
0, 0, 1, 0, 0, 0,
|
||||
104, 0, 0, 2, 1, 0,
|
||||
0, 0, 56, 0, 0, 9,
|
||||
50, 0, 16, 0, 0, 0,
|
||||
0, 0, 70, 16, 16, 0,
|
||||
0, 0, 0, 0, 70, 128,
|
||||
48, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 50, 0, 0, 15,
|
||||
50, 32, 16, 0, 2, 0,
|
||||
0, 0, 70, 0, 16, 0,
|
||||
0, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 0, 64,
|
||||
0, 0, 0, 192, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
2, 64, 0, 0, 0, 0,
|
||||
128, 191, 0, 0, 128, 63,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 0, 0, 5,
|
||||
242, 32, 16, 0, 1, 0,
|
||||
0, 0, 70, 30, 16, 0,
|
||||
2, 0, 0, 0, 54, 0,
|
||||
0, 8, 194, 32, 16, 0,
|
||||
2, 0, 0, 0, 2, 64,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 63,
|
||||
54, 0, 0, 5, 50, 32,
|
||||
16, 0, 0, 0, 0, 0,
|
||||
70, 16, 16, 0, 1, 0,
|
||||
0, 0, 62, 0, 0, 1,
|
||||
83, 84, 65, 84, 148, 0,
|
||||
0, 0, 6, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 6, 0, 0, 0,
|
||||
2, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
3, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
|
@ -233,5 +232,5 @@ const BYTE immediate_vs[] =
|
|||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -8,15 +8,15 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %5663 "main" %gl_FragCoord %5120
|
||||
OpEntryPoint Fragment %5663 "main" %gl_FragCoord %5312
|
||||
OpExecutionMode %5663 OriginUpperLeft
|
||||
OpDecorate %gl_FragCoord BuiltIn FragCoord
|
||||
OpMemberDecorate %_struct_1028 0 Offset 16
|
||||
OpMemberDecorate %_struct_1028 1 Offset 24
|
||||
OpDecorate %_struct_1028 Block
|
||||
OpDecorate %5120 Location 0
|
||||
OpDecorate %3150 DescriptorSet 0
|
||||
OpDecorate %3150 Binding 0
|
||||
OpDecorate %5312 Location 0
|
||||
OpDecorate %4448 DescriptorSet 0
|
||||
OpDecorate %4448 Binding 0
|
||||
%void = OpTypeVoid
|
||||
%1282 = OpTypeFunction %void
|
||||
%uint = OpTypeInt 32 0
|
||||
|
@ -30,15 +30,15 @@
|
|||
%v2int = OpTypeVector %int 2
|
||||
%_struct_1028 = OpTypeStruct %v2int %v2float
|
||||
%_ptr_PushConstant__struct_1028 = OpTypePointer PushConstant %_struct_1028
|
||||
%4930 = OpVariable %_ptr_PushConstant__struct_1028 PushConstant
|
||||
%3052 = OpVariable %_ptr_PushConstant__struct_1028 PushConstant
|
||||
%int_0 = OpConstant %int 0
|
||||
%_ptr_PushConstant_v2int = OpTypePointer PushConstant %v2int
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5120 = OpVariable %_ptr_Output_v4float Output
|
||||
%5312 = OpVariable %_ptr_Output_v4float Output
|
||||
%150 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%510 = OpTypeSampledImage %150
|
||||
%_ptr_UniformConstant_510 = OpTypePointer UniformConstant %510
|
||||
%3150 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%4448 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%int_1 = OpConstant %int 1
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
|
@ -55,27 +55,27 @@
|
|||
%18571 = OpLoad %v4float %gl_FragCoord
|
||||
%14008 = OpVectorShuffle %v2float %18571 %18571 0 1
|
||||
%17656 = OpConvertFToS %v2int %14008
|
||||
%19279 = OpAccessChain %_ptr_PushConstant_v2int %4930 %int_0
|
||||
%19279 = OpAccessChain %_ptr_PushConstant_v2int %3052 %int_0
|
||||
%22822 = OpLoad %v2int %19279
|
||||
%23236 = OpISub %v2int %17656 %22822
|
||||
%11599 = OpBitcast %v2uint %23236
|
||||
%6899 = OpLoad %510 %3150
|
||||
%6899 = OpLoad %510 %4448
|
||||
%10352 = OpConvertUToF %v2float %11599
|
||||
%18354 = OpFAdd %v2float %10352 %1566
|
||||
%11863 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_1
|
||||
%11863 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_1
|
||||
%20800 = OpLoad %v2float %11863
|
||||
%24032 = OpFMul %v2float %18354 %20800
|
||||
%11997 = OpImageSampleExplicitLod %v4float %6899 %24032 Lod %float_0
|
||||
%18957 = OpAccessChain %_ptr_Output_float %5120 %uint_0
|
||||
%18957 = OpAccessChain %_ptr_Output_float %5312 %uint_0
|
||||
%17344 = OpCompositeExtract %float %11997 0
|
||||
OpStore %18957 %17344
|
||||
%16378 = OpAccessChain %_ptr_Output_float %5120 %uint_1
|
||||
%16378 = OpAccessChain %_ptr_Output_float %5312 %uint_1
|
||||
%15746 = OpCompositeExtract %float %11997 1
|
||||
OpStore %16378 %15746
|
||||
%16379 = OpAccessChain %_ptr_Output_float %5120 %uint_2
|
||||
%16379 = OpAccessChain %_ptr_Output_float %5312 %uint_2
|
||||
%15747 = OpCompositeExtract %float %11997 2
|
||||
OpStore %16379 %15747
|
||||
%23294 = OpAccessChain %_ptr_Output_float %5120 %uint_3
|
||||
%23294 = OpAccessChain %_ptr_Output_float %5312 %uint_3
|
||||
OpStore %23294 %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -85,12 +85,12 @@ const uint32_t guest_output_bilinear_ps[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x00006176, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0007000F, 0x00000004,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C93, 0x00001400, 0x00030010,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C93, 0x000014C0, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00040047, 0x00000C93, 0x0000000B, 0x0000000F,
|
||||
0x00050048, 0x00000404, 0x00000000, 0x00000023, 0x00000010, 0x00050048,
|
||||
0x00000404, 0x00000001, 0x00000023, 0x00000018, 0x00030047, 0x00000404,
|
||||
0x00000002, 0x00040047, 0x00001400, 0x0000001E, 0x00000000, 0x00040047,
|
||||
0x00000C4E, 0x00000022, 0x00000000, 0x00040047, 0x00000C4E, 0x00000021,
|
||||
0x00000002, 0x00040047, 0x000014C0, 0x0000001E, 0x00000000, 0x00040047,
|
||||
0x00001160, 0x00000022, 0x00000000, 0x00040047, 0x00001160, 0x00000021,
|
||||
0x00000000, 0x00020013, 0x00000008, 0x00030021, 0x00000502, 0x00000008,
|
||||
0x00040015, 0x0000000B, 0x00000020, 0x00000000, 0x00040017, 0x00000011,
|
||||
0x0000000B, 0x00000002, 0x00030016, 0x0000000D, 0x00000020, 0x00040017,
|
||||
|
@ -99,13 +99,13 @@ const uint32_t guest_output_bilinear_ps[] = {
|
|||
0x00000013, 0x0000000D, 0x00000002, 0x00040015, 0x0000000C, 0x00000020,
|
||||
0x00000001, 0x00040017, 0x00000012, 0x0000000C, 0x00000002, 0x0004001E,
|
||||
0x00000404, 0x00000012, 0x00000013, 0x00040020, 0x00000681, 0x00000009,
|
||||
0x00000404, 0x0004003B, 0x00000681, 0x00001342, 0x00000009, 0x0004002B,
|
||||
0x00000404, 0x0004003B, 0x00000681, 0x00000BEC, 0x00000009, 0x0004002B,
|
||||
0x0000000C, 0x00000A0B, 0x00000000, 0x00040020, 0x0000028F, 0x00000009,
|
||||
0x00000012, 0x00040020, 0x0000029B, 0x00000003, 0x0000001D, 0x0004003B,
|
||||
0x0000029B, 0x00001400, 0x00000003, 0x00090019, 0x00000096, 0x0000000D,
|
||||
0x0000029B, 0x000014C0, 0x00000003, 0x00090019, 0x00000096, 0x0000000D,
|
||||
0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
|
||||
0x0003001B, 0x000001FE, 0x00000096, 0x00040020, 0x0000047B, 0x00000000,
|
||||
0x000001FE, 0x0004003B, 0x0000047B, 0x00000C4E, 0x00000000, 0x0004002B,
|
||||
0x000001FE, 0x0004003B, 0x0000047B, 0x00001160, 0x00000000, 0x0004002B,
|
||||
0x0000000D, 0x000000FC, 0x3F000000, 0x0004002B, 0x0000000C, 0x00000A0E,
|
||||
0x00000001, 0x00040020, 0x00000290, 0x00000009, 0x00000013, 0x0004002B,
|
||||
0x0000000D, 0x00000A0C, 0x00000000, 0x0004002B, 0x0000000B, 0x00000A0A,
|
||||
|
@ -117,21 +117,21 @@ const uint32_t guest_output_bilinear_ps[] = {
|
|||
0x00000502, 0x000200F8, 0x00006175, 0x0004003D, 0x0000001D, 0x0000488B,
|
||||
0x00000C93, 0x0007004F, 0x00000013, 0x000036B8, 0x0000488B, 0x0000488B,
|
||||
0x00000000, 0x00000001, 0x0004006E, 0x00000012, 0x000044F8, 0x000036B8,
|
||||
0x00050041, 0x0000028F, 0x00004B4F, 0x00001342, 0x00000A0B, 0x0004003D,
|
||||
0x00050041, 0x0000028F, 0x00004B4F, 0x00000BEC, 0x00000A0B, 0x0004003D,
|
||||
0x00000012, 0x00005926, 0x00004B4F, 0x00050082, 0x00000012, 0x00005AC4,
|
||||
0x000044F8, 0x00005926, 0x0004007C, 0x00000011, 0x00002D4F, 0x00005AC4,
|
||||
0x0004003D, 0x000001FE, 0x00001AF3, 0x00000C4E, 0x00040070, 0x00000013,
|
||||
0x0004003D, 0x000001FE, 0x00001AF3, 0x00001160, 0x00040070, 0x00000013,
|
||||
0x00002870, 0x00002D4F, 0x00050081, 0x00000013, 0x000047B2, 0x00002870,
|
||||
0x0000061E, 0x00050041, 0x00000290, 0x00002E57, 0x00001342, 0x00000A0E,
|
||||
0x0000061E, 0x00050041, 0x00000290, 0x00002E57, 0x00000BEC, 0x00000A0E,
|
||||
0x0004003D, 0x00000013, 0x00005140, 0x00002E57, 0x00050085, 0x00000013,
|
||||
0x00005DE0, 0x000047B2, 0x00005140, 0x00070058, 0x0000001D, 0x00002EDD,
|
||||
0x00001AF3, 0x00005DE0, 0x00000002, 0x00000A0C, 0x00050041, 0x0000028A,
|
||||
0x00004A0D, 0x00001400, 0x00000A0A, 0x00050051, 0x0000000D, 0x000043C0,
|
||||
0x00004A0D, 0x000014C0, 0x00000A0A, 0x00050051, 0x0000000D, 0x000043C0,
|
||||
0x00002EDD, 0x00000000, 0x0003003E, 0x00004A0D, 0x000043C0, 0x00050041,
|
||||
0x0000028A, 0x00003FFA, 0x00001400, 0x00000A0D, 0x00050051, 0x0000000D,
|
||||
0x0000028A, 0x00003FFA, 0x000014C0, 0x00000A0D, 0x00050051, 0x0000000D,
|
||||
0x00003D82, 0x00002EDD, 0x00000001, 0x0003003E, 0x00003FFA, 0x00003D82,
|
||||
0x00050041, 0x0000028A, 0x00003FFB, 0x00001400, 0x00000A10, 0x00050051,
|
||||
0x00050041, 0x0000028A, 0x00003FFB, 0x000014C0, 0x00000A10, 0x00050051,
|
||||
0x0000000D, 0x00003D83, 0x00002EDD, 0x00000002, 0x0003003E, 0x00003FFB,
|
||||
0x00003D83, 0x00050041, 0x0000028A, 0x00005AFE, 0x00001400, 0x00000A13,
|
||||
0x00003D83, 0x00050041, 0x0000028A, 0x00005AFE, 0x000014C0, 0x00000A13,
|
||||
0x0003003E, 0x00005AFE, 0x0000008A, 0x000100FD, 0x00010038,
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -8,16 +8,16 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %5663 "main" %gl_FragCoord %5120
|
||||
OpEntryPoint Fragment %5663 "main" %gl_FragCoord %5334
|
||||
OpExecutionMode %5663 OriginUpperLeft
|
||||
OpDecorate %3150 DescriptorSet 0
|
||||
OpDecorate %3150 Binding 0
|
||||
OpDecorate %gl_FragCoord BuiltIn FragCoord
|
||||
OpMemberDecorate %_struct_1048 0 Offset 16
|
||||
OpMemberDecorate %_struct_1048 1 Offset 24
|
||||
OpMemberDecorate %_struct_1048 2 Offset 32
|
||||
OpDecorate %_struct_1048 Block
|
||||
OpDecorate %5120 Location 0
|
||||
OpDecorate %5334 Location 0
|
||||
OpDecorate %5163 DescriptorSet 0
|
||||
OpDecorate %5163 Binding 0
|
||||
%void = OpTypeVoid
|
||||
%1282 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
|
@ -26,9 +26,29 @@
|
|||
%v2int = OpTypeVector %int 2
|
||||
%v3float = OpTypeVector %float 3
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
|
||||
%v2float = OpTypeVector %float 2
|
||||
%_struct_1048 = OpTypeStruct %v2int %v2float %float
|
||||
%_ptr_PushConstant__struct_1048 = OpTypePointer PushConstant %_struct_1048
|
||||
%3052 = OpVariable %_ptr_PushConstant__struct_1048 PushConstant
|
||||
%int_0 = OpConstant %int 0
|
||||
%_ptr_PushConstant_v2int = OpTypePointer PushConstant %v2int
|
||||
%int_1 = OpConstant %int 1
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%int_2 = OpConstant %int 2
|
||||
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_1 = OpConstant %float 1
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5334 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%float_1 = OpConstant %float 1
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%uint_532432441 = OpConstant %uint 532432441
|
||||
%uint_2129690299 = OpConstant %uint 2129690299
|
||||
%uint_2129764351 = OpConstant %uint 2129764351
|
||||
|
@ -36,57 +56,37 @@
|
|||
%150 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%510 = OpTypeSampledImage %150
|
||||
%_ptr_UniformConstant_510 = OpTypePointer UniformConstant %510
|
||||
%3150 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%int_0 = OpConstant %int 0
|
||||
%v4float = OpTypeVector %float 4
|
||||
%5163 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%int_n1 = OpConstant %int -1
|
||||
%1803 = OpConstantComposite %v2int %int_0 %int_n1
|
||||
%int_1 = OpConstant %int 1
|
||||
%1812 = OpConstantComposite %v2int %int_1 %int_n1
|
||||
%1806 = OpConstantComposite %v2int %int_n1 %int_0
|
||||
%1824 = OpConstantComposite %v2int %int_1 %int_0
|
||||
%1818 = OpConstantComposite %v2int %int_n1 %int_1
|
||||
%1827 = OpConstantComposite %v2int %int_0 %int_1
|
||||
%1836 = OpConstantComposite %v2int %int_1 %int_1
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%v2float = OpTypeVector %float 2
|
||||
%int_2 = OpConstant %int 2
|
||||
%1833 = OpConstantComposite %v2int %int_2 %int_0
|
||||
%1839 = OpConstantComposite %v2int %int_0 %int_2
|
||||
%1845 = OpConstantComposite %v2int %int_2 %int_1
|
||||
%1848 = OpConstantComposite %v2int %int_1 %int_2
|
||||
%float_0_03125 = OpConstant %float 0.03125
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
|
||||
%_struct_1048 = OpTypeStruct %v2int %v2float %float
|
||||
%_ptr_PushConstant__struct_1048 = OpTypePointer PushConstant %_struct_1048
|
||||
%4930 = OpVariable %_ptr_PushConstant__struct_1048 PushConstant
|
||||
%_ptr_PushConstant_v2int = OpTypePointer PushConstant %v2int
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5120 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%1566 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
||||
%5663 = OpFunction %void None %1282
|
||||
%24949 = OpLabel
|
||||
%18571 = OpLoad %v4float %gl_FragCoord
|
||||
%14008 = OpVectorShuffle %v2float %18571 %18571 0 1
|
||||
%17656 = OpConvertFToS %v2int %14008
|
||||
%19279 = OpAccessChain %_ptr_PushConstant_v2int %4930 %int_0
|
||||
%19279 = OpAccessChain %_ptr_PushConstant_v2int %3052 %int_0
|
||||
%22822 = OpLoad %v2int %19279
|
||||
%23312 = OpISub %v2int %17656 %22822
|
||||
%9938 = OpBitcast %v2uint %23312
|
||||
%20997 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_1
|
||||
%20997 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_1
|
||||
%22579 = OpLoad %v2float %20997
|
||||
%13397 = OpBitcast %v2uint %22579
|
||||
%12762 = OpVectorTimesScalar %v2float %22579 %float_0_5
|
||||
%24291 = OpFSub %v2float %12762 %1566
|
||||
%20131 = OpBitcast %v2uint %24291
|
||||
%18575 = OpAccessChain %_ptr_PushConstant_float %4930 %int_2
|
||||
%18575 = OpAccessChain %_ptr_PushConstant_float %3052 %int_2
|
||||
%22009 = OpLoad %float %18575
|
||||
%18454 = OpBitcast %uint %22009
|
||||
%12011 = OpConvertUToF %v2float %9938
|
||||
|
@ -98,7 +98,7 @@
|
|||
%16290 = OpFSub %v2float %24878 %12719
|
||||
%17064 = OpConvertFToS %v2int %12719
|
||||
%20663 = OpIAdd %v2int %17064 %1803
|
||||
%16731 = OpLoad %510 %3150
|
||||
%16731 = OpLoad %510 %5163
|
||||
%23618 = OpImage %150 %16731
|
||||
%16595 = OpImageFetch %v4float %23618 %20663 Lod %int_0
|
||||
%15454 = OpIAdd %v2int %17064 %1806
|
||||
|
@ -415,13 +415,13 @@
|
|||
%15975 = OpFAdd %float %18176 %9469
|
||||
%6921 = OpFMul %float %15975 %9442
|
||||
%24941 = OpExtInst %float %1 FClamp %6921 %float_0 %float_1
|
||||
%20577 = OpAccessChain %_ptr_Output_float %5120 %uint_0
|
||||
%20577 = OpAccessChain %_ptr_Output_float %5334 %uint_0
|
||||
OpStore %20577 %15218
|
||||
%19732 = OpAccessChain %_ptr_Output_float %5120 %uint_1
|
||||
%19732 = OpAccessChain %_ptr_Output_float %5334 %uint_1
|
||||
OpStore %19732 %15219
|
||||
%19656 = OpAccessChain %_ptr_Output_float %5120 %uint_2
|
||||
%19656 = OpAccessChain %_ptr_Output_float %5334 %uint_2
|
||||
OpStore %19656 %24941
|
||||
%10445 = OpLoad %v4float %5120
|
||||
%10445 = OpLoad %v4float %5334
|
||||
%9111 = OpVectorShuffle %v3float %10445 %10445 0 1 2
|
||||
%17911 = OpExtInst %v3float %1 Sqrt %9111
|
||||
%7131 = OpCompositeExtract %float %17911 0
|
||||
|
@ -430,7 +430,7 @@
|
|||
OpStore %19732 %22435
|
||||
%22131 = OpCompositeExtract %float %17911 2
|
||||
OpStore %19656 %22131
|
||||
%23294 = OpAccessChain %_ptr_Output_float %5120 %uint_3
|
||||
%23294 = OpAccessChain %_ptr_Output_float %5334 %uint_3
|
||||
OpStore %23294 %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -440,63 +440,63 @@ const uint32_t guest_output_ffx_cas_resample_ps[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x0000627D, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0007000F, 0x00000004,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C93, 0x00001400, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00040047, 0x00000C4E, 0x00000022, 0x00000000,
|
||||
0x00040047, 0x00000C4E, 0x00000021, 0x00000000, 0x00040047, 0x00000C93,
|
||||
0x0000000B, 0x0000000F, 0x00050048, 0x00000418, 0x00000000, 0x00000023,
|
||||
0x00000010, 0x00050048, 0x00000418, 0x00000001, 0x00000023, 0x00000018,
|
||||
0x00050048, 0x00000418, 0x00000002, 0x00000023, 0x00000020, 0x00030047,
|
||||
0x00000418, 0x00000002, 0x00040047, 0x00001400, 0x0000001E, 0x00000000,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C93, 0x000014D6, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00040047, 0x00000C93, 0x0000000B, 0x0000000F,
|
||||
0x00050048, 0x00000418, 0x00000000, 0x00000023, 0x00000010, 0x00050048,
|
||||
0x00000418, 0x00000001, 0x00000023, 0x00000018, 0x00050048, 0x00000418,
|
||||
0x00000002, 0x00000023, 0x00000020, 0x00030047, 0x00000418, 0x00000002,
|
||||
0x00040047, 0x000014D6, 0x0000001E, 0x00000000, 0x00040047, 0x0000142B,
|
||||
0x00000022, 0x00000000, 0x00040047, 0x0000142B, 0x00000021, 0x00000000,
|
||||
0x00020013, 0x00000008, 0x00030021, 0x00000502, 0x00000008, 0x00030016,
|
||||
0x0000000D, 0x00000020, 0x00040015, 0x0000000B, 0x00000020, 0x00000000,
|
||||
0x00040015, 0x0000000C, 0x00000020, 0x00000001, 0x00040017, 0x00000012,
|
||||
0x0000000C, 0x00000002, 0x00040017, 0x00000018, 0x0000000D, 0x00000003,
|
||||
0x00040017, 0x00000011, 0x0000000B, 0x00000002, 0x0004002B, 0x0000000D,
|
||||
0x00000A0C, 0x00000000, 0x0004002B, 0x0000000D, 0x0000008A, 0x3F800000,
|
||||
0x0004002B, 0x0000000B, 0x00000A0D, 0x00000001, 0x0004002B, 0x0000000B,
|
||||
0x0000020D, 0x1FBC4639, 0x0004002B, 0x0000000B, 0x00000344, 0x7EF07EBB,
|
||||
0x0004002B, 0x0000000B, 0x000000B2, 0x7EF19FFF, 0x0004002B, 0x0000000D,
|
||||
0x00000019, 0x40000000, 0x00090019, 0x00000096, 0x0000000D, 0x00000001,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x0003001B,
|
||||
0x000001FE, 0x00000096, 0x00040020, 0x0000047B, 0x00000000, 0x000001FE,
|
||||
0x0004003B, 0x0000047B, 0x00000C4E, 0x00000000, 0x0004002B, 0x0000000C,
|
||||
0x00000A0B, 0x00000000, 0x00040017, 0x0000001D, 0x0000000D, 0x00000004,
|
||||
0x0004002B, 0x0000000C, 0x00000A08, 0xFFFFFFFF, 0x0005002C, 0x00000012,
|
||||
0x0000070B, 0x00000A0B, 0x00000A08, 0x0004002B, 0x0000000C, 0x00000A0E,
|
||||
0x00000001, 0x0005002C, 0x00000012, 0x00000714, 0x00000A0E, 0x00000A08,
|
||||
0x0005002C, 0x00000012, 0x0000070E, 0x00000A08, 0x00000A0B, 0x0005002C,
|
||||
0x00000012, 0x00000720, 0x00000A0E, 0x00000A0B, 0x0005002C, 0x00000012,
|
||||
0x0000071A, 0x00000A08, 0x00000A0E, 0x0005002C, 0x00000012, 0x00000723,
|
||||
0x00000A0B, 0x00000A0E, 0x0005002C, 0x00000012, 0x0000072C, 0x00000A0E,
|
||||
0x00000A0E, 0x0004002B, 0x0000000B, 0x00000A0A, 0x00000000, 0x0004002B,
|
||||
0x0000000B, 0x00000A10, 0x00000002, 0x00040017, 0x00000013, 0x0000000D,
|
||||
0x00000002, 0x0004002B, 0x0000000C, 0x00000A11, 0x00000002, 0x0005002C,
|
||||
0x00000012, 0x00000729, 0x00000A11, 0x00000A0B, 0x0005002C, 0x00000012,
|
||||
0x0000072F, 0x00000A0B, 0x00000A11, 0x0005002C, 0x00000012, 0x00000735,
|
||||
0x00000A11, 0x00000A0E, 0x0005002C, 0x00000012, 0x00000738, 0x00000A0E,
|
||||
0x00000A11, 0x0004002B, 0x0000000D, 0x000002C4, 0x3D000000, 0x00040020,
|
||||
0x0000029A, 0x00000001, 0x0000001D, 0x0004003B, 0x0000029A, 0x00000C93,
|
||||
0x00000001, 0x0005001E, 0x00000418, 0x00000012, 0x00000013, 0x0000000D,
|
||||
0x00040020, 0x00000695, 0x00000009, 0x00000418, 0x0004003B, 0x00000695,
|
||||
0x00001342, 0x00000009, 0x00040020, 0x0000028F, 0x00000009, 0x00000012,
|
||||
0x00040020, 0x00000290, 0x00000009, 0x00000013, 0x0004002B, 0x0000000D,
|
||||
0x000000FC, 0x3F000000, 0x00040020, 0x0000028A, 0x00000009, 0x0000000D,
|
||||
0x00040020, 0x0000029B, 0x00000003, 0x0000001D, 0x0004003B, 0x0000029B,
|
||||
0x00001400, 0x00000003, 0x00040020, 0x0000028B, 0x00000003, 0x0000000D,
|
||||
0x0004002B, 0x0000000B, 0x00000A13, 0x00000003, 0x0005002C, 0x00000013,
|
||||
0x00040017, 0x00000011, 0x0000000B, 0x00000002, 0x00040017, 0x0000001D,
|
||||
0x0000000D, 0x00000004, 0x00040020, 0x0000029A, 0x00000001, 0x0000001D,
|
||||
0x0004003B, 0x0000029A, 0x00000C93, 0x00000001, 0x00040017, 0x00000013,
|
||||
0x0000000D, 0x00000002, 0x0005001E, 0x00000418, 0x00000012, 0x00000013,
|
||||
0x0000000D, 0x00040020, 0x00000695, 0x00000009, 0x00000418, 0x0004003B,
|
||||
0x00000695, 0x00000BEC, 0x00000009, 0x0004002B, 0x0000000C, 0x00000A0B,
|
||||
0x00000000, 0x00040020, 0x0000028F, 0x00000009, 0x00000012, 0x0004002B,
|
||||
0x0000000C, 0x00000A0E, 0x00000001, 0x00040020, 0x00000290, 0x00000009,
|
||||
0x00000013, 0x0004002B, 0x0000000D, 0x000000FC, 0x3F000000, 0x0004002B,
|
||||
0x0000000C, 0x00000A11, 0x00000002, 0x00040020, 0x0000028A, 0x00000009,
|
||||
0x0000000D, 0x0004002B, 0x0000000D, 0x00000A0C, 0x00000000, 0x0004002B,
|
||||
0x0000000B, 0x00000A0A, 0x00000000, 0x00040020, 0x0000029B, 0x00000003,
|
||||
0x0000001D, 0x0004003B, 0x0000029B, 0x000014D6, 0x00000003, 0x00040020,
|
||||
0x0000028B, 0x00000003, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A0D,
|
||||
0x00000001, 0x0004002B, 0x0000000B, 0x00000A10, 0x00000002, 0x0004002B,
|
||||
0x0000000D, 0x0000008A, 0x3F800000, 0x0004002B, 0x0000000B, 0x00000A13,
|
||||
0x00000003, 0x0004002B, 0x0000000B, 0x0000020D, 0x1FBC4639, 0x0004002B,
|
||||
0x0000000B, 0x00000344, 0x7EF07EBB, 0x0004002B, 0x0000000B, 0x000000B2,
|
||||
0x7EF19FFF, 0x0004002B, 0x0000000D, 0x00000019, 0x40000000, 0x00090019,
|
||||
0x00000096, 0x0000000D, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000001, 0x00000000, 0x0003001B, 0x000001FE, 0x00000096, 0x00040020,
|
||||
0x0000047B, 0x00000000, 0x000001FE, 0x0004003B, 0x0000047B, 0x0000142B,
|
||||
0x00000000, 0x0004002B, 0x0000000C, 0x00000A08, 0xFFFFFFFF, 0x0005002C,
|
||||
0x00000012, 0x0000070B, 0x00000A0B, 0x00000A08, 0x0005002C, 0x00000012,
|
||||
0x00000714, 0x00000A0E, 0x00000A08, 0x0005002C, 0x00000012, 0x0000070E,
|
||||
0x00000A08, 0x00000A0B, 0x0005002C, 0x00000012, 0x00000720, 0x00000A0E,
|
||||
0x00000A0B, 0x0005002C, 0x00000012, 0x0000071A, 0x00000A08, 0x00000A0E,
|
||||
0x0005002C, 0x00000012, 0x00000723, 0x00000A0B, 0x00000A0E, 0x0005002C,
|
||||
0x00000012, 0x0000072C, 0x00000A0E, 0x00000A0E, 0x0005002C, 0x00000012,
|
||||
0x00000729, 0x00000A11, 0x00000A0B, 0x0005002C, 0x00000012, 0x0000072F,
|
||||
0x00000A0B, 0x00000A11, 0x0005002C, 0x00000012, 0x00000735, 0x00000A11,
|
||||
0x00000A0E, 0x0005002C, 0x00000012, 0x00000738, 0x00000A0E, 0x00000A11,
|
||||
0x0004002B, 0x0000000D, 0x000002C4, 0x3D000000, 0x0005002C, 0x00000013,
|
||||
0x0000061E, 0x000000FC, 0x000000FC, 0x00050036, 0x00000008, 0x0000161F,
|
||||
0x00000000, 0x00000502, 0x000200F8, 0x00006175, 0x0004003D, 0x0000001D,
|
||||
0x0000488B, 0x00000C93, 0x0007004F, 0x00000013, 0x000036B8, 0x0000488B,
|
||||
0x0000488B, 0x00000000, 0x00000001, 0x0004006E, 0x00000012, 0x000044F8,
|
||||
0x000036B8, 0x00050041, 0x0000028F, 0x00004B4F, 0x00001342, 0x00000A0B,
|
||||
0x000036B8, 0x00050041, 0x0000028F, 0x00004B4F, 0x00000BEC, 0x00000A0B,
|
||||
0x0004003D, 0x00000012, 0x00005926, 0x00004B4F, 0x00050082, 0x00000012,
|
||||
0x00005B10, 0x000044F8, 0x00005926, 0x0004007C, 0x00000011, 0x000026D2,
|
||||
0x00005B10, 0x00050041, 0x00000290, 0x00005205, 0x00001342, 0x00000A0E,
|
||||
0x00005B10, 0x00050041, 0x00000290, 0x00005205, 0x00000BEC, 0x00000A0E,
|
||||
0x0004003D, 0x00000013, 0x00005833, 0x00005205, 0x0004007C, 0x00000011,
|
||||
0x00003455, 0x00005833, 0x0005008E, 0x00000013, 0x000031DA, 0x00005833,
|
||||
0x000000FC, 0x00050083, 0x00000013, 0x00005EE3, 0x000031DA, 0x0000061E,
|
||||
0x0004007C, 0x00000011, 0x00004EA3, 0x00005EE3, 0x00050041, 0x0000028A,
|
||||
0x0000488F, 0x00001342, 0x00000A11, 0x0004003D, 0x0000000D, 0x000055F9,
|
||||
0x0000488F, 0x00000BEC, 0x00000A11, 0x0004003D, 0x0000000D, 0x000055F9,
|
||||
0x0000488F, 0x0004007C, 0x0000000B, 0x00004816, 0x000055F9, 0x00040070,
|
||||
0x00000013, 0x00002EEB, 0x000026D2, 0x0004007C, 0x00000013, 0x00004BF9,
|
||||
0x00003455, 0x00050085, 0x00000013, 0x000042F3, 0x00002EEB, 0x00004BF9,
|
||||
|
@ -505,7 +505,7 @@ const uint32_t guest_output_ffx_cas_resample_ps[] = {
|
|||
0x00000001, 0x00000008, 0x0000612E, 0x00050083, 0x00000013, 0x00003FA2,
|
||||
0x0000612E, 0x000031AF, 0x0004006E, 0x00000012, 0x000042A8, 0x000031AF,
|
||||
0x00050080, 0x00000012, 0x000050B7, 0x000042A8, 0x0000070B, 0x0004003D,
|
||||
0x000001FE, 0x0000415B, 0x00000C4E, 0x00040064, 0x00000096, 0x00005C42,
|
||||
0x000001FE, 0x0000415B, 0x0000142B, 0x00040064, 0x00000096, 0x00005C42,
|
||||
0x0000415B, 0x0007005F, 0x0000001D, 0x000040D3, 0x00005C42, 0x000050B7,
|
||||
0x00000002, 0x00000A0B, 0x00050080, 0x00000012, 0x00003C5E, 0x000042A8,
|
||||
0x0000070E, 0x00040064, 0x00000096, 0x00004DF7, 0x0000415B, 0x0007005F,
|
||||
|
@ -782,17 +782,17 @@ const uint32_t guest_output_ffx_cas_resample_ps[] = {
|
|||
0x00003E67, 0x00004700, 0x000024FD, 0x00050085, 0x0000000D, 0x00001B09,
|
||||
0x00003E67, 0x000024E2, 0x0008000C, 0x0000000D, 0x0000616D, 0x00000001,
|
||||
0x0000002B, 0x00001B09, 0x00000A0C, 0x0000008A, 0x00050041, 0x0000028B,
|
||||
0x00005061, 0x00001400, 0x00000A0A, 0x0003003E, 0x00005061, 0x00003B72,
|
||||
0x00050041, 0x0000028B, 0x00004D14, 0x00001400, 0x00000A0D, 0x0003003E,
|
||||
0x00004D14, 0x00003B73, 0x00050041, 0x0000028B, 0x00004CC8, 0x00001400,
|
||||
0x00005061, 0x000014D6, 0x00000A0A, 0x0003003E, 0x00005061, 0x00003B72,
|
||||
0x00050041, 0x0000028B, 0x00004D14, 0x000014D6, 0x00000A0D, 0x0003003E,
|
||||
0x00004D14, 0x00003B73, 0x00050041, 0x0000028B, 0x00004CC8, 0x000014D6,
|
||||
0x00000A10, 0x0003003E, 0x00004CC8, 0x0000616D, 0x0004003D, 0x0000001D,
|
||||
0x000028CD, 0x00001400, 0x0008004F, 0x00000018, 0x00002397, 0x000028CD,
|
||||
0x000028CD, 0x000014D6, 0x0008004F, 0x00000018, 0x00002397, 0x000028CD,
|
||||
0x000028CD, 0x00000000, 0x00000001, 0x00000002, 0x0006000C, 0x00000018,
|
||||
0x000045F7, 0x00000001, 0x0000001F, 0x00002397, 0x00050051, 0x0000000D,
|
||||
0x00001BDB, 0x000045F7, 0x00000000, 0x0003003E, 0x00005061, 0x00001BDB,
|
||||
0x00050051, 0x0000000D, 0x000057A3, 0x000045F7, 0x00000001, 0x0003003E,
|
||||
0x00004D14, 0x000057A3, 0x00050051, 0x0000000D, 0x00005673, 0x000045F7,
|
||||
0x00000002, 0x0003003E, 0x00004CC8, 0x00005673, 0x00050041, 0x0000028B,
|
||||
0x00005AFE, 0x00001400, 0x00000A13, 0x0003003E, 0x00005AFE, 0x0000008A,
|
||||
0x00005AFE, 0x000014D6, 0x00000A13, 0x0003003E, 0x00005AFE, 0x0000008A,
|
||||
0x000100FD, 0x00010038,
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -8,15 +8,15 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %5663 "main" %5120 %gl_FragCoord
|
||||
OpEntryPoint Fragment %5663 "main" %5777 %gl_FragCoord
|
||||
OpExecutionMode %5663 OriginUpperLeft
|
||||
OpDecorate %3150 DescriptorSet 0
|
||||
OpDecorate %3150 Binding 0
|
||||
OpMemberDecorate %_struct_1030 0 Offset 16
|
||||
OpMemberDecorate %_struct_1030 1 Offset 24
|
||||
OpDecorate %_struct_1030 Block
|
||||
OpDecorate %5120 Location 0
|
||||
OpDecorate %5777 Location 0
|
||||
OpDecorate %gl_FragCoord BuiltIn FragCoord
|
||||
OpDecorate %5056 DescriptorSet 0
|
||||
OpDecorate %5056 Binding 0
|
||||
%void = OpTypeVoid
|
||||
%1282 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
|
@ -27,27 +27,41 @@
|
|||
%bool = OpTypeBool
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%v4uint = OpTypeVector %uint 4
|
||||
%_struct_1030 = OpTypeStruct %v2float %v2float
|
||||
%_ptr_PushConstant__struct_1030 = OpTypePointer PushConstant %_struct_1030
|
||||
%3052 = OpVariable %_ptr_PushConstant__struct_1030 PushConstant
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_n1 = OpConstant %float -1
|
||||
%1284 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_n1
|
||||
%int_1 = OpConstant %int 1
|
||||
%float_2 = OpConstant %float 2
|
||||
%2460 = OpConstantComposite %v4float %float_n1 %float_2 %float_1 %float_2
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_4 = OpConstant %float 4
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5777 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%uint_2129690299 = OpConstant %uint 2129690299
|
||||
%uint_1597275508 = OpConstant %uint 1597275508
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%150 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%510 = OpTypeSampledImage %150
|
||||
%_ptr_UniformConstant_510 = OpTypePointer UniformConstant %510
|
||||
%3150 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
%5056 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%int_2 = OpConstant %int 2
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%float_0_400000006 = OpConstant %float 0.400000006
|
||||
%float_n1 = OpConstant %float -1
|
||||
%float_1_5625 = OpConstant %float 1.5625
|
||||
%float_n0_5625 = OpConstant %float -0.5625
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%float_3_05175781en05 = OpConstant %float 3.05175781e-05
|
||||
%float_n0_5 = OpConstant %float -0.5
|
||||
%float_n0_289999992 = OpConstant %float -0.289999992
|
||||
|
@ -57,44 +71,30 @@
|
|||
%890 = OpConstantComposite %v2float %float_0 %float_1
|
||||
%2628 = OpConstantComposite %v2float %float_n1 %float_0
|
||||
%769 = OpConstantComposite %v2float %float_1 %float_1
|
||||
%float_2 = OpConstant %float 2
|
||||
%426 = OpConstantComposite %v2float %float_2 %float_1
|
||||
%2981 = OpConstantComposite %v2float %float_2 %float_0
|
||||
%312 = OpConstantComposite %v2float %float_1 %float_0
|
||||
%313 = OpConstantComposite %v2float %float_1 %float_2
|
||||
%1823 = OpConstantComposite %v2float %float_0 %float_2
|
||||
%_struct_1030 = OpTypeStruct %v2float %v2float
|
||||
%_ptr_PushConstant__struct_1030 = OpTypePointer PushConstant %_struct_1030
|
||||
%4930 = OpVariable %_ptr_PushConstant__struct_1030 PushConstant
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
%1284 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_n1
|
||||
%2460 = OpConstantComposite %v4float %float_n1 %float_2 %float_1 %float_2
|
||||
%float_4 = OpConstant %float 4
|
||||
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5120 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%1566 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
||||
%325 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5
|
||||
%10264 = OpUndef %v2float
|
||||
%5663 = OpFunction %void None %1282
|
||||
%23915 = OpLabel
|
||||
%8250 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_0
|
||||
%8250 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_0
|
||||
%6959 = OpLoad %v2float %8250
|
||||
%13397 = OpBitcast %v2uint %6959
|
||||
%12762 = OpVectorTimesScalar %v2float %6959 %float_0_5
|
||||
%24291 = OpFSub %v2float %12762 %1566
|
||||
%20131 = OpBitcast %v2uint %24291
|
||||
%17720 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_1
|
||||
%17720 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_1
|
||||
%11122 = OpLoad %v2float %17720
|
||||
%8543 = OpVectorShuffle %v4float %11122 %11122 0 1 0 1
|
||||
%11088 = OpFMul %v4float %1284 %8543
|
||||
%12841 = OpBitcast %v4uint %11088
|
||||
%16717 = OpFMul %v4float %2460 %8543
|
||||
%11573 = OpBitcast %v4uint %16717
|
||||
%20359 = OpAccessChain %_ptr_PushConstant_float %4930 %int_1 %uint_1
|
||||
%20359 = OpAccessChain %_ptr_PushConstant_float %3052 %int_1 %uint_1
|
||||
%20680 = OpLoad %float %20359
|
||||
%17728 = OpFMul %float %float_4 %20680
|
||||
%22839 = OpBitcast %uint %17728
|
||||
|
@ -131,7 +131,7 @@
|
|||
%8254 = OpCompositeConstruct %v2uint %uint_0 %22839
|
||||
%15702 = OpBitcast %v2float %8254
|
||||
%15604 = OpFAdd %v2float %11859 %15702
|
||||
%15570 = OpLoad %510 %3150
|
||||
%15570 = OpLoad %510 %5056
|
||||
%15045 = OpImageGather %v4float %15570 %11859 %int_0
|
||||
%21315 = OpImageGather %v4float %15570 %11859 %int_1
|
||||
%7872 = OpImageGather %v4float %15570 %11859 %int_2
|
||||
|
@ -763,16 +763,16 @@
|
|||
%17132 = OpFMul %v3float %7049 %16189
|
||||
%18007 = OpExtInst %v3float %1 FMax %10578 %17132
|
||||
%12443 = OpExtInst %v3float %1 FMin %18959 %18007
|
||||
%9794 = OpAccessChain %_ptr_Output_float %5120 %uint_0
|
||||
%9794 = OpAccessChain %_ptr_Output_float %5777 %uint_0
|
||||
%24795 = OpCompositeExtract %float %12443 0
|
||||
OpStore %9794 %24795
|
||||
%16378 = OpAccessChain %_ptr_Output_float %5120 %uint_1
|
||||
%16378 = OpAccessChain %_ptr_Output_float %5777 %uint_1
|
||||
%15746 = OpCompositeExtract %float %12443 1
|
||||
OpStore %16378 %15746
|
||||
%16379 = OpAccessChain %_ptr_Output_float %5120 %uint_2
|
||||
%16379 = OpAccessChain %_ptr_Output_float %5777 %uint_2
|
||||
%15747 = OpCompositeExtract %float %12443 2
|
||||
OpStore %16379 %15747
|
||||
%23294 = OpAccessChain %_ptr_Output_float %5120 %uint_3
|
||||
%23294 = OpAccessChain %_ptr_Output_float %5777 %uint_3
|
||||
OpStore %23294 %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -782,69 +782,69 @@ const uint32_t guest_output_ffx_fsr_easu_ps[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x0000617C, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0007000F, 0x00000004,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00001400, 0x00000C93, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00040047, 0x00000C4E, 0x00000022, 0x00000000,
|
||||
0x00040047, 0x00000C4E, 0x00000021, 0x00000000, 0x00050048, 0x00000406,
|
||||
0x00000000, 0x00000023, 0x00000010, 0x00050048, 0x00000406, 0x00000001,
|
||||
0x00000023, 0x00000018, 0x00030047, 0x00000406, 0x00000002, 0x00040047,
|
||||
0x00001400, 0x0000001E, 0x00000000, 0x00040047, 0x00000C93, 0x0000000B,
|
||||
0x0000000F, 0x00020013, 0x00000008, 0x00030021, 0x00000502, 0x00000008,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00001691, 0x00000C93, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00050048, 0x00000406, 0x00000000, 0x00000023,
|
||||
0x00000010, 0x00050048, 0x00000406, 0x00000001, 0x00000023, 0x00000018,
|
||||
0x00030047, 0x00000406, 0x00000002, 0x00040047, 0x00001691, 0x0000001E,
|
||||
0x00000000, 0x00040047, 0x00000C93, 0x0000000B, 0x0000000F, 0x00040047,
|
||||
0x000013C0, 0x00000022, 0x00000000, 0x00040047, 0x000013C0, 0x00000021,
|
||||
0x00000000, 0x00020013, 0x00000008, 0x00030021, 0x00000502, 0x00000008,
|
||||
0x00030016, 0x0000000D, 0x00000020, 0x00040017, 0x00000013, 0x0000000D,
|
||||
0x00000002, 0x00040017, 0x00000018, 0x0000000D, 0x00000003, 0x00040017,
|
||||
0x0000001D, 0x0000000D, 0x00000004, 0x00040015, 0x0000000B, 0x00000020,
|
||||
0x00000000, 0x00020014, 0x00000009, 0x00040017, 0x00000011, 0x0000000B,
|
||||
0x00000002, 0x00040017, 0x00000017, 0x0000000B, 0x00000004, 0x0004002B,
|
||||
0x0000000D, 0x0000008A, 0x3F800000, 0x0004002B, 0x0000000D, 0x00000A0C,
|
||||
0x00000000, 0x0004002B, 0x0000000B, 0x00000344, 0x7EF07EBB, 0x0004002B,
|
||||
0x0000000B, 0x00000661, 0x5F347D74, 0x0004002B, 0x0000000B, 0x00000A0D,
|
||||
0x00000001, 0x00090019, 0x00000096, 0x0000000D, 0x00000001, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x0003001B, 0x000001FE,
|
||||
0x00000096, 0x00040020, 0x0000047B, 0x00000000, 0x000001FE, 0x0004003B,
|
||||
0x0000047B, 0x00000C4E, 0x00000000, 0x00040015, 0x0000000C, 0x00000020,
|
||||
0x00000001, 0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x0004002B,
|
||||
0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A11,
|
||||
0x00000002, 0x0004002B, 0x0000000B, 0x00000A0A, 0x00000000, 0x0004002B,
|
||||
0x0000000D, 0x00000A93, 0x3ECCCCCD, 0x0004002B, 0x0000000D, 0x00000341,
|
||||
0xBF800000, 0x0004002B, 0x0000000D, 0x000004B3, 0x3FC80000, 0x0004002B,
|
||||
0x0000000D, 0x000000B4, 0xBF100000, 0x0004002B, 0x0000000D, 0x000000FC,
|
||||
0x3F000000, 0x0004002B, 0x0000000B, 0x00000A10, 0x00000002, 0x0004002B,
|
||||
0x0000000B, 0x00000A13, 0x00000003, 0x0004002B, 0x0000000D, 0x00000738,
|
||||
0x38000000, 0x0004002B, 0x0000000D, 0x000003B3, 0xBF000000, 0x0004002B,
|
||||
0x0000000D, 0x0000075D, 0xBE947AE1, 0x0005002C, 0x00000013, 0x00000379,
|
||||
0x00000A0C, 0x00000341, 0x0005002C, 0x00000013, 0x00000300, 0x0000008A,
|
||||
0x00000341, 0x0005002C, 0x00000013, 0x00000049, 0x00000341, 0x0000008A,
|
||||
0x0005002C, 0x00000013, 0x0000037A, 0x00000A0C, 0x0000008A, 0x0005002C,
|
||||
0x00000013, 0x00000A44, 0x00000341, 0x00000A0C, 0x0005002C, 0x00000013,
|
||||
0x00000301, 0x0000008A, 0x0000008A, 0x0004002B, 0x0000000D, 0x00000019,
|
||||
0x40000000, 0x0005002C, 0x00000013, 0x000001AA, 0x00000019, 0x0000008A,
|
||||
0x0005002C, 0x00000013, 0x00000BA5, 0x00000019, 0x00000A0C, 0x0005002C,
|
||||
0x00000013, 0x00000138, 0x0000008A, 0x00000A0C, 0x0005002C, 0x00000013,
|
||||
0x00000139, 0x0000008A, 0x00000019, 0x0005002C, 0x00000013, 0x0000071F,
|
||||
0x00000A0C, 0x00000019, 0x0004001E, 0x00000406, 0x00000013, 0x00000013,
|
||||
0x00040020, 0x00000683, 0x00000009, 0x00000406, 0x0004003B, 0x00000683,
|
||||
0x00001342, 0x00000009, 0x00040020, 0x00000290, 0x00000009, 0x00000013,
|
||||
0x0007002C, 0x0000001D, 0x00000504, 0x0000008A, 0x0000008A, 0x0000008A,
|
||||
0x00000341, 0x0007002C, 0x0000001D, 0x0000099C, 0x00000341, 0x00000019,
|
||||
0x0000008A, 0x00000019, 0x0004002B, 0x0000000D, 0x00000B69, 0x40800000,
|
||||
0x00040020, 0x0000028A, 0x00000009, 0x0000000D, 0x00040020, 0x0000029A,
|
||||
0x00000003, 0x0000001D, 0x0004003B, 0x0000029A, 0x00001400, 0x00000003,
|
||||
0x00040020, 0x0000029B, 0x00000001, 0x0000001D, 0x0004003B, 0x0000029B,
|
||||
0x00000C93, 0x00000001, 0x00040020, 0x0000028B, 0x00000003, 0x0000000D,
|
||||
0x00000002, 0x00040017, 0x00000017, 0x0000000B, 0x00000004, 0x0004001E,
|
||||
0x00000406, 0x00000013, 0x00000013, 0x00040020, 0x00000683, 0x00000009,
|
||||
0x00000406, 0x0004003B, 0x00000683, 0x00000BEC, 0x00000009, 0x00040015,
|
||||
0x0000000C, 0x00000020, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A0B,
|
||||
0x00000000, 0x00040020, 0x00000290, 0x00000009, 0x00000013, 0x0004002B,
|
||||
0x0000000D, 0x000000FC, 0x3F000000, 0x0004002B, 0x0000000D, 0x0000008A,
|
||||
0x3F800000, 0x0004002B, 0x0000000D, 0x00000341, 0xBF800000, 0x0007002C,
|
||||
0x0000001D, 0x00000504, 0x0000008A, 0x0000008A, 0x0000008A, 0x00000341,
|
||||
0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000D,
|
||||
0x00000019, 0x40000000, 0x0007002C, 0x0000001D, 0x0000099C, 0x00000341,
|
||||
0x00000019, 0x0000008A, 0x00000019, 0x0004002B, 0x0000000D, 0x00000A0C,
|
||||
0x00000000, 0x0004002B, 0x0000000D, 0x00000B69, 0x40800000, 0x0004002B,
|
||||
0x0000000B, 0x00000A0D, 0x00000001, 0x00040020, 0x0000028A, 0x00000009,
|
||||
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A0A, 0x00000000, 0x00040020,
|
||||
0x0000029A, 0x00000003, 0x0000001D, 0x0004003B, 0x0000029A, 0x00001691,
|
||||
0x00000003, 0x00040020, 0x0000029B, 0x00000001, 0x0000001D, 0x0004003B,
|
||||
0x0000029B, 0x00000C93, 0x00000001, 0x00040020, 0x0000028B, 0x00000003,
|
||||
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A10, 0x00000002, 0x0004002B,
|
||||
0x0000000B, 0x00000A13, 0x00000003, 0x0004002B, 0x0000000B, 0x00000344,
|
||||
0x7EF07EBB, 0x0004002B, 0x0000000B, 0x00000661, 0x5F347D74, 0x00090019,
|
||||
0x00000096, 0x0000000D, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000001, 0x00000000, 0x0003001B, 0x000001FE, 0x00000096, 0x00040020,
|
||||
0x0000047B, 0x00000000, 0x000001FE, 0x0004003B, 0x0000047B, 0x000013C0,
|
||||
0x00000000, 0x0004002B, 0x0000000C, 0x00000A11, 0x00000002, 0x0004002B,
|
||||
0x0000000D, 0x00000A93, 0x3ECCCCCD, 0x0004002B, 0x0000000D, 0x000004B3,
|
||||
0x3FC80000, 0x0004002B, 0x0000000D, 0x000000B4, 0xBF100000, 0x0004002B,
|
||||
0x0000000D, 0x00000738, 0x38000000, 0x0004002B, 0x0000000D, 0x000003B3,
|
||||
0xBF000000, 0x0004002B, 0x0000000D, 0x0000075D, 0xBE947AE1, 0x0005002C,
|
||||
0x00000013, 0x00000379, 0x00000A0C, 0x00000341, 0x0005002C, 0x00000013,
|
||||
0x00000300, 0x0000008A, 0x00000341, 0x0005002C, 0x00000013, 0x00000049,
|
||||
0x00000341, 0x0000008A, 0x0005002C, 0x00000013, 0x0000037A, 0x00000A0C,
|
||||
0x0000008A, 0x0005002C, 0x00000013, 0x00000A44, 0x00000341, 0x00000A0C,
|
||||
0x0005002C, 0x00000013, 0x00000301, 0x0000008A, 0x0000008A, 0x0005002C,
|
||||
0x00000013, 0x000001AA, 0x00000019, 0x0000008A, 0x0005002C, 0x00000013,
|
||||
0x00000BA5, 0x00000019, 0x00000A0C, 0x0005002C, 0x00000013, 0x00000138,
|
||||
0x0000008A, 0x00000A0C, 0x0005002C, 0x00000013, 0x00000139, 0x0000008A,
|
||||
0x00000019, 0x0005002C, 0x00000013, 0x0000071F, 0x00000A0C, 0x00000019,
|
||||
0x0005002C, 0x00000013, 0x0000061E, 0x000000FC, 0x000000FC, 0x0007002C,
|
||||
0x0000001D, 0x00000145, 0x000000FC, 0x000000FC, 0x000000FC, 0x000000FC,
|
||||
0x00030001, 0x00000013, 0x00002818, 0x00050036, 0x00000008, 0x0000161F,
|
||||
0x00000000, 0x00000502, 0x000200F8, 0x00005D6B, 0x00050041, 0x00000290,
|
||||
0x0000203A, 0x00001342, 0x00000A0B, 0x0004003D, 0x00000013, 0x00001B2F,
|
||||
0x0000203A, 0x00000BEC, 0x00000A0B, 0x0004003D, 0x00000013, 0x00001B2F,
|
||||
0x0000203A, 0x0004007C, 0x00000011, 0x00003455, 0x00001B2F, 0x0005008E,
|
||||
0x00000013, 0x000031DA, 0x00001B2F, 0x000000FC, 0x00050083, 0x00000013,
|
||||
0x00005EE3, 0x000031DA, 0x0000061E, 0x0004007C, 0x00000011, 0x00004EA3,
|
||||
0x00005EE3, 0x00050041, 0x00000290, 0x00004538, 0x00001342, 0x00000A0E,
|
||||
0x00005EE3, 0x00050041, 0x00000290, 0x00004538, 0x00000BEC, 0x00000A0E,
|
||||
0x0004003D, 0x00000013, 0x00002B72, 0x00004538, 0x0009004F, 0x0000001D,
|
||||
0x0000215F, 0x00002B72, 0x00002B72, 0x00000000, 0x00000001, 0x00000000,
|
||||
0x00000001, 0x00050085, 0x0000001D, 0x00002B50, 0x00000504, 0x0000215F,
|
||||
0x0004007C, 0x00000017, 0x00003229, 0x00002B50, 0x00050085, 0x0000001D,
|
||||
0x0000414D, 0x0000099C, 0x0000215F, 0x0004007C, 0x00000017, 0x00002D35,
|
||||
0x0000414D, 0x00060041, 0x0000028A, 0x00004F87, 0x00001342, 0x00000A0E,
|
||||
0x0000414D, 0x00060041, 0x0000028A, 0x00004F87, 0x00000BEC, 0x00000A0E,
|
||||
0x00000A0D, 0x0004003D, 0x0000000D, 0x000050C8, 0x00004F87, 0x00050085,
|
||||
0x0000000D, 0x00004540, 0x00000B69, 0x000050C8, 0x0004007C, 0x0000000B,
|
||||
0x00005937, 0x00004540, 0x0004003D, 0x0000001D, 0x00002C9B, 0x00000C93,
|
||||
|
@ -874,7 +874,7 @@ const uint32_t guest_output_ffx_fsr_easu_ps[] = {
|
|||
0x00002E53, 0x000025A4, 0x00050050, 0x00000011, 0x0000203E, 0x00000A0A,
|
||||
0x00005937, 0x0004007C, 0x00000013, 0x00003D56, 0x0000203E, 0x00050081,
|
||||
0x00000013, 0x00003CF4, 0x00002E53, 0x00003D56, 0x0004003D, 0x000001FE,
|
||||
0x00003CD2, 0x00000C4E, 0x00060060, 0x0000001D, 0x00003AC5, 0x00003CD2,
|
||||
0x00003CD2, 0x000013C0, 0x00060060, 0x0000001D, 0x00003AC5, 0x00003CD2,
|
||||
0x00002E53, 0x00000A0B, 0x00060060, 0x0000001D, 0x00005343, 0x00003CD2,
|
||||
0x00002E53, 0x00000A0E, 0x00060060, 0x0000001D, 0x00001EC0, 0x00003CD2,
|
||||
0x00002E53, 0x00000A11, 0x00060060, 0x0000001D, 0x00001EC1, 0x00003CD2,
|
||||
|
@ -1423,12 +1423,12 @@ const uint32_t guest_output_ffx_fsr_easu_ps[] = {
|
|||
0x00003F3D, 0x0007000C, 0x00000018, 0x00004657, 0x00000001, 0x00000028,
|
||||
0x00002952, 0x000042EC, 0x0007000C, 0x00000018, 0x0000309B, 0x00000001,
|
||||
0x00000025, 0x00004A0F, 0x00004657, 0x00050041, 0x0000028B, 0x00002642,
|
||||
0x00001400, 0x00000A0A, 0x00050051, 0x0000000D, 0x000060DB, 0x0000309B,
|
||||
0x00001691, 0x00000A0A, 0x00050051, 0x0000000D, 0x000060DB, 0x0000309B,
|
||||
0x00000000, 0x0003003E, 0x00002642, 0x000060DB, 0x00050041, 0x0000028B,
|
||||
0x00003FFA, 0x00001400, 0x00000A0D, 0x00050051, 0x0000000D, 0x00003D82,
|
||||
0x00003FFA, 0x00001691, 0x00000A0D, 0x00050051, 0x0000000D, 0x00003D82,
|
||||
0x0000309B, 0x00000001, 0x0003003E, 0x00003FFA, 0x00003D82, 0x00050041,
|
||||
0x0000028B, 0x00003FFB, 0x00001400, 0x00000A10, 0x00050051, 0x0000000D,
|
||||
0x0000028B, 0x00003FFB, 0x00001691, 0x00000A10, 0x00050051, 0x0000000D,
|
||||
0x00003D83, 0x0000309B, 0x00000002, 0x0003003E, 0x00003FFB, 0x00003D83,
|
||||
0x00050041, 0x0000028B, 0x00005AFE, 0x00001400, 0x00000A13, 0x0003003E,
|
||||
0x00050041, 0x0000028B, 0x00005AFE, 0x00001691, 0x00000A13, 0x0003003E,
|
||||
0x00005AFE, 0x0000008A, 0x000100FD, 0x00010038,
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -8,15 +8,15 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %5663 "main" %gl_FragCoord %5120
|
||||
OpEntryPoint Fragment %5663 "main" %gl_FragCoord %3253
|
||||
OpExecutionMode %5663 OriginUpperLeft
|
||||
OpDecorate %3150 DescriptorSet 0
|
||||
OpDecorate %3150 Binding 0
|
||||
OpDecorate %gl_FragCoord BuiltIn FragCoord
|
||||
OpMemberDecorate %_struct_1010 0 Offset 16
|
||||
OpMemberDecorate %_struct_1010 1 Offset 24
|
||||
OpDecorate %_struct_1010 Block
|
||||
OpDecorate %5120 Location 0
|
||||
OpDecorate %3253 Location 0
|
||||
OpDecorate %3575 DescriptorSet 0
|
||||
OpDecorate %3575 Binding 0
|
||||
%void = OpTypeVoid
|
||||
%1282 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
|
@ -25,55 +25,55 @@
|
|||
%v2int = OpTypeVector %int 2
|
||||
%v4float = OpTypeVector %float 4
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
|
||||
%v2float = OpTypeVector %float 2
|
||||
%_struct_1010 = OpTypeStruct %v2int %float
|
||||
%_ptr_PushConstant__struct_1010 = OpTypePointer PushConstant %_struct_1010
|
||||
%3052 = OpVariable %_ptr_PushConstant__struct_1010 PushConstant
|
||||
%int_0 = OpConstant %int 0
|
||||
%_ptr_PushConstant_v2int = OpTypePointer PushConstant %v2int
|
||||
%int_1 = OpConstant %int 1
|
||||
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%3253 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%float_1 = OpConstant %float 1
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%float_0 = OpConstant %float 0
|
||||
%uint_2129764351 = OpConstant %uint 2129764351
|
||||
%float_2 = OpConstant %float 2
|
||||
%150 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%510 = OpTypeSampledImage %150
|
||||
%_ptr_UniformConstant_510 = OpTypePointer UniformConstant %510
|
||||
%3150 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%int_0 = OpConstant %int 0
|
||||
%3575 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%int_n1 = OpConstant %int -1
|
||||
%1803 = OpConstantComposite %v2int %int_0 %int_n1
|
||||
%1806 = OpConstantComposite %v2int %int_n1 %int_0
|
||||
%int_1 = OpConstant %int 1
|
||||
%1824 = OpConstantComposite %v2int %int_1 %int_0
|
||||
%1827 = OpConstantComposite %v2int %int_0 %int_1
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%v2float = OpTypeVector %float 2
|
||||
%float_n4 = OpConstant %float -4
|
||||
%float_4 = OpConstant %float 4
|
||||
%float_n0_1875 = OpConstant %float -0.1875
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
|
||||
%_struct_1010 = OpTypeStruct %v2int %float
|
||||
%_ptr_PushConstant__struct_1010 = OpTypePointer PushConstant %_struct_1010
|
||||
%4930 = OpVariable %_ptr_PushConstant__struct_1010 PushConstant
|
||||
%_ptr_PushConstant_v2int = OpTypePointer PushConstant %v2int
|
||||
%_ptr_PushConstant_float = OpTypePointer PushConstant %float
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5120 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%float_0_25 = OpConstant %float 0.25
|
||||
%5663 = OpFunction %void None %1282
|
||||
%24949 = OpLabel
|
||||
%18571 = OpLoad %v4float %gl_FragCoord
|
||||
%14008 = OpVectorShuffle %v2float %18571 %18571 0 1
|
||||
%17656 = OpConvertFToS %v2int %14008
|
||||
%19279 = OpAccessChain %_ptr_PushConstant_v2int %4930 %int_0
|
||||
%19279 = OpAccessChain %_ptr_PushConstant_v2int %3052 %int_0
|
||||
%22822 = OpLoad %v2int %19279
|
||||
%23312 = OpISub %v2int %17656 %22822
|
||||
%9938 = OpBitcast %v2uint %23312
|
||||
%20997 = OpAccessChain %_ptr_PushConstant_float %4930 %int_1
|
||||
%20997 = OpAccessChain %_ptr_PushConstant_float %3052 %int_1
|
||||
%22237 = OpLoad %float %20997
|
||||
%16454 = OpBitcast %uint %22237
|
||||
%6990 = OpBitcast %v2int %9938
|
||||
%14460 = OpIAdd %v2int %6990 %1803
|
||||
%21565 = OpLoad %510 %3150
|
||||
%21565 = OpLoad %510 %3575
|
||||
%22725 = OpImage %150 %21565
|
||||
%24365 = OpImageFetch %v4float %22725 %14460 Lod %int_0
|
||||
%22126 = OpCompositeExtract %float %24365 0
|
||||
|
@ -186,13 +186,13 @@
|
|||
%12675 = OpFMul %float %20919 %6537
|
||||
%16937 = OpFAdd %float %12675 %18962
|
||||
%19165 = OpFMul %float %16937 %9366
|
||||
%19584 = OpAccessChain %_ptr_Output_float %5120 %uint_0
|
||||
%19584 = OpAccessChain %_ptr_Output_float %3253 %uint_0
|
||||
OpStore %19584 %9367
|
||||
%19732 = OpAccessChain %_ptr_Output_float %5120 %uint_1
|
||||
%19732 = OpAccessChain %_ptr_Output_float %3253 %uint_1
|
||||
OpStore %19732 %9368
|
||||
%19733 = OpAccessChain %_ptr_Output_float %5120 %uint_2
|
||||
%19733 = OpAccessChain %_ptr_Output_float %3253 %uint_2
|
||||
OpStore %19733 %19165
|
||||
%23304 = OpAccessChain %_ptr_Output_float %5120 %uint_3
|
||||
%23304 = OpAccessChain %_ptr_Output_float %3253 %uint_3
|
||||
OpStore %23304 %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -202,52 +202,52 @@ const uint32_t guest_output_ffx_fsr_rcas_ps[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x00006240, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0007000F, 0x00000004,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C93, 0x00001400, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00040047, 0x00000C4E, 0x00000022, 0x00000000,
|
||||
0x00040047, 0x00000C4E, 0x00000021, 0x00000000, 0x00040047, 0x00000C93,
|
||||
0x0000000B, 0x0000000F, 0x00050048, 0x000003F2, 0x00000000, 0x00000023,
|
||||
0x00000010, 0x00050048, 0x000003F2, 0x00000001, 0x00000023, 0x00000018,
|
||||
0x00030047, 0x000003F2, 0x00000002, 0x00040047, 0x00001400, 0x0000001E,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C93, 0x00000CB5, 0x00030010,
|
||||
0x0000161F, 0x00000007, 0x00040047, 0x00000C93, 0x0000000B, 0x0000000F,
|
||||
0x00050048, 0x000003F2, 0x00000000, 0x00000023, 0x00000010, 0x00050048,
|
||||
0x000003F2, 0x00000001, 0x00000023, 0x00000018, 0x00030047, 0x000003F2,
|
||||
0x00000002, 0x00040047, 0x00000CB5, 0x0000001E, 0x00000000, 0x00040047,
|
||||
0x00000DF7, 0x00000022, 0x00000000, 0x00040047, 0x00000DF7, 0x00000021,
|
||||
0x00000000, 0x00020013, 0x00000008, 0x00030021, 0x00000502, 0x00000008,
|
||||
0x00030016, 0x0000000D, 0x00000020, 0x00040015, 0x0000000B, 0x00000020,
|
||||
0x00000000, 0x00040015, 0x0000000C, 0x00000020, 0x00000001, 0x00040017,
|
||||
0x00000012, 0x0000000C, 0x00000002, 0x00040017, 0x0000001D, 0x0000000D,
|
||||
0x00000004, 0x00040017, 0x00000011, 0x0000000B, 0x00000002, 0x0004002B,
|
||||
0x0000000D, 0x0000008A, 0x3F800000, 0x0004002B, 0x0000000D, 0x00000A0C,
|
||||
0x00000000, 0x0004002B, 0x0000000B, 0x000000B2, 0x7EF19FFF, 0x0004002B,
|
||||
0x0000000D, 0x00000018, 0x40000000, 0x00090019, 0x00000096, 0x0000000D,
|
||||
0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
|
||||
0x0003001B, 0x000001FE, 0x00000096, 0x00040020, 0x0000047B, 0x00000000,
|
||||
0x000001FE, 0x0004003B, 0x0000047B, 0x00000C4E, 0x00000000, 0x0004002B,
|
||||
0x0000000C, 0x00000A0B, 0x00000000, 0x0004002B, 0x0000000C, 0x00000A08,
|
||||
0xFFFFFFFF, 0x0005002C, 0x00000012, 0x0000070B, 0x00000A0B, 0x00000A08,
|
||||
0x0005002C, 0x00000012, 0x0000070E, 0x00000A08, 0x00000A0B, 0x0004002B,
|
||||
0x0000000C, 0x00000A0E, 0x00000001, 0x0005002C, 0x00000012, 0x00000720,
|
||||
0x00000A0E, 0x00000A0B, 0x0005002C, 0x00000012, 0x00000723, 0x00000A0B,
|
||||
0x00000A0E, 0x0004002B, 0x0000000B, 0x00000A0A, 0x00000000, 0x0004002B,
|
||||
0x0000000B, 0x00000A0D, 0x00000001, 0x0004002B, 0x0000000B, 0x00000A10,
|
||||
0x00000002, 0x00040017, 0x00000013, 0x0000000D, 0x00000002, 0x0004002B,
|
||||
0x0000000D, 0x0000025D, 0xC0800000, 0x0004002B, 0x0000000D, 0x00000B69,
|
||||
0x40800000, 0x0004002B, 0x0000000D, 0x0000045E, 0xBE400000, 0x00040020,
|
||||
0x00000004, 0x00040017, 0x00000011, 0x0000000B, 0x00000002, 0x00040020,
|
||||
0x0000029A, 0x00000001, 0x0000001D, 0x0004003B, 0x0000029A, 0x00000C93,
|
||||
0x00000001, 0x0004001E, 0x000003F2, 0x00000012, 0x0000000D, 0x00040020,
|
||||
0x0000066F, 0x00000009, 0x000003F2, 0x0004003B, 0x0000066F, 0x00001342,
|
||||
0x00000009, 0x00040020, 0x0000028F, 0x00000009, 0x00000012, 0x00040020,
|
||||
0x0000028A, 0x00000009, 0x0000000D, 0x00040020, 0x0000029B, 0x00000003,
|
||||
0x0000001D, 0x0004003B, 0x0000029B, 0x00001400, 0x00000003, 0x00040020,
|
||||
0x0000028B, 0x00000003, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A13,
|
||||
0x00000003, 0x0004002B, 0x0000000D, 0x0000016E, 0x3E800000, 0x00050036,
|
||||
0x00000001, 0x00040017, 0x00000013, 0x0000000D, 0x00000002, 0x0004001E,
|
||||
0x000003F2, 0x00000012, 0x0000000D, 0x00040020, 0x0000066F, 0x00000009,
|
||||
0x000003F2, 0x0004003B, 0x0000066F, 0x00000BEC, 0x00000009, 0x0004002B,
|
||||
0x0000000C, 0x00000A0B, 0x00000000, 0x00040020, 0x0000028F, 0x00000009,
|
||||
0x00000012, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x00040020,
|
||||
0x0000028A, 0x00000009, 0x0000000D, 0x0004002B, 0x0000000B, 0x00000A0A,
|
||||
0x00000000, 0x00040020, 0x0000029B, 0x00000003, 0x0000001D, 0x0004003B,
|
||||
0x0000029B, 0x00000CB5, 0x00000003, 0x00040020, 0x0000028B, 0x00000003,
|
||||
0x0000000D, 0x0004002B, 0x0000000B, 0x00000A0D, 0x00000001, 0x0004002B,
|
||||
0x0000000B, 0x00000A10, 0x00000002, 0x0004002B, 0x0000000D, 0x0000008A,
|
||||
0x3F800000, 0x0004002B, 0x0000000B, 0x00000A13, 0x00000003, 0x0004002B,
|
||||
0x0000000D, 0x00000A0C, 0x00000000, 0x0004002B, 0x0000000B, 0x000000B2,
|
||||
0x7EF19FFF, 0x0004002B, 0x0000000D, 0x00000018, 0x40000000, 0x00090019,
|
||||
0x00000096, 0x0000000D, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000001, 0x00000000, 0x0003001B, 0x000001FE, 0x00000096, 0x00040020,
|
||||
0x0000047B, 0x00000000, 0x000001FE, 0x0004003B, 0x0000047B, 0x00000DF7,
|
||||
0x00000000, 0x0004002B, 0x0000000C, 0x00000A08, 0xFFFFFFFF, 0x0005002C,
|
||||
0x00000012, 0x0000070B, 0x00000A0B, 0x00000A08, 0x0005002C, 0x00000012,
|
||||
0x0000070E, 0x00000A08, 0x00000A0B, 0x0005002C, 0x00000012, 0x00000720,
|
||||
0x00000A0E, 0x00000A0B, 0x0005002C, 0x00000012, 0x00000723, 0x00000A0B,
|
||||
0x00000A0E, 0x0004002B, 0x0000000D, 0x0000025D, 0xC0800000, 0x0004002B,
|
||||
0x0000000D, 0x00000B69, 0x40800000, 0x0004002B, 0x0000000D, 0x0000045E,
|
||||
0xBE400000, 0x0004002B, 0x0000000D, 0x0000016E, 0x3E800000, 0x00050036,
|
||||
0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8, 0x00006175,
|
||||
0x0004003D, 0x0000001D, 0x0000488B, 0x00000C93, 0x0007004F, 0x00000013,
|
||||
0x000036B8, 0x0000488B, 0x0000488B, 0x00000000, 0x00000001, 0x0004006E,
|
||||
0x00000012, 0x000044F8, 0x000036B8, 0x00050041, 0x0000028F, 0x00004B4F,
|
||||
0x00001342, 0x00000A0B, 0x0004003D, 0x00000012, 0x00005926, 0x00004B4F,
|
||||
0x00000BEC, 0x00000A0B, 0x0004003D, 0x00000012, 0x00005926, 0x00004B4F,
|
||||
0x00050082, 0x00000012, 0x00005B10, 0x000044F8, 0x00005926, 0x0004007C,
|
||||
0x00000011, 0x000026D2, 0x00005B10, 0x00050041, 0x0000028A, 0x00005205,
|
||||
0x00001342, 0x00000A0E, 0x0004003D, 0x0000000D, 0x000056DD, 0x00005205,
|
||||
0x00000BEC, 0x00000A0E, 0x0004003D, 0x0000000D, 0x000056DD, 0x00005205,
|
||||
0x0004007C, 0x0000000B, 0x00004046, 0x000056DD, 0x0004007C, 0x00000012,
|
||||
0x00001B4E, 0x000026D2, 0x00050080, 0x00000012, 0x0000387C, 0x00001B4E,
|
||||
0x0000070B, 0x0004003D, 0x000001FE, 0x0000543D, 0x00000C4E, 0x00040064,
|
||||
0x0000070B, 0x0004003D, 0x000001FE, 0x0000543D, 0x00000DF7, 0x00040064,
|
||||
0x00000096, 0x000058C5, 0x0000543D, 0x0007005F, 0x0000001D, 0x00005F2D,
|
||||
0x000058C5, 0x0000387C, 0x00000002, 0x00000A0B, 0x00050051, 0x0000000D,
|
||||
0x0000566E, 0x00005F2D, 0x00000000, 0x00050051, 0x0000000D, 0x00001B12,
|
||||
|
@ -351,10 +351,10 @@ const uint32_t guest_output_ffx_fsr_rcas_ps[] = {
|
|||
0x0000000D, 0x00001989, 0x00005A69, 0x00004A13, 0x00050085, 0x0000000D,
|
||||
0x00003183, 0x000051B7, 0x00001989, 0x00050081, 0x0000000D, 0x00004229,
|
||||
0x00003183, 0x00004A12, 0x00050085, 0x0000000D, 0x00004ADD, 0x00004229,
|
||||
0x00002496, 0x00050041, 0x0000028B, 0x00004C80, 0x00001400, 0x00000A0A,
|
||||
0x00002496, 0x00050041, 0x0000028B, 0x00004C80, 0x00000CB5, 0x00000A0A,
|
||||
0x0003003E, 0x00004C80, 0x00002497, 0x00050041, 0x0000028B, 0x00004D14,
|
||||
0x00001400, 0x00000A0D, 0x0003003E, 0x00004D14, 0x00002498, 0x00050041,
|
||||
0x0000028B, 0x00004D15, 0x00001400, 0x00000A10, 0x0003003E, 0x00004D15,
|
||||
0x00004ADD, 0x00050041, 0x0000028B, 0x00005B08, 0x00001400, 0x00000A13,
|
||||
0x00000CB5, 0x00000A0D, 0x0003003E, 0x00004D14, 0x00002498, 0x00050041,
|
||||
0x0000028B, 0x00004D15, 0x00000CB5, 0x00000A10, 0x0003003E, 0x00004D15,
|
||||
0x00004ADD, 0x00050041, 0x0000028B, 0x00005B08, 0x00000CB5, 0x00000A13,
|
||||
0x0003003E, 0x00005B08, 0x0000008A, 0x000100FD, 0x00010038,
|
||||
};
|
||||
|
|
|
@ -8,10 +8,12 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %5663 "main" %22044 %gl_VertexIndex
|
||||
OpMemberDecorate %_struct_1032 0 BuiltIn Position
|
||||
OpMemberDecorate %_struct_1032 1 BuiltIn PointSize
|
||||
OpDecorate %_struct_1032 Block
|
||||
OpEntryPoint Vertex %5663 "main" %4930 %gl_VertexIndex
|
||||
OpMemberDecorate %_struct_2935 0 BuiltIn Position
|
||||
OpMemberDecorate %_struct_2935 1 BuiltIn PointSize
|
||||
OpMemberDecorate %_struct_2935 2 BuiltIn ClipDistance
|
||||
OpMemberDecorate %_struct_2935 3 BuiltIn CullDistance
|
||||
OpDecorate %_struct_2935 Block
|
||||
OpMemberDecorate %_struct_1030 0 Offset 0
|
||||
OpMemberDecorate %_struct_1030 1 Offset 8
|
||||
OpDecorate %_struct_1030 Block
|
||||
|
@ -20,22 +22,23 @@
|
|||
%1282 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_struct_1032 = OpTypeStruct %v4float %float
|
||||
%_ptr_Output__struct_1032 = OpTypePointer Output %_struct_1032
|
||||
%22044 = OpVariable %_ptr_Output__struct_1032 Output
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%_arr_float_uint_1 = OpTypeArray %float %uint_1
|
||||
%_struct_2935 = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
|
||||
%_ptr_Output__struct_2935 = OpTypePointer Output %_struct_2935
|
||||
%4930 = OpVariable %_ptr_Output__struct_2935 Output
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%v2float = OpTypeVector %float 2
|
||||
%_struct_1030 = OpTypeStruct %v2float %v2float
|
||||
%_ptr_PushConstant__struct_1030 = OpTypePointer PushConstant %_struct_1030
|
||||
%4930 = OpVariable %_ptr_PushConstant__struct_1030 PushConstant
|
||||
%3052 = OpVariable %_ptr_PushConstant__struct_1030 PushConstant
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
%_ptr_Input_int = OpTypePointer Input %int
|
||||
%gl_VertexIndex = OpVariable %_ptr_Input_int Input
|
||||
%uint = OpTypeInt 32 0
|
||||
%v2uint = OpTypeVector %uint 2
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%1819 = OpConstantComposite %v2uint %uint_0 %uint_1
|
||||
%int_1 = OpConstant %int 1
|
||||
%float_0 = OpConstant %float 0
|
||||
|
@ -44,7 +47,7 @@
|
|||
%1828 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||
%5663 = OpFunction %void None %1282
|
||||
%23915 = OpLabel
|
||||
%7053 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_0
|
||||
%7053 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_0
|
||||
%17516 = OpLoad %v2float %7053
|
||||
%23241 = OpLoad %int %gl_VertexIndex
|
||||
%9480 = OpBitcast %uint %23241
|
||||
|
@ -52,14 +55,14 @@
|
|||
%14991 = OpShiftRightLogical %v2uint %15408 %1819
|
||||
%17567 = OpBitwiseAnd %v2uint %14991 %1828
|
||||
%7856 = OpConvertUToF %v2float %17567
|
||||
%12606 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_1
|
||||
%12606 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_1
|
||||
%24011 = OpLoad %v2float %12606
|
||||
%17243 = OpFMul %v2float %7856 %24011
|
||||
%16594 = OpFAdd %v2float %17516 %17243
|
||||
%10599 = OpCompositeExtract %float %16594 0
|
||||
%13956 = OpCompositeExtract %float %16594 1
|
||||
%18260 = OpCompositeConstruct %v4float %10599 %13956 %float_0 %float_1
|
||||
%12055 = OpAccessChain %_ptr_Output_v4float %22044 %int_0
|
||||
%12055 = OpAccessChain %_ptr_Output_v4float %4930 %int_0
|
||||
OpStore %12055 %18260
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -69,42 +72,45 @@ const uint32_t guest_output_triangle_strip_rect_vs[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x00005DCC, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0007000F, 0x00000000,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x0000561C, 0x00001029, 0x00050048,
|
||||
0x00000408, 0x00000000, 0x0000000B, 0x00000000, 0x00050048, 0x00000408,
|
||||
0x00000001, 0x0000000B, 0x00000001, 0x00030047, 0x00000408, 0x00000002,
|
||||
0x00050048, 0x00000406, 0x00000000, 0x00000023, 0x00000000, 0x00050048,
|
||||
0x00000406, 0x00000001, 0x00000023, 0x00000008, 0x00030047, 0x00000406,
|
||||
0x00000002, 0x00040047, 0x00001029, 0x0000000B, 0x0000002A, 0x00020013,
|
||||
0x00000008, 0x00030021, 0x00000502, 0x00000008, 0x00030016, 0x0000000D,
|
||||
0x00000020, 0x00040017, 0x0000001D, 0x0000000D, 0x00000004, 0x0004001E,
|
||||
0x00000408, 0x0000001D, 0x0000000D, 0x00040020, 0x00000685, 0x00000003,
|
||||
0x00000408, 0x0004003B, 0x00000685, 0x0000561C, 0x00000003, 0x00040015,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00001342, 0x00001029, 0x00050048,
|
||||
0x00000B77, 0x00000000, 0x0000000B, 0x00000000, 0x00050048, 0x00000B77,
|
||||
0x00000001, 0x0000000B, 0x00000001, 0x00050048, 0x00000B77, 0x00000002,
|
||||
0x0000000B, 0x00000003, 0x00050048, 0x00000B77, 0x00000003, 0x0000000B,
|
||||
0x00000004, 0x00030047, 0x00000B77, 0x00000002, 0x00050048, 0x00000406,
|
||||
0x00000000, 0x00000023, 0x00000000, 0x00050048, 0x00000406, 0x00000001,
|
||||
0x00000023, 0x00000008, 0x00030047, 0x00000406, 0x00000002, 0x00040047,
|
||||
0x00001029, 0x0000000B, 0x0000002A, 0x00020013, 0x00000008, 0x00030021,
|
||||
0x00000502, 0x00000008, 0x00030016, 0x0000000D, 0x00000020, 0x00040017,
|
||||
0x0000001D, 0x0000000D, 0x00000004, 0x00040015, 0x0000000B, 0x00000020,
|
||||
0x00000000, 0x0004002B, 0x0000000B, 0x00000A0D, 0x00000001, 0x0004001C,
|
||||
0x0000022A, 0x0000000D, 0x00000A0D, 0x0006001E, 0x00000B77, 0x0000001D,
|
||||
0x0000000D, 0x0000022A, 0x0000022A, 0x00040020, 0x00000231, 0x00000003,
|
||||
0x00000B77, 0x0004003B, 0x00000231, 0x00001342, 0x00000003, 0x00040015,
|
||||
0x0000000C, 0x00000020, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A0B,
|
||||
0x00000000, 0x00040017, 0x00000013, 0x0000000D, 0x00000002, 0x0004001E,
|
||||
0x00000406, 0x00000013, 0x00000013, 0x00040020, 0x00000683, 0x00000009,
|
||||
0x00000406, 0x0004003B, 0x00000683, 0x00001342, 0x00000009, 0x00040020,
|
||||
0x00000406, 0x0004003B, 0x00000683, 0x00000BEC, 0x00000009, 0x00040020,
|
||||
0x00000290, 0x00000009, 0x00000013, 0x00040020, 0x00000289, 0x00000001,
|
||||
0x0000000C, 0x0004003B, 0x00000289, 0x00001029, 0x00000001, 0x00040015,
|
||||
0x0000000B, 0x00000020, 0x00000000, 0x00040017, 0x00000011, 0x0000000B,
|
||||
0x00000002, 0x0004002B, 0x0000000B, 0x00000A0A, 0x00000000, 0x0004002B,
|
||||
0x0000000B, 0x00000A0D, 0x00000001, 0x0005002C, 0x00000011, 0x0000071B,
|
||||
0x00000A0A, 0x00000A0D, 0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001,
|
||||
0x0004002B, 0x0000000D, 0x00000A0C, 0x00000000, 0x0004002B, 0x0000000D,
|
||||
0x0000008A, 0x3F800000, 0x00040020, 0x0000029A, 0x00000003, 0x0000001D,
|
||||
0x0005002C, 0x00000011, 0x00000724, 0x00000A0D, 0x00000A0D, 0x00050036,
|
||||
0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8, 0x00005D6B,
|
||||
0x00050041, 0x00000290, 0x00001B8D, 0x00001342, 0x00000A0B, 0x0004003D,
|
||||
0x00000013, 0x0000446C, 0x00001B8D, 0x0004003D, 0x0000000C, 0x00005AC9,
|
||||
0x00001029, 0x0004007C, 0x0000000B, 0x00002508, 0x00005AC9, 0x00050050,
|
||||
0x00000011, 0x00003C30, 0x00002508, 0x00002508, 0x000500C2, 0x00000011,
|
||||
0x00003A8F, 0x00003C30, 0x0000071B, 0x000500C7, 0x00000011, 0x0000449F,
|
||||
0x00003A8F, 0x00000724, 0x00040070, 0x00000013, 0x00001EB0, 0x0000449F,
|
||||
0x00050041, 0x00000290, 0x0000313E, 0x00001342, 0x00000A0E, 0x0004003D,
|
||||
0x00000013, 0x00005DCB, 0x0000313E, 0x00050085, 0x00000013, 0x0000435B,
|
||||
0x00001EB0, 0x00005DCB, 0x00050081, 0x00000013, 0x000040D2, 0x0000446C,
|
||||
0x0000435B, 0x00050051, 0x0000000D, 0x00002967, 0x000040D2, 0x00000000,
|
||||
0x00050051, 0x0000000D, 0x00003684, 0x000040D2, 0x00000001, 0x00070050,
|
||||
0x0000001D, 0x00004754, 0x00002967, 0x00003684, 0x00000A0C, 0x0000008A,
|
||||
0x00050041, 0x0000029A, 0x00002F17, 0x0000561C, 0x00000A0B, 0x0003003E,
|
||||
0x00002F17, 0x00004754, 0x000100FD, 0x00010038,
|
||||
0x0000000C, 0x0004003B, 0x00000289, 0x00001029, 0x00000001, 0x00040017,
|
||||
0x00000011, 0x0000000B, 0x00000002, 0x0004002B, 0x0000000B, 0x00000A0A,
|
||||
0x00000000, 0x0005002C, 0x00000011, 0x0000071B, 0x00000A0A, 0x00000A0D,
|
||||
0x0004002B, 0x0000000C, 0x00000A0E, 0x00000001, 0x0004002B, 0x0000000D,
|
||||
0x00000A0C, 0x00000000, 0x0004002B, 0x0000000D, 0x0000008A, 0x3F800000,
|
||||
0x00040020, 0x0000029A, 0x00000003, 0x0000001D, 0x0005002C, 0x00000011,
|
||||
0x00000724, 0x00000A0D, 0x00000A0D, 0x00050036, 0x00000008, 0x0000161F,
|
||||
0x00000000, 0x00000502, 0x000200F8, 0x00005D6B, 0x00050041, 0x00000290,
|
||||
0x00001B8D, 0x00000BEC, 0x00000A0B, 0x0004003D, 0x00000013, 0x0000446C,
|
||||
0x00001B8D, 0x0004003D, 0x0000000C, 0x00005AC9, 0x00001029, 0x0004007C,
|
||||
0x0000000B, 0x00002508, 0x00005AC9, 0x00050050, 0x00000011, 0x00003C30,
|
||||
0x00002508, 0x00002508, 0x000500C2, 0x00000011, 0x00003A8F, 0x00003C30,
|
||||
0x0000071B, 0x000500C7, 0x00000011, 0x0000449F, 0x00003A8F, 0x00000724,
|
||||
0x00040070, 0x00000013, 0x00001EB0, 0x0000449F, 0x00050041, 0x00000290,
|
||||
0x0000313E, 0x00000BEC, 0x00000A0E, 0x0004003D, 0x00000013, 0x00005DCB,
|
||||
0x0000313E, 0x00050085, 0x00000013, 0x0000435B, 0x00001EB0, 0x00005DCB,
|
||||
0x00050081, 0x00000013, 0x000040D2, 0x0000446C, 0x0000435B, 0x00050051,
|
||||
0x0000000D, 0x00002967, 0x000040D2, 0x00000000, 0x00050051, 0x0000000D,
|
||||
0x00003684, 0x000040D2, 0x00000001, 0x00070050, 0x0000001D, 0x00004754,
|
||||
0x00002967, 0x00003684, 0x00000A0C, 0x0000008A, 0x00050041, 0x0000029A,
|
||||
0x00002F17, 0x00001342, 0x00000A0B, 0x0003003E, 0x00002F17, 0x00004754,
|
||||
0x000100FD, 0x00010038,
|
||||
};
|
||||
|
|
|
@ -8,44 +8,37 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %5663 "main" %5120 %5049 %3877
|
||||
OpEntryPoint Fragment %5663 "main" %3080 %5914 %4693
|
||||
OpExecutionMode %5663 OriginUpperLeft
|
||||
OpDecorate %5120 RelaxedPrecision
|
||||
OpDecorate %5120 Location 0
|
||||
OpDecorate %5049 RelaxedPrecision
|
||||
OpDecorate %5049 Location 1
|
||||
OpDecorate %20754 RelaxedPrecision
|
||||
OpDecorate %5818 RelaxedPrecision
|
||||
OpDecorate %3080 Location 0
|
||||
OpDecorate %5914 Location 1
|
||||
OpDecorate %5818 DescriptorSet 0
|
||||
OpDecorate %5818 Binding 0
|
||||
OpDecorate %24285 RelaxedPrecision
|
||||
OpDecorate %3877 Location 0
|
||||
OpDecorate %6686 RelaxedPrecision
|
||||
OpDecorate %8939 RelaxedPrecision
|
||||
OpDecorate %4693 Location 0
|
||||
%void = OpTypeVoid
|
||||
%1282 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5120 = OpVariable %_ptr_Output_v4float Output
|
||||
%3080 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%5049 = OpVariable %_ptr_Input_v4float Input
|
||||
%5914 = OpVariable %_ptr_Input_v4float Input
|
||||
%150 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%510 = OpTypeSampledImage %150
|
||||
%_ptr_UniformConstant_510 = OpTypePointer UniformConstant %510
|
||||
%5818 = OpVariable %_ptr_UniformConstant_510 UniformConstant
|
||||
%v2float = OpTypeVector %float 2
|
||||
%_ptr_Input_v2float = OpTypePointer Input %v2float
|
||||
%3877 = OpVariable %_ptr_Input_v2float Input
|
||||
%4693 = OpVariable %_ptr_Input_v2float Input
|
||||
%float_0 = OpConstant %float 0
|
||||
%5663 = OpFunction %void None %1282
|
||||
%24607 = OpLabel
|
||||
%20754 = OpLoad %v4float %5049
|
||||
%20754 = OpLoad %v4float %5914
|
||||
%24285 = OpLoad %510 %5818
|
||||
%8179 = OpLoad %v2float %3877
|
||||
%8179 = OpLoad %v2float %4693
|
||||
%6686 = OpImageSampleExplicitLod %v4float %24285 %8179 Lod %float_0
|
||||
%8939 = OpFMul %v4float %20754 %6686
|
||||
OpStore %5120 %8939
|
||||
OpStore %3080 %8939
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
#endif
|
||||
|
@ -54,29 +47,26 @@ const uint32_t immediate_ps[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x00006020, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x0008000F, 0x00000004,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00001400, 0x000013B9, 0x00000F25,
|
||||
0x00030010, 0x0000161F, 0x00000007, 0x00030047, 0x00001400, 0x00000000,
|
||||
0x00040047, 0x00001400, 0x0000001E, 0x00000000, 0x00030047, 0x000013B9,
|
||||
0x00000000, 0x00040047, 0x000013B9, 0x0000001E, 0x00000001, 0x00030047,
|
||||
0x00005112, 0x00000000, 0x00030047, 0x000016BA, 0x00000000, 0x00040047,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000C08, 0x0000171A, 0x00001255,
|
||||
0x00030010, 0x0000161F, 0x00000007, 0x00040047, 0x00000C08, 0x0000001E,
|
||||
0x00000000, 0x00040047, 0x0000171A, 0x0000001E, 0x00000001, 0x00040047,
|
||||
0x000016BA, 0x00000022, 0x00000000, 0x00040047, 0x000016BA, 0x00000021,
|
||||
0x00000000, 0x00030047, 0x00005EDD, 0x00000000, 0x00040047, 0x00000F25,
|
||||
0x0000001E, 0x00000000, 0x00030047, 0x00001A1E, 0x00000000, 0x00030047,
|
||||
0x000022EB, 0x00000000, 0x00020013, 0x00000008, 0x00030021, 0x00000502,
|
||||
0x00000008, 0x00030016, 0x0000000D, 0x00000020, 0x00040017, 0x0000001D,
|
||||
0x0000000D, 0x00000004, 0x00040020, 0x0000029A, 0x00000003, 0x0000001D,
|
||||
0x0004003B, 0x0000029A, 0x00001400, 0x00000003, 0x00040020, 0x0000029B,
|
||||
0x00000001, 0x0000001D, 0x0004003B, 0x0000029B, 0x000013B9, 0x00000001,
|
||||
0x00090019, 0x00000096, 0x0000000D, 0x00000001, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000001, 0x00000000, 0x0003001B, 0x000001FE, 0x00000096,
|
||||
0x00040020, 0x0000047B, 0x00000000, 0x000001FE, 0x0004003B, 0x0000047B,
|
||||
0x000016BA, 0x00000000, 0x00040017, 0x00000013, 0x0000000D, 0x00000002,
|
||||
0x00040020, 0x00000290, 0x00000001, 0x00000013, 0x0004003B, 0x00000290,
|
||||
0x00000F25, 0x00000001, 0x0004002B, 0x0000000D, 0x00000A0C, 0x00000000,
|
||||
0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502, 0x000200F8,
|
||||
0x0000601F, 0x0004003D, 0x0000001D, 0x00005112, 0x000013B9, 0x0004003D,
|
||||
0x000001FE, 0x00005EDD, 0x000016BA, 0x0004003D, 0x00000013, 0x00001FF3,
|
||||
0x00000F25, 0x00070058, 0x0000001D, 0x00001A1E, 0x00005EDD, 0x00001FF3,
|
||||
0x00000002, 0x00000A0C, 0x00050085, 0x0000001D, 0x000022EB, 0x00005112,
|
||||
0x00001A1E, 0x0003003E, 0x00001400, 0x000022EB, 0x000100FD, 0x00010038,
|
||||
0x00000000, 0x00040047, 0x00001255, 0x0000001E, 0x00000000, 0x00020013,
|
||||
0x00000008, 0x00030021, 0x00000502, 0x00000008, 0x00030016, 0x0000000D,
|
||||
0x00000020, 0x00040017, 0x0000001D, 0x0000000D, 0x00000004, 0x00040020,
|
||||
0x0000029A, 0x00000003, 0x0000001D, 0x0004003B, 0x0000029A, 0x00000C08,
|
||||
0x00000003, 0x00040020, 0x0000029B, 0x00000001, 0x0000001D, 0x0004003B,
|
||||
0x0000029B, 0x0000171A, 0x00000001, 0x00090019, 0x00000096, 0x0000000D,
|
||||
0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
|
||||
0x0003001B, 0x000001FE, 0x00000096, 0x00040020, 0x0000047B, 0x00000000,
|
||||
0x000001FE, 0x0004003B, 0x0000047B, 0x000016BA, 0x00000000, 0x00040017,
|
||||
0x00000013, 0x0000000D, 0x00000002, 0x00040020, 0x00000290, 0x00000001,
|
||||
0x00000013, 0x0004003B, 0x00000290, 0x00001255, 0x00000001, 0x0004002B,
|
||||
0x0000000D, 0x00000A0C, 0x00000000, 0x00050036, 0x00000008, 0x0000161F,
|
||||
0x00000000, 0x00000502, 0x000200F8, 0x0000601F, 0x0004003D, 0x0000001D,
|
||||
0x00005112, 0x0000171A, 0x0004003D, 0x000001FE, 0x00005EDD, 0x000016BA,
|
||||
0x0004003D, 0x00000013, 0x00001FF3, 0x00001255, 0x00070058, 0x0000001D,
|
||||
0x00001A1E, 0x00005EDD, 0x00001FF3, 0x00000002, 0x00000A0C, 0x00050085,
|
||||
0x0000001D, 0x000022EB, 0x00005112, 0x00001A1E, 0x0003003E, 0x00000C08,
|
||||
0x000022EB, 0x000100FD, 0x00010038,
|
||||
};
|
||||
|
|
|
@ -8,18 +8,17 @@
|
|||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %5663 "main" %3877 %3591 %5049 %5249 %9116 %4372
|
||||
OpDecorate %3877 Location 0
|
||||
OpDecorate %3591 Location 1
|
||||
OpDecorate %5049 RelaxedPrecision
|
||||
OpDecorate %5049 Location 1
|
||||
OpDecorate %5249 RelaxedPrecision
|
||||
OpDecorate %5249 Location 2
|
||||
OpDecorate %11060 RelaxedPrecision
|
||||
OpMemberDecorate %_struct_1032 0 BuiltIn Position
|
||||
OpMemberDecorate %_struct_1032 1 BuiltIn PointSize
|
||||
OpDecorate %_struct_1032 Block
|
||||
OpDecorate %4372 Location 0
|
||||
OpEntryPoint Vertex %5663 "main" %4159 %4693 %3080 %5914 %4930 %5474
|
||||
OpDecorate %4159 Location 0
|
||||
OpDecorate %4693 Location 1
|
||||
OpDecorate %3080 Location 1
|
||||
OpDecorate %5914 Location 2
|
||||
OpMemberDecorate %_struct_419 0 BuiltIn Position
|
||||
OpMemberDecorate %_struct_419 1 BuiltIn PointSize
|
||||
OpMemberDecorate %_struct_419 2 BuiltIn ClipDistance
|
||||
OpMemberDecorate %_struct_419 3 BuiltIn CullDistance
|
||||
OpDecorate %_struct_419 Block
|
||||
OpDecorate %5474 Location 0
|
||||
OpMemberDecorate %_struct_997 0 Offset 0
|
||||
OpDecorate %_struct_997 Block
|
||||
%void = OpTypeVoid
|
||||
|
@ -27,44 +26,48 @@
|
|||
%float = OpTypeFloat 32
|
||||
%v2float = OpTypeVector %float 2
|
||||
%_ptr_Output_v2float = OpTypePointer Output %v2float
|
||||
%3877 = OpVariable %_ptr_Output_v2float Output
|
||||
%4159 = OpVariable %_ptr_Output_v2float Output
|
||||
%_ptr_Input_v2float = OpTypePointer Input %v2float
|
||||
%3591 = OpVariable %_ptr_Input_v2float Input
|
||||
%4693 = OpVariable %_ptr_Input_v2float Input
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5049 = OpVariable %_ptr_Output_v4float Output
|
||||
%3080 = OpVariable %_ptr_Output_v4float Output
|
||||
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
||||
%5249 = OpVariable %_ptr_Input_v4float Input
|
||||
%_struct_1032 = OpTypeStruct %v4float %float
|
||||
%_ptr_Output__struct_1032 = OpTypePointer Output %_struct_1032
|
||||
%9116 = OpVariable %_ptr_Output__struct_1032 Output
|
||||
%5914 = OpVariable %_ptr_Input_v4float Input
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%_arr_float_uint_1 = OpTypeArray %float %uint_1
|
||||
%_struct_419 = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
|
||||
%_ptr_Output__struct_419 = OpTypePointer Output %_struct_419
|
||||
%4930 = OpVariable %_ptr_Output__struct_419 Output
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%4372 = OpVariable %_ptr_Input_v2float Input
|
||||
%5474 = OpVariable %_ptr_Input_v2float Input
|
||||
%_struct_997 = OpTypeStruct %v2float
|
||||
%_ptr_PushConstant__struct_997 = OpTypePointer PushConstant %_struct_997
|
||||
%4930 = OpVariable %_ptr_PushConstant__struct_997 PushConstant
|
||||
%3052 = OpVariable %_ptr_PushConstant__struct_997 PushConstant
|
||||
%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float
|
||||
%float_2 = OpConstant %float 2
|
||||
%2981 = OpConstantComposite %v2float %float_2 %float_2
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_0 = OpConstant %float 0
|
||||
%768 = OpConstantComposite %v2float %float_1 %float_1
|
||||
%float_0 = OpConstant %float 0
|
||||
%5663 = OpFunction %void None %1282
|
||||
%24626 = OpLabel
|
||||
%20581 = OpLoad %v2float %3591
|
||||
OpStore %3877 %20581
|
||||
%11060 = OpLoad %v4float %5249
|
||||
OpStore %5049 %11060
|
||||
%10541 = OpLoad %v2float %4372
|
||||
%22255 = OpAccessChain %_ptr_PushConstant_v2float %4930 %int_0
|
||||
%12183 = OpLoad %v2float %22255
|
||||
%15944 = OpFMul %v2float %10541 %12183
|
||||
%15861 = OpVectorTimesScalar %v2float %15944 %float_2
|
||||
%10536 = OpFSub %v2float %15861 %768
|
||||
%7674 = OpCompositeExtract %float %10536 0
|
||||
%15569 = OpCompositeExtract %float %10536 1
|
||||
%18260 = OpCompositeConstruct %v4float %7674 %15569 %float_0 %float_1
|
||||
%12055 = OpAccessChain %_ptr_Output_v4float %9116 %int_0
|
||||
%20581 = OpLoad %v2float %4693
|
||||
OpStore %4159 %20581
|
||||
%11060 = OpLoad %v4float %5914
|
||||
OpStore %3080 %11060
|
||||
%10541 = OpLoad %v2float %5474
|
||||
%22255 = OpAccessChain %_ptr_PushConstant_v2float %3052 %int_0
|
||||
%12012 = OpLoad %v2float %22255
|
||||
%17501 = OpFMul %v2float %10541 %12012
|
||||
%13314 = OpFMul %v2float %17501 %2981
|
||||
%6620 = OpFSub %v2float %13314 %768
|
||||
%22715 = OpCompositeExtract %float %6620 0
|
||||
%15569 = OpCompositeExtract %float %6620 1
|
||||
%18260 = OpCompositeConstruct %v4float %22715 %15569 %float_0 %float_1
|
||||
%12055 = OpAccessChain %_ptr_Output_v4float %4930 %int_0
|
||||
OpStore %12055 %18260
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -74,44 +77,48 @@ const uint32_t immediate_vs[] = {
|
|||
0x07230203, 0x00010000, 0x0008000A, 0x00006033, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000B, 0x00000001, 0x4C534C47, 0x6474732E, 0x3035342E,
|
||||
0x00000000, 0x0003000E, 0x00000000, 0x00000001, 0x000B000F, 0x00000000,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x00000F25, 0x00000E07, 0x000013B9,
|
||||
0x00001481, 0x0000239C, 0x00001114, 0x00040047, 0x00000F25, 0x0000001E,
|
||||
0x00000000, 0x00040047, 0x00000E07, 0x0000001E, 0x00000001, 0x00030047,
|
||||
0x000013B9, 0x00000000, 0x00040047, 0x000013B9, 0x0000001E, 0x00000001,
|
||||
0x00030047, 0x00001481, 0x00000000, 0x00040047, 0x00001481, 0x0000001E,
|
||||
0x00000002, 0x00030047, 0x00002B34, 0x00000000, 0x00050048, 0x00000408,
|
||||
0x00000000, 0x0000000B, 0x00000000, 0x00050048, 0x00000408, 0x00000001,
|
||||
0x0000000B, 0x00000001, 0x00030047, 0x00000408, 0x00000002, 0x00040047,
|
||||
0x00001114, 0x0000001E, 0x00000000, 0x00050048, 0x000003E5, 0x00000000,
|
||||
0x00000023, 0x00000000, 0x00030047, 0x000003E5, 0x00000002, 0x00020013,
|
||||
0x00000008, 0x00030021, 0x00000502, 0x00000008, 0x00030016, 0x0000000D,
|
||||
0x00000020, 0x00040017, 0x00000013, 0x0000000D, 0x00000002, 0x00040020,
|
||||
0x00000290, 0x00000003, 0x00000013, 0x0004003B, 0x00000290, 0x00000F25,
|
||||
0x00000003, 0x00040020, 0x00000291, 0x00000001, 0x00000013, 0x0004003B,
|
||||
0x00000291, 0x00000E07, 0x00000001, 0x00040017, 0x0000001D, 0x0000000D,
|
||||
0x00000004, 0x00040020, 0x0000029A, 0x00000003, 0x0000001D, 0x0004003B,
|
||||
0x0000029A, 0x000013B9, 0x00000003, 0x00040020, 0x0000029B, 0x00000001,
|
||||
0x0000001D, 0x0004003B, 0x0000029B, 0x00001481, 0x00000001, 0x0004001E,
|
||||
0x00000408, 0x0000001D, 0x0000000D, 0x00040020, 0x00000685, 0x00000003,
|
||||
0x00000408, 0x0004003B, 0x00000685, 0x0000239C, 0x00000003, 0x00040015,
|
||||
0x0000000C, 0x00000020, 0x00000001, 0x0004002B, 0x0000000C, 0x00000A0B,
|
||||
0x00000000, 0x0004003B, 0x00000291, 0x00001114, 0x00000001, 0x0003001E,
|
||||
0x000003E5, 0x00000013, 0x00040020, 0x00000662, 0x00000009, 0x000003E5,
|
||||
0x0004003B, 0x00000662, 0x00001342, 0x00000009, 0x00040020, 0x00000292,
|
||||
0x00000009, 0x00000013, 0x0004002B, 0x0000000D, 0x00000018, 0x40000000,
|
||||
0x0004002B, 0x0000000D, 0x0000008A, 0x3F800000, 0x0004002B, 0x0000000D,
|
||||
0x00000A0C, 0x00000000, 0x0005002C, 0x00000013, 0x00000300, 0x0000008A,
|
||||
0x0000008A, 0x00050036, 0x00000008, 0x0000161F, 0x00000000, 0x00000502,
|
||||
0x000200F8, 0x00006032, 0x0004003D, 0x00000013, 0x00005065, 0x00000E07,
|
||||
0x0003003E, 0x00000F25, 0x00005065, 0x0004003D, 0x0000001D, 0x00002B34,
|
||||
0x00001481, 0x0003003E, 0x000013B9, 0x00002B34, 0x0004003D, 0x00000013,
|
||||
0x0000292D, 0x00001114, 0x00050041, 0x00000292, 0x000056EF, 0x00001342,
|
||||
0x00000A0B, 0x0004003D, 0x00000013, 0x00002F97, 0x000056EF, 0x00050085,
|
||||
0x00000013, 0x00003E48, 0x0000292D, 0x00002F97, 0x0005008E, 0x00000013,
|
||||
0x00003DF5, 0x00003E48, 0x00000018, 0x00050083, 0x00000013, 0x00002928,
|
||||
0x00003DF5, 0x00000300, 0x00050051, 0x0000000D, 0x00001DFA, 0x00002928,
|
||||
0x00000000, 0x00050051, 0x0000000D, 0x00003CD1, 0x00002928, 0x00000001,
|
||||
0x00070050, 0x0000001D, 0x00004754, 0x00001DFA, 0x00003CD1, 0x00000A0C,
|
||||
0x0000008A, 0x00050041, 0x0000029A, 0x00002F17, 0x0000239C, 0x00000A0B,
|
||||
0x0003003E, 0x00002F17, 0x00004754, 0x000100FD, 0x00010038,
|
||||
0x0000161F, 0x6E69616D, 0x00000000, 0x0000103F, 0x00001255, 0x00000C08,
|
||||
0x0000171A, 0x00001342, 0x00001562, 0x00040047, 0x0000103F, 0x0000001E,
|
||||
0x00000000, 0x00040047, 0x00001255, 0x0000001E, 0x00000001, 0x00040047,
|
||||
0x00000C08, 0x0000001E, 0x00000001, 0x00040047, 0x0000171A, 0x0000001E,
|
||||
0x00000002, 0x00050048, 0x000001A3, 0x00000000, 0x0000000B, 0x00000000,
|
||||
0x00050048, 0x000001A3, 0x00000001, 0x0000000B, 0x00000001, 0x00050048,
|
||||
0x000001A3, 0x00000002, 0x0000000B, 0x00000003, 0x00050048, 0x000001A3,
|
||||
0x00000003, 0x0000000B, 0x00000004, 0x00030047, 0x000001A3, 0x00000002,
|
||||
0x00040047, 0x00001562, 0x0000001E, 0x00000000, 0x00050048, 0x000003E5,
|
||||
0x00000000, 0x00000023, 0x00000000, 0x00030047, 0x000003E5, 0x00000002,
|
||||
0x00020013, 0x00000008, 0x00030021, 0x00000502, 0x00000008, 0x00030016,
|
||||
0x0000000D, 0x00000020, 0x00040017, 0x00000013, 0x0000000D, 0x00000002,
|
||||
0x00040020, 0x00000290, 0x00000003, 0x00000013, 0x0004003B, 0x00000290,
|
||||
0x0000103F, 0x00000003, 0x00040020, 0x00000291, 0x00000001, 0x00000013,
|
||||
0x0004003B, 0x00000291, 0x00001255, 0x00000001, 0x00040017, 0x0000001D,
|
||||
0x0000000D, 0x00000004, 0x00040020, 0x0000029A, 0x00000003, 0x0000001D,
|
||||
0x0004003B, 0x0000029A, 0x00000C08, 0x00000003, 0x00040020, 0x0000029B,
|
||||
0x00000001, 0x0000001D, 0x0004003B, 0x0000029B, 0x0000171A, 0x00000001,
|
||||
0x00040015, 0x0000000B, 0x00000020, 0x00000000, 0x0004002B, 0x0000000B,
|
||||
0x00000A0D, 0x00000001, 0x0004001C, 0x00000261, 0x0000000D, 0x00000A0D,
|
||||
0x0006001E, 0x000001A3, 0x0000001D, 0x0000000D, 0x00000261, 0x00000261,
|
||||
0x00040020, 0x00000420, 0x00000003, 0x000001A3, 0x0004003B, 0x00000420,
|
||||
0x00001342, 0x00000003, 0x00040015, 0x0000000C, 0x00000020, 0x00000001,
|
||||
0x0004002B, 0x0000000C, 0x00000A0B, 0x00000000, 0x0004003B, 0x00000291,
|
||||
0x00001562, 0x00000001, 0x0003001E, 0x000003E5, 0x00000013, 0x00040020,
|
||||
0x00000662, 0x00000009, 0x000003E5, 0x0004003B, 0x00000662, 0x00000BEC,
|
||||
0x00000009, 0x00040020, 0x00000292, 0x00000009, 0x00000013, 0x0004002B,
|
||||
0x0000000D, 0x00000018, 0x40000000, 0x0005002C, 0x00000013, 0x00000BA5,
|
||||
0x00000018, 0x00000018, 0x0004002B, 0x0000000D, 0x0000008A, 0x3F800000,
|
||||
0x0005002C, 0x00000013, 0x00000300, 0x0000008A, 0x0000008A, 0x0004002B,
|
||||
0x0000000D, 0x00000A0C, 0x00000000, 0x00050036, 0x00000008, 0x0000161F,
|
||||
0x00000000, 0x00000502, 0x000200F8, 0x00006032, 0x0004003D, 0x00000013,
|
||||
0x00005065, 0x00001255, 0x0003003E, 0x0000103F, 0x00005065, 0x0004003D,
|
||||
0x0000001D, 0x00002B34, 0x0000171A, 0x0003003E, 0x00000C08, 0x00002B34,
|
||||
0x0004003D, 0x00000013, 0x0000292D, 0x00001562, 0x00050041, 0x00000292,
|
||||
0x000056EF, 0x00000BEC, 0x00000A0B, 0x0004003D, 0x00000013, 0x00002EEC,
|
||||
0x000056EF, 0x00050085, 0x00000013, 0x0000445D, 0x0000292D, 0x00002EEC,
|
||||
0x00050085, 0x00000013, 0x00003402, 0x0000445D, 0x00000BA5, 0x00050083,
|
||||
0x00000013, 0x000019DC, 0x00003402, 0x00000300, 0x00050051, 0x0000000D,
|
||||
0x000058BB, 0x000019DC, 0x00000000, 0x00050051, 0x0000000D, 0x00003CD1,
|
||||
0x000019DC, 0x00000001, 0x00070050, 0x0000001D, 0x00004754, 0x000058BB,
|
||||
0x00003CD1, 0x00000A0C, 0x0000008A, 0x00050041, 0x0000029A, 0x00002F17,
|
||||
0x00001342, 0x00000A0B, 0x0003003E, 0x00002F17, 0x00004754, 0x000100FD,
|
||||
0x00010038,
|
||||
};
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_UI_SHADERS_DITHER_8BPC_XESLI_
|
||||
#define XENIA_UI_SHADERS_DITHER_8BPC_XESLI_
|
||||
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
// At least #version 420.
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
layout(push_constant) uniform XeBilinearConstants {
|
||||
// 16 occupied by the vertex shader.
|
||||
layout(offset = 16) ivec2 xe_bilinear_output_offset;
|
||||
layout(offset = 24) vec2 xe_bilinear_output_size_inv;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D xe_texture;
|
||||
|
||||
layout(location = 0) out vec4 xe_frag_color;
|
||||
|
||||
void main() {
|
||||
uvec2 pixel_coord = uvec2(ivec2(gl_FragCoord.xy) - xe_bilinear_output_offset);
|
||||
// + 0.5 so the origin is at the pixel center, and at 1:1 the original pixel
|
||||
// is taken.
|
||||
// Interpolating the four colors in the perceptual space because doing it in
|
||||
// linear space causes, in particular, bright text on a dark background to
|
||||
// become too thick, and aliasing of bright parts on top of dark areas to be
|
||||
// too apparent (4D5307E6 HUD, for example, mainly the edges of the
|
||||
// multiplayer score bars).
|
||||
xe_frag_color.rgb =
|
||||
textureLod(xe_texture,
|
||||
(vec2(pixel_coord) + 0.5) * xe_bilinear_output_size_inv,
|
||||
0.0).rgb;
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_frag_color.rgb =
|
||||
clamp(xe_frag_color.rgb + XeDitherOffset8bpc(pixel_coord),
|
||||
vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
xe_frag_color.a = 1.0;
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
cbuffer XeBilinearConstants : register(b0) {
|
||||
int2 xe_bilinear_output_offset;
|
||||
float2 xe_bilinear_output_size_inv;
|
||||
};
|
||||
|
||||
Texture2D<float3> xe_texture : register(t0);
|
||||
SamplerState xe_sampler_linear_clamp : register(s0);
|
||||
|
||||
float4 main(float4 xe_position : SV_Position) : SV_Target {
|
||||
uint2 pixel_coord = uint2(int2(xe_position.xy) - xe_bilinear_output_offset);
|
||||
// + 0.5 so the origin is at the pixel center, and at 1:1 the original pixel
|
||||
// is taken.
|
||||
// Interpolating the four colors in the perceptual space because doing it in
|
||||
// linear space causes, in particular, bright text on a dark background to
|
||||
// become too thick, and aliasing of bright parts on top of dark areas to be
|
||||
// too apparent (4D5307E6 HUD, for example, mainly the edges of the
|
||||
// multiplayer score bars).
|
||||
float3 color = xe_texture.SampleLevel(
|
||||
xe_sampler_linear_clamp,
|
||||
(float2(pixel_coord) + 0.5f) * xe_bilinear_output_size_inv,
|
||||
0.0f);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Not clamping because a normalized format is explicitly requested on DXGI.
|
||||
color += XeDitherOffset8bpc(pixel_coord);
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
return float4(color, 1.0f);
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#include "guest_output_bilinear.glsli"
|
|
@ -1 +0,0 @@
|
|||
#include "guest_output_bilinear.hlsli"
|
|
@ -0,0 +1,10 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "guest_output_bilinear.xesli"
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
// 16 used by the vertex shader (GLSL push constant offsets are across
|
||||
// stages).
|
||||
xesl_block_offset_member(16, c0.x, xesl_int2, xe_bilinear_output_offset)
|
||||
// CasSetup const1.x.
|
||||
xesl_block_offset_member(24, c0.z, xesl_float2, xe_bilinear_output_size_inv)
|
||||
xesl_push_constants_end
|
||||
|
||||
xesl_entry
|
||||
xesl_sampler(xesl_sampler2D, xe_bilinear_source, set=0, binding=0, t0,
|
||||
space0, s0, space0)
|
||||
xesl_entry_bindings_end
|
||||
xesl_input_frag_coord
|
||||
xesl_entry_signature_next
|
||||
xesl_output_color(xesl_float4, xe_bilinear_color, 0)
|
||||
xesl_entry_signature_end
|
||||
xesl_uint2 pixel_coord =
|
||||
xesl_uint2(xesl_int2(xesl_FragCoord.xy) -
|
||||
xesl_push_constant(xe_bilinear_output_offset));
|
||||
// + 0.5 so the origin is at the pixel center, and at 1:1 the original pixel
|
||||
// is taken.
|
||||
// Interpolating the four colors in the perceptual space because doing it in
|
||||
// linear space causes, in particular, bright text on a dark background to
|
||||
// become too thick, and aliasing of bright parts on top of dark areas to be
|
||||
// too apparent (4D5307E6 HUD, for example, mainly the edges of the
|
||||
// multiplayer score bars).
|
||||
xe_bilinear_color.rgb =
|
||||
xesl_textureSampleLod2D_comb(
|
||||
xe_bilinear_source,
|
||||
(xesl_float2(pixel_coord) + 0.5) *
|
||||
xesl_push_constant(xe_bilinear_output_size_inv),
|
||||
0.0).rgb;
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_bilinear_color.rgb =
|
||||
xesl_saturate(xe_bilinear_color.rgb + XeDitherOffset8bpc(pixel_coord));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
xe_bilinear_color.a = 1.0;
|
||||
xesl_entry_end
|
|
@ -1,4 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_bilinear.glsli"
|
|
@ -1,2 +0,0 @@
|
|||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_bilinear.hlsli"
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_bilinear.xesli"
|
|
@ -1,57 +0,0 @@
|
|||
// At least #version 420.
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
layout(push_constant) uniform XeCasResampleConstants {
|
||||
// 16 occupied by the vertex shader.
|
||||
layout(offset = 16) ivec2 xe_cas_output_offset;
|
||||
// CasSetup const0.xy.
|
||||
layout(offset = 24) vec2 xe_cas_input_output_size_ratio;
|
||||
// CasSetup const1.x.
|
||||
layout(offset = 32) float xe_cas_sharpness_post_setup;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D xe_texture;
|
||||
|
||||
layout(location = 0) out vec4 xe_frag_color;
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_GLSL 1
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_a.h"
|
||||
vec3 CasLoad(ivec2 p) {
|
||||
return texelFetch(xe_texture, p, 0).rgb;
|
||||
}
|
||||
void CasInput(inout float r, inout float g, inout float b) {
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
r *= r;
|
||||
g *= g;
|
||||
b *= b;
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_cas.h"
|
||||
|
||||
void main() {
|
||||
uvec2 pixel_coord = uvec2(ivec2(gl_FragCoord.xy) - xe_cas_output_offset);
|
||||
// CasSetup with smaller push constant usage.
|
||||
uvec4 cas_const_0 =
|
||||
uvec4(floatBitsToUint(xe_cas_input_output_size_ratio),
|
||||
floatBitsToUint(0.5 * xe_cas_input_output_size_ratio - 0.5));
|
||||
uvec4 cas_const_1 =
|
||||
uvec4(floatBitsToUint(xe_cas_sharpness_post_setup),
|
||||
packHalf2x16(vec2(xe_cas_sharpness_post_setup, 0.0)),
|
||||
floatBitsToUint(8.0 * xe_cas_input_output_size_ratio.x), 0u);
|
||||
CasFilter(xe_frag_color.r, xe_frag_color.g, xe_frag_color.b, pixel_coord,
|
||||
cas_const_0, cas_const_1, false);
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
xe_frag_color.rgb = sqrt(xe_frag_color.rgb);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_frag_color.rgb =
|
||||
clamp(xe_frag_color.rgb + XeDitherOffset8bpc(pixel_coord),
|
||||
vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
// Force alpha to 1 to make sure the surface won't be translucent.
|
||||
xe_frag_color.a = 1.0;
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
cbuffer XeCasResampleConstants : register(b0) {
|
||||
int2 xe_cas_output_offset;
|
||||
// CasSetup const0.xy.
|
||||
float2 xe_cas_input_output_size_ratio;
|
||||
// CasSetup const1.x.
|
||||
float xe_cas_sharpness_post_setup;
|
||||
};
|
||||
|
||||
Texture2D<float3> xe_texture : register(t0);
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_HLSL 1
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_a.h"
|
||||
float3 CasLoad(int2 p) {
|
||||
return xe_texture.Load(int3(p, 0)).rgb;
|
||||
}
|
||||
void CasInput(inout float r, inout float g, inout float b) {
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
r *= r;
|
||||
g *= g;
|
||||
b *= b;
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_cas.h"
|
||||
|
||||
float4 main(float4 xe_position : SV_Position) : SV_Target {
|
||||
uint2 pixel_coord = uint2(int2(xe_position.xy) - xe_cas_output_offset);
|
||||
// CasSetup with smaller root signature usage.
|
||||
uint4 cas_const_0 =
|
||||
uint4(asuint(xe_cas_input_output_size_ratio),
|
||||
asuint(0.5f * xe_cas_input_output_size_ratio - 0.5f));
|
||||
uint4 cas_const_1 =
|
||||
uint4(asuint(xe_cas_sharpness_post_setup),
|
||||
f32tof16(xe_cas_sharpness_post_setup),
|
||||
asuint(8.0f * xe_cas_input_output_size_ratio.x), 0u);
|
||||
float3 cas_color;
|
||||
CasFilter(cas_color.r, cas_color.g, cas_color.b, pixel_coord, cas_const_0,
|
||||
cas_const_1, false);
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
cas_color = sqrt(cas_color);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Not clamping because a normalized format is explicitly requested on DXGI.
|
||||
cas_color += XeDitherOffset8bpc(pixel_coord);
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
return float4(cas_color, 1.0f);
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#include "guest_output_ffx_cas_resample.glsli"
|
|
@ -1 +0,0 @@
|
|||
#include "guest_output_ffx_cas_resample.hlsli"
|
|
@ -0,0 +1,10 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "guest_output_ffx_cas_resample.xesli"
|
|
@ -0,0 +1,83 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
#include "amd_language.xesli"
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
// 16 used by the vertex shader (GLSL push constant offsets are across
|
||||
// stages).
|
||||
xesl_block_offset_member(16, c0.x, xesl_int2, xe_cas_output_offset)
|
||||
// CasSetup const0.xy.
|
||||
xesl_block_offset_member(24, c0.z, xesl_float2,
|
||||
xe_cas_input_output_size_ratio)
|
||||
// CasSetup const1.x.
|
||||
xesl_block_offset_member(32, c1.x, float, xe_cas_sharpness_post_setup)
|
||||
xesl_push_constants_end
|
||||
|
||||
// Forward declaration because CasLoad needs xe_cas_source from the entry point
|
||||
// bindings.
|
||||
void CasFilter(out float pixel_r, out float pixel_g, out float pixel_b,
|
||||
xesl_uint2 pixel_position, xesl_uint4 const0, xesl_uint4 const1,
|
||||
bool no_scaling);
|
||||
|
||||
xesl_entry
|
||||
xesl_fetchSampler(xesl_sampler2D, xe_cas_source, set=0, binding=0, t0, space0)
|
||||
xesl_entry_bindings_end
|
||||
xesl_input_frag_coord
|
||||
xesl_entry_signature_next
|
||||
xesl_output_color(xesl_float4, xe_cas_color, 0)
|
||||
xesl_entry_signature_end
|
||||
xesl_uint2 pixel_coord =
|
||||
xesl_uint2(xesl_int2(xesl_FragCoord.xy) -
|
||||
xesl_push_constant(xe_cas_output_offset));
|
||||
// CasSetup with smaller push constants usage.
|
||||
xesl_uint4 cas_const_0 =
|
||||
xesl_uint4(
|
||||
xesl_floatBitsToUint(
|
||||
xesl_push_constant(xe_cas_input_output_size_ratio)),
|
||||
xesl_floatBitsToUint(
|
||||
0.5 * xesl_push_constant(xe_cas_input_output_size_ratio) - 0.5));
|
||||
xesl_uint4 cas_const_1 =
|
||||
xesl_uint4(
|
||||
xesl_floatBitsToUint(xesl_push_constant(xe_cas_sharpness_post_setup)),
|
||||
xesl_packHalf2x16(xesl_float2(
|
||||
xesl_push_constant(xe_cas_sharpness_post_setup), 0.0)),
|
||||
xesl_floatBitsToUint(8.0), 0u);
|
||||
CasFilter(xe_cas_color.r, xe_cas_color.g, xe_cas_color.b, pixel_coord,
|
||||
cas_const_0, cas_const_1, false);
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
xe_cas_color.rgb = sqrt(xe_cas_color.rgb);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_cas_color.rgb =
|
||||
xesl_saturate(xe_cas_color.rgb + XeDitherOffset8bpc(pixel_coord));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
// Force alpha to 1 to make sure the surface won't be translucent.
|
||||
xe_cas_color.a = 1.0;
|
||||
xesl_entry_end
|
||||
|
||||
#define A_GPU 1
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_a.h"
|
||||
xesl_float3 CasLoad(xesl_int2 p) {
|
||||
return xesl_texelFetch2D_comb(xe_cas_source, p, 0).rgb;
|
||||
}
|
||||
void CasInput(inout float r, inout float g, inout float b) {
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
r *= r;
|
||||
g *= g;
|
||||
b *= b;
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_cas.h"
|
|
@ -1,4 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_cas_resample.glsli"
|
|
@ -1,2 +0,0 @@
|
|||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_cas_resample.hlsli"
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_cas_resample.xesli"
|
|
@ -1,53 +0,0 @@
|
|||
// At least #version 420.
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
layout(push_constant) uniform XeCasSharpenConstants {
|
||||
// 16 occupied by the vertex shader.
|
||||
layout(offset = 16) ivec2 xe_cas_output_offset;
|
||||
// CasSetup const1.x.
|
||||
layout(offset = 24) float xe_cas_sharpness_post_setup;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D xe_texture;
|
||||
|
||||
layout(location = 0) out vec4 xe_frag_color;
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_GLSL 1
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_a.h"
|
||||
vec3 CasLoad(ivec2 p) {
|
||||
return texelFetch(xe_texture, p, 0).rgb;
|
||||
}
|
||||
void CasInput(inout float r, inout float g, inout float b) {
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
r *= r;
|
||||
g *= g;
|
||||
b *= b;
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_cas.h"
|
||||
|
||||
void main() {
|
||||
uvec2 pixel_coord = uvec2(ivec2(gl_FragCoord.xy) - xe_cas_output_offset);
|
||||
// CasSetup with smaller push constant usage.
|
||||
uvec4 cas_const_0 = floatBitsToUint(vec4(1.0, 1.0, 0.0, 0.0));
|
||||
uvec4 cas_const_1 =
|
||||
uvec4(floatBitsToUint(xe_cas_sharpness_post_setup),
|
||||
packHalf2x16(vec2(xe_cas_sharpness_post_setup, 0.0)),
|
||||
floatBitsToUint(8.0), 0u);
|
||||
CasFilter(xe_frag_color.r, xe_frag_color.g, xe_frag_color.b, pixel_coord,
|
||||
cas_const_0, cas_const_1, false);
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
xe_frag_color.rgb = sqrt(xe_frag_color.rgb);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_frag_color.rgb =
|
||||
clamp(xe_frag_color.rgb + XeDitherOffset8bpc(pixel_coord),
|
||||
vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
// Force alpha to 1 to make sure the surface won't be translucent.
|
||||
xe_frag_color.a = 1.0;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
cbuffer XeCasSharpenConstants : register(b0) {
|
||||
int2 xe_cas_output_offset;
|
||||
// CasSetup const1.x.
|
||||
float xe_cas_sharpness_post_setup;
|
||||
};
|
||||
|
||||
Texture2D<float3> xe_texture : register(t0);
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_HLSL 1
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_a.h"
|
||||
float3 CasLoad(int2 p) {
|
||||
return xe_texture.Load(int3(p, 0)).rgb;
|
||||
}
|
||||
void CasInput(inout float r, inout float g, inout float b) {
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
r *= r;
|
||||
g *= g;
|
||||
b *= b;
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_cas.h"
|
||||
|
||||
float4 main(float4 xe_position : SV_Position) : SV_Target {
|
||||
uint2 pixel_coord = uint2(int2(xe_position.xy) - xe_cas_output_offset);
|
||||
// CasSetup with smaller root signature usage.
|
||||
uint4 cas_const_0 = asuint(float4(1.0f, 1.0f, 0.0f, 0.0f));
|
||||
uint4 cas_const_1 =
|
||||
uint4(asuint(xe_cas_sharpness_post_setup),
|
||||
f32tof16(xe_cas_sharpness_post_setup), asuint(8.0f), 0u);
|
||||
float3 cas_color;
|
||||
CasFilter(cas_color.r, cas_color.g, cas_color.b, pixel_coord, cas_const_0,
|
||||
cas_const_1, true);
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
cas_color = sqrt(cas_color);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Not clamping because a normalized format is explicitly requested on DXGI.
|
||||
cas_color += XeDitherOffset8bpc(pixel_coord);
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
return float4(cas_color, 1.0f);
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#include "guest_output_ffx_cas_sharpen.glsli"
|
|
@ -1 +0,0 @@
|
|||
#include "guest_output_ffx_cas_sharpen.hlsli"
|
|
@ -0,0 +1,10 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "guest_output_ffx_cas_sharpen.xesli"
|
|
@ -0,0 +1,76 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
#include "amd_language.xesli"
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
// 16 used by the vertex shader (GLSL push constant offsets are across
|
||||
// stages).
|
||||
xesl_block_offset_member(16, c0.x, xesl_int2, xe_cas_output_offset)
|
||||
// CasSetup const1.x.
|
||||
xesl_block_offset_member(24, c0.z, float, xe_cas_sharpness_post_setup)
|
||||
xesl_push_constants_end
|
||||
|
||||
// Forward declaration because CasLoad needs xe_cas_source from the entry point
|
||||
// bindings.
|
||||
void CasFilter(out float pixel_r, out float pixel_g, out float pixel_b,
|
||||
xesl_uint2 pixel_position, xesl_uint4 const0, xesl_uint4 const1,
|
||||
bool no_scaling);
|
||||
|
||||
xesl_entry
|
||||
xesl_fetchSampler(xesl_sampler2D, xe_cas_source, set=0, binding=0, t0, space0)
|
||||
xesl_entry_bindings_end
|
||||
xesl_input_frag_coord
|
||||
xesl_entry_signature_next
|
||||
xesl_output_color(xesl_float4, xe_cas_color, 0)
|
||||
xesl_entry_signature_end
|
||||
xesl_uint2 pixel_coord =
|
||||
xesl_uint2(xesl_int2(xesl_FragCoord.xy) -
|
||||
xesl_push_constant(xe_cas_output_offset));
|
||||
// CasSetup with smaller push constants usage.
|
||||
xesl_uint4 cas_const_0 =
|
||||
xesl_floatBitsToUint(xesl_float4(1.0, 1.0, 0.0, 0.0));
|
||||
xesl_uint4 cas_const_1 =
|
||||
xesl_uint4(
|
||||
xesl_floatBitsToUint(xesl_push_constant(xe_cas_sharpness_post_setup)),
|
||||
xesl_packHalf2x16(xesl_float2(
|
||||
xesl_push_constant(xe_cas_sharpness_post_setup), 0.0)),
|
||||
xesl_floatBitsToUint(8.0), 0u);
|
||||
CasFilter(xe_cas_color.r, xe_cas_color.g, xe_cas_color.b, pixel_coord,
|
||||
cas_const_0, cas_const_1, true);
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
xe_cas_color.rgb = sqrt(xe_cas_color.rgb);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_cas_color.rgb =
|
||||
xesl_saturate(xe_cas_color.rgb + XeDitherOffset8bpc(pixel_coord));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
// Force alpha to 1 to make sure the surface won't be translucent.
|
||||
xe_cas_color.a = 1.0;
|
||||
xesl_entry_end
|
||||
|
||||
#define A_GPU 1
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_a.h"
|
||||
xesl_float3 CasLoad(xesl_int2 p) {
|
||||
return xesl_texelFetch2D_comb(xe_cas_source, p, 0).rgb;
|
||||
}
|
||||
void CasInput(inout float r, inout float g, inout float b) {
|
||||
// Linear conversion approximation as recommended in the CAS presentation.
|
||||
r *= r;
|
||||
g *= g;
|
||||
b *= b;
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-CAS/ffx-cas/ffx_cas.h"
|
|
@ -1,4 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_cas_sharpen.glsli"
|
|
@ -1,2 +0,0 @@
|
|||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_cas_sharpen.hlsli"
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_cas_sharpen.xesli"
|
|
@ -1,38 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
|
||||
layout(push_constant) uniform XeFsrEasuConstants {
|
||||
// 16 occupied by the vertex shader.
|
||||
layout(offset = 16) vec2 xe_fsr_easu_input_output_size_ratio;
|
||||
layout(offset = 24) vec2 xe_fsr_easu_input_size_inv;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D xe_texture;
|
||||
|
||||
layout(location = 0) out vec4 xe_frag_color;
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_GLSL 1
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_a.h"
|
||||
#define FSR_EASU_F 1
|
||||
vec4 FsrEasuRF(vec2 p) { return textureGather(xe_texture, p, 0); }
|
||||
vec4 FsrEasuGF(vec2 p) { return textureGather(xe_texture, p, 1); }
|
||||
vec4 FsrEasuBF(vec2 p) { return textureGather(xe_texture, p, 2); }
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_fsr1.h"
|
||||
|
||||
void main() {
|
||||
// FsrEasuCon with smaller push constant usage.
|
||||
uvec4 easu_const_0 =
|
||||
uvec4(floatBitsToUint(xe_fsr_easu_input_output_size_ratio),
|
||||
floatBitsToUint(0.5 * xe_fsr_easu_input_output_size_ratio - 0.5));
|
||||
uvec4 easu_const_1 = floatBitsToUint(vec4(1.0, 1.0, 1.0, -1.0) *
|
||||
xe_fsr_easu_input_size_inv.xyxy);
|
||||
uvec4 easu_const_2 = floatBitsToUint(vec4(-1.0, 2.0, 1.0, 2.0) *
|
||||
xe_fsr_easu_input_size_inv.xyxy);
|
||||
uvec4 easu_const_3 =
|
||||
uvec4(floatBitsToUint(0.0),
|
||||
floatBitsToUint(4.0 * xe_fsr_easu_input_size_inv.y), 0u, 0u);
|
||||
FsrEasuF(xe_frag_color.rgb, uvec2(gl_FragCoord.xy), easu_const_0,
|
||||
easu_const_1, easu_const_2, easu_const_3);
|
||||
xe_frag_color.a = 1.0;
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
cbuffer XeFsrEasuConstants : register(b0) {
|
||||
float2 xe_fsr_easu_input_output_size_ratio;
|
||||
float2 xe_fsr_easu_input_size_inv;
|
||||
};
|
||||
|
||||
Texture2D<float3> xe_texture : register(t0);
|
||||
SamplerState xe_sampler_linear_clamp : register(s0);
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_HLSL 1
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_a.h"
|
||||
#define FSR_EASU_F 1
|
||||
float4 FsrEasuRF(float2 p) {
|
||||
return xe_texture.GatherRed(xe_sampler_linear_clamp, p);
|
||||
}
|
||||
float4 FsrEasuGF(float2 p) {
|
||||
return xe_texture.GatherGreen(xe_sampler_linear_clamp, p);
|
||||
}
|
||||
float4 FsrEasuBF(float2 p) {
|
||||
return xe_texture.GatherBlue(xe_sampler_linear_clamp, p);
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_fsr1.h"
|
||||
|
||||
float4 main(float4 xe_position : SV_Position) : SV_Target {
|
||||
// FsrEasuCon with smaller root signature usage.
|
||||
uint4 easu_const_0 =
|
||||
uint4(asuint(xe_fsr_easu_input_output_size_ratio),
|
||||
asuint(0.5f * xe_fsr_easu_input_output_size_ratio - 0.5f));
|
||||
uint4 easu_const_1 =
|
||||
asuint(float4(1.0f, 1.0f, 1.0f, -1.0f) * xe_fsr_easu_input_size_inv.xyxy);
|
||||
uint4 easu_const_2 =
|
||||
asuint(float4(-1.0f, 2.0f, 1.0f, 2.0f) * xe_fsr_easu_input_size_inv.xyxy);
|
||||
uint4 easu_const_3 =
|
||||
uint4(asuint(0.0f), asuint(4.0f * xe_fsr_easu_input_size_inv.y), 0u, 0u);
|
||||
float3 easu_color;
|
||||
FsrEasuF(easu_color, uint2(xe_position.xy), easu_const_0, easu_const_1,
|
||||
easu_const_2, easu_const_3);
|
||||
return float4(easu_color, 1.0f);
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
#include "amd_language.xesli"
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
// 16 used by the vertex shader (GLSL push constant offsets are across
|
||||
// stages).
|
||||
xesl_block_offset_member(16, c0.x, xesl_float2,
|
||||
xe_fsr_easu_input_output_size_ratio)
|
||||
xesl_block_offset_member(24, c0.z, xesl_float2, xe_fsr_easu_input_size_inv)
|
||||
xesl_push_constants_end
|
||||
|
||||
// Forward declaration because FsrEasu#F need xe_fsr_easu_source from the entry
|
||||
// point bindings.
|
||||
void FsrEasuF(out xesl_float3 pixel, xesl_uint2 pixel_position,
|
||||
xesl_uint4 const0, xesl_uint4 const1, xesl_uint4 const2,
|
||||
xesl_uint4 const3);
|
||||
|
||||
xesl_entry
|
||||
xesl_sampler(xesl_sampler2D, xe_fsr_easu_source, set=0, binding=0, t0, space0,
|
||||
s0, space0)
|
||||
xesl_entry_bindings_end
|
||||
xesl_input_frag_coord
|
||||
xesl_entry_signature_next
|
||||
xesl_output_color(xesl_float4, xe_fsr_easu_color, 0)
|
||||
xesl_entry_signature_end
|
||||
// FsrEasuCon with smaller push constant usage.
|
||||
xesl_uint4 easu_const_0 =
|
||||
xesl_uint4(
|
||||
xesl_floatBitsToUint(
|
||||
xesl_push_constant(xe_fsr_easu_input_output_size_ratio)),
|
||||
xesl_floatBitsToUint(
|
||||
0.5 * xesl_push_constant(xe_fsr_easu_input_output_size_ratio) -
|
||||
0.5));
|
||||
xesl_uint4 easu_const_1 =
|
||||
xesl_floatBitsToUint(xesl_float4(1.0, 1.0, 1.0, -1.0) *
|
||||
xesl_push_constant(xe_fsr_easu_input_size_inv).xyxy);
|
||||
xesl_uint4 easu_const_2 =
|
||||
xesl_floatBitsToUint(xesl_float4(-1.0, 2.0, 1.0, 2.0) *
|
||||
xesl_push_constant(xe_fsr_easu_input_size_inv).xyxy);
|
||||
xesl_uint4 easu_const_3 =
|
||||
xesl_uint4(xesl_floatBitsToUint(0.0),
|
||||
xesl_floatBitsToUint(
|
||||
4.0 * xesl_push_constant(xe_fsr_easu_input_size_inv).y),
|
||||
0u, 0u);
|
||||
FsrEasuF(xe_fsr_easu_color.rgb, xesl_uint2(xesl_FragCoord.xy), easu_const_0,
|
||||
easu_const_1, easu_const_2, easu_const_3);
|
||||
xe_fsr_easu_color.a = 1.0;
|
||||
xesl_entry_end
|
||||
|
||||
#define A_GPU 1
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_a.h"
|
||||
#define FSR_EASU_F 1
|
||||
xesl_float4 FsrEasuRF(xesl_float2 p) {
|
||||
return xesl_textureGatherRed2D_comb(xe_fsr_easu_source, p);
|
||||
}
|
||||
xesl_float4 FsrEasuGF(xesl_float2 p) {
|
||||
return xesl_textureGatherGreen2D_comb(xe_fsr_easu_source, p);
|
||||
}
|
||||
xesl_float4 FsrEasuBF(xesl_float2 p) {
|
||||
return xesl_textureGatherBlue2D_comb(xe_fsr_easu_source, p);
|
||||
}
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_fsr1.h"
|
|
@ -1,45 +0,0 @@
|
|||
// At least #version 420.
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
layout(push_constant) uniform XeFsrRcasConstants {
|
||||
// 16 occupied by the vertex shader.
|
||||
layout(offset = 16) ivec2 xe_fsr_rcas_output_offset;
|
||||
// FsrRcasCon const0.x.
|
||||
layout(offset = 24) float xe_fsr_rcas_sharpness_post_setup;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D xe_texture;
|
||||
|
||||
layout(location = 0) out vec4 xe_frag_color;
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_GLSL 1
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_a.h"
|
||||
#define FSR_RCAS_F 1
|
||||
vec4 FsrRcasLoadF(ivec2 p) {
|
||||
return vec4(texelFetch(xe_texture, p, 0).rgb, 1.0);
|
||||
}
|
||||
void FsrRcasInputF(inout float r, inout float g, inout float b) {}
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_fsr1.h"
|
||||
|
||||
void main() {
|
||||
uvec2 pixel_coord = uvec2(ivec2(gl_FragCoord.xy) - xe_fsr_rcas_output_offset);
|
||||
// FsrRcasCon with smaller push constant usage.
|
||||
uvec4 rcas_const =
|
||||
uvec4(floatBitsToUint(xe_fsr_rcas_sharpness_post_setup),
|
||||
packHalf2x16(vec2(xe_fsr_rcas_sharpness_post_setup)), 0u, 0u);
|
||||
FsrRcasF(xe_frag_color.r, xe_frag_color.g, xe_frag_color.b, pixel_coord,
|
||||
rcas_const);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_frag_color.rgb =
|
||||
clamp(xe_frag_color.rgb + XeDitherOffset8bpc(pixel_coord),
|
||||
vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
// Force alpha to 1 to make sure the surface won't be translucent.
|
||||
xe_frag_color.a = 1.0;
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
cbuffer XeFsrRcasConstants : register(b0) {
|
||||
int2 xe_fsr_rcas_output_offset;
|
||||
// FsrRcasCon const0.x.
|
||||
float xe_fsr_rcas_sharpness_post_setup;
|
||||
};
|
||||
|
||||
Texture2D<float3> xe_texture : register(t0);
|
||||
|
||||
#define A_GPU 1
|
||||
#define A_HLSL 1
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_a.h"
|
||||
#define FSR_RCAS_F 1
|
||||
float4 FsrRcasLoadF(int2 p) {
|
||||
return float4(xe_texture.Load(int3(p, 0)).rgb, 1.0f);
|
||||
}
|
||||
void FsrRcasInputF(inout float r, inout float g, inout float b) {}
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_fsr1.h"
|
||||
|
||||
float4 main(float4 xe_position : SV_Position) : SV_Target {
|
||||
uint2 pixel_coord = uint2(int2(xe_position.xy) - xe_fsr_rcas_output_offset);
|
||||
// FsrRcasCon with smaller root signature usage.
|
||||
uint4 rcas_const =
|
||||
uint4(asuint(xe_fsr_rcas_sharpness_post_setup),
|
||||
f32tof16(xe_fsr_rcas_sharpness_post_setup) * 0x00010001u, 0u, 0u);
|
||||
float3 rcas_color;
|
||||
FsrRcasF(rcas_color.r, rcas_color.g, rcas_color.b, pixel_coord, rcas_const);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Not clamping because a normalized format is explicitly requested on DXGI.
|
||||
rcas_color += XeDitherOffset8bpc(pixel_coord);
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
return float4(rcas_color, 1.0f);
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#include "guest_output_ffx_fsr_rcas.glsli"
|
|
@ -1 +0,0 @@
|
|||
#include "guest_output_ffx_fsr_rcas.hlsli"
|
|
@ -0,0 +1,10 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "guest_output_ffx_fsr_rcas.xesli"
|
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
#include "amd_language.xesli"
|
||||
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
#include "dither_8bpc.xesli"
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
// 16 used by the vertex shader (GLSL push constant offsets are across
|
||||
// stages).
|
||||
xesl_block_offset_member(16, c0.x, xesl_int2,
|
||||
xe_fsr_rcas_output_offset)
|
||||
xesl_block_offset_member(24, c0.z, float, xe_fsr_rcas_sharpness_post_setup)
|
||||
xesl_push_constants_end
|
||||
|
||||
// Forward declaration because FsrRcasLoadF needs xe_fsr_rcas_source from the
|
||||
// entry point bindings.
|
||||
void FsrRcasF(out float pixel_r, out float pixel_g, out float pixel_b,
|
||||
xesl_uint2 pixel_position, xesl_uint4 constants);
|
||||
|
||||
xesl_entry
|
||||
xesl_fetchSampler(xesl_sampler2D, xe_fsr_rcas_source, set=0, binding=0, t0,
|
||||
space0)
|
||||
xesl_entry_bindings_end
|
||||
xesl_input_frag_coord
|
||||
xesl_entry_signature_next
|
||||
xesl_output_color(xesl_float4, xe_fsr_rcas_color, 0)
|
||||
xesl_entry_signature_end
|
||||
xesl_uint2 pixel_coord =
|
||||
xesl_uint2(xesl_int2(xesl_FragCoord.xy) -
|
||||
xesl_push_constant(xe_fsr_rcas_output_offset));
|
||||
float sharpness = xesl_push_constant(xe_fsr_rcas_sharpness_post_setup);
|
||||
// FsrRcasCon with smaller push constant usage.
|
||||
xesl_uint4 rcas_const =
|
||||
xesl_uint4(xesl_floatBitsToUint(sharpness),
|
||||
xesl_packHalf2x16(xesl_float2(sharpness, sharpness)), 0u, 0u);
|
||||
FsrRcasF(xe_fsr_rcas_color.r, xe_fsr_rcas_color.g, xe_fsr_rcas_color.b,
|
||||
pixel_coord, rcas_const);
|
||||
#if XE_GUEST_OUTPUT_DITHER
|
||||
// Clamping because on Vulkan, the surface may specify any format, including
|
||||
// floating-point.
|
||||
xe_fsr_rcas_color.rgb =
|
||||
xesl_saturate(xe_fsr_rcas_color.rgb + XeDitherOffset8bpc(pixel_coord));
|
||||
#endif // XE_GUEST_OUTPUT_DITHER
|
||||
// Force alpha to 1 to make sure the surface won't be translucent.
|
||||
xe_fsr_rcas_color.a = 1.0;
|
||||
xesl_entry_end
|
||||
|
||||
#define A_GPU 1
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_a.h"
|
||||
#define FSR_RCAS_F 1
|
||||
xesl_float4 FsrRcasLoadF(xesl_int2 p) {
|
||||
return xesl_float4(xesl_texelFetch2D_comb(xe_fsr_rcas_source, p, 0).rgb, 1.0);
|
||||
}
|
||||
void FsrRcasInputF(inout float r, inout float g, inout float b) {}
|
||||
#include "../../../../third_party/FidelityFX-FSR/ffx-fsr/ffx_fsr1.h"
|
|
@ -1,4 +0,0 @@
|
|||
#version 420
|
||||
#extension GL_GOOGLE_include_directive : require
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_fsr_rcas.glsli"
|
|
@ -1,2 +0,0 @@
|
|||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_fsr_rcas.hlsli"
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#define XE_GUEST_OUTPUT_DITHER 1
|
||||
#include "guest_output_ffx_fsr_rcas.xesli"
|
|
@ -1,17 +0,0 @@
|
|||
#version 310 es
|
||||
|
||||
layout(push_constant) uniform XeTriangleStripRectConstants {
|
||||
// If the layout is changed, update the base offset in all guest output
|
||||
// fragment shaders!
|
||||
vec2 xe_triangle_strip_rect_offset;
|
||||
// Can be negative.
|
||||
vec2 xe_triangle_strip_rect_size;
|
||||
};
|
||||
|
||||
void main() {
|
||||
// Passthrough - coordinate system differences are to be handled externally.
|
||||
gl_Position = vec4(xe_triangle_strip_rect_offset +
|
||||
vec2((uvec2(gl_VertexIndex) >> uvec2(0u, 1u)) & 1u) *
|
||||
xe_triangle_strip_rect_size,
|
||||
0.0, 1.0);
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
cbuffer XeTriangleStripRectConstants : register(b0) {
|
||||
float2 xe_triangle_strip_rect_offset;
|
||||
// Can be negative.
|
||||
float2 xe_triangle_strip_rect_size;
|
||||
};
|
||||
|
||||
void main(uint xe_vertex_id : SV_VertexID,
|
||||
out float4 xe_position : SV_Position) {
|
||||
// Passthrough - coordinate system differences are to be handled externally.
|
||||
xe_position = float4(xe_triangle_strip_rect_offset +
|
||||
float2((xe_vertex_id >> uint2(0u, 1u)) & 1u) *
|
||||
xe_triangle_strip_rect_size,
|
||||
0.0f, 1.0f);
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
// If the layout is changed, update the base offset in all guest output pixel
|
||||
// shaders!
|
||||
xesl_float2 xe_triangle_strip_rect_offset;
|
||||
// Can be negative.
|
||||
xesl_float2 xe_triangle_strip_rect_size;
|
||||
xesl_push_constants_end
|
||||
|
||||
xesl_entry
|
||||
xesl_entry_bindings_end
|
||||
xesl_input_vertex_id
|
||||
xesl_entry_signature_next
|
||||
xesl_output_position
|
||||
xesl_entry_signature_end
|
||||
xesl_Position =
|
||||
xesl_float4(
|
||||
xesl_push_constant(xe_triangle_strip_rect_offset) +
|
||||
xesl_float2((xesl_uint2(xesl_VertexID, xesl_VertexID) >>
|
||||
xesl_uint2(0u, 1u)) & 1u) *
|
||||
xesl_push_constant(xe_triangle_strip_rect_size),
|
||||
0.0, 1.0);
|
||||
xesl_entry_end
|
|
@ -1,14 +0,0 @@
|
|||
#version 310 es
|
||||
precision highp float;
|
||||
|
||||
layout(set = 0, binding = 0) uniform lowp sampler2D xe_immediate_texture;
|
||||
|
||||
layout(location = 0) in vec2 xe_var_texcoord;
|
||||
layout(location = 1) in lowp vec4 xe_var_color;
|
||||
|
||||
layout(location = 0) out lowp vec4 xe_frag_color;
|
||||
|
||||
void main() {
|
||||
xe_frag_color =
|
||||
xe_var_color * textureLod(xe_immediate_texture, xe_var_texcoord, 0.0);
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
Texture2D<float4> xe_immediate_texture : register(t0);
|
||||
SamplerState xe_immediate_sampler : register(s0);
|
||||
|
||||
struct XePixelShaderInput {
|
||||
float2 texcoord : TEXCOORD0;
|
||||
float4 color : TEXCOORD1;
|
||||
};
|
||||
|
||||
float4 main(XePixelShaderInput input) : SV_Target {
|
||||
return input.color * xe_immediate_texture.SampleLevel(xe_immediate_sampler,
|
||||
input.texcoord, 0.0f);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
xesl_entry
|
||||
xesl_sampler(xesl_sampler2D, xe_immediate_texture, set=0, binding=0, t0,
|
||||
space0, s0, space0)
|
||||
xesl_entry_bindings_end
|
||||
xesl_input(xesl_float2, xe_in_texcoord, 0, TEXCOORD)
|
||||
xesl_entry_signature_next
|
||||
xesl_input(xesl_float4, xe_in_color, 1, COLOR)
|
||||
xesl_entry_signature_next
|
||||
xesl_output_color(xesl_float4, xe_out_color, 0)
|
||||
xesl_entry_signature_end
|
||||
xe_out_color =
|
||||
xe_in_color *
|
||||
xesl_textureSampleLod2D_comb(xe_immediate_texture, xe_in_texcoord, 0.0);
|
||||
xesl_entry_end
|
|
@ -1,20 +0,0 @@
|
|||
#version 310 es
|
||||
|
||||
layout(push_constant) uniform XePushConstants {
|
||||
vec2 xe_coordinate_space_size_inv;
|
||||
};
|
||||
|
||||
layout(location = 0) in vec2 xe_attr_position;
|
||||
layout(location = 1) in vec2 xe_attr_texcoord;
|
||||
layout(location = 2) in lowp vec4 xe_attr_color;
|
||||
|
||||
layout(location = 0) out vec2 xe_var_texcoord;
|
||||
layout(location = 1) out lowp vec4 xe_var_color;
|
||||
|
||||
void main() {
|
||||
xe_var_texcoord = xe_attr_texcoord;
|
||||
xe_var_color = xe_attr_color;
|
||||
gl_Position =
|
||||
vec4(xe_attr_position * xe_coordinate_space_size_inv * 2.0 - 1.0, 0.0,
|
||||
1.0);
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
cbuffer XeImmediateVertexConstants : register(b0) {
|
||||
float2 xe_coordinate_space_size_inv;
|
||||
};
|
||||
|
||||
struct XeVertexShaderInput {
|
||||
float2 position : POSITION;
|
||||
float2 texcoord : TEXCOORD;
|
||||
float4 color : COLOR;
|
||||
};
|
||||
|
||||
struct XeVertexShaderOutput {
|
||||
float2 texcoord : TEXCOORD0;
|
||||
float4 color : TEXCOORD1;
|
||||
float4 position : SV_Position;
|
||||
};
|
||||
|
||||
XeVertexShaderOutput main(XeVertexShaderInput input) {
|
||||
XeVertexShaderOutput output;
|
||||
output.position = float4(
|
||||
input.position * xe_coordinate_space_size_inv * float2(2.0, -2.0) +
|
||||
float2(-1.0, 1.0), 0.0, 1.0);
|
||||
output.texcoord = input.texcoord;
|
||||
output.color = input.color;
|
||||
return output;
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xesl.xesli"
|
||||
|
||||
xesl_push_constants_begin(b0, space0)
|
||||
xesl_float2 xe_coordinate_space_size_inv;
|
||||
xesl_push_constants_end
|
||||
|
||||
xesl_entry
|
||||
xesl_entry_bindings_end
|
||||
xesl_input(xesl_float2, xe_in_position, 0, POSITION)
|
||||
xesl_entry_signature_next
|
||||
xesl_input(xesl_float2, xe_in_texcoord, 1, TEXCOORD)
|
||||
xesl_entry_signature_next
|
||||
xesl_input(xesl_float4, xe_in_color, 2, COLOR)
|
||||
xesl_entry_signature_next
|
||||
xesl_output(xesl_float2, xe_out_texcoord, 0, TEXCOORD)
|
||||
xesl_entry_signature_next
|
||||
xesl_output(xesl_float4, xe_out_color, 1, COLOR)
|
||||
xesl_entry_signature_next
|
||||
xesl_output_position
|
||||
xesl_entry_signature_end
|
||||
xe_out_texcoord = xe_in_texcoord;
|
||||
xe_out_color = xe_in_color;
|
||||
xesl_Position =
|
||||
xesl_float4(xe_in_position *
|
||||
xesl_push_constant(xe_coordinate_space_size_inv) *
|
||||
xesl_float2(2.0, 2.0 * XESL_Y_SCREEN_DIRECTION) -
|
||||
xesl_float2(1.0, XESL_Y_SCREEN_DIRECTION),
|
||||
0.0, 1.0);
|
||||
xesl_entry_end
|
|
@ -1,3 +1,12 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_UI_SHADERS_NOISE_XESLI_
|
||||
#define XENIA_UI_SHADERS_NOISE_XESLI_
|
||||
|
||||
|
|
|
@ -1,9 +1,39 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_UI_SHADERS_XESL_XESLI_
|
||||
#define XENIA_UI_SHADERS_XESL_XESLI_
|
||||
|
||||
// XESL_LANGUAGE_GLSL / HLSL are expected to be defined via compiler arguments.
|
||||
// XESL_LANGUAGE_GLSL / HLSL = 1 are expected to be defined via compiler
|
||||
// arguments.
|
||||
|
||||
// For functions, it's preferable to take the identifiers here from an existing
|
||||
// target language, such as GLSL or HLSL, prefixing them with xesl_, only
|
||||
// modifying the names when altering (generalizing or specializing usually)
|
||||
// their functionality compared to that of the original function. The preferred
|
||||
// name choice from all the shading languages is the name that reflects the
|
||||
// functionality the closest, especially if some languages have a narrower input
|
||||
// domain (for instance, HLSL has asuint that can accept both float and int,
|
||||
// while GLSL has floatBitsToUint that accepts only float - there are two
|
||||
// options here, a xesl_floatBitsToUint alias, or xesl_asuint overloads, but the
|
||||
// former is more precisely descriptive, so it's preferred; xesl_lerp is
|
||||
// preferred over xesl_mix because the former describes how exactly the mixing
|
||||
// will be performed), and / or that is the most visually consistent
|
||||
// (xesl_float4 over xesl_vec4 considering it's a float vector).
|
||||
|
||||
// Vectors.
|
||||
|
||||
// Scalars for definition consistency.
|
||||
#define xesl_bool bool
|
||||
#define xesl_int int
|
||||
#define xesl_uint uint
|
||||
#define xesl_float float
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define xesl_bool2 bvec2
|
||||
#define xesl_bool3 bvec3
|
||||
|
@ -33,13 +63,377 @@
|
|||
#endif // XESL_LANGUAGE_GLSL
|
||||
|
||||
// Declarations.
|
||||
//
|
||||
// Resource binding is very different between shading languages, so any
|
||||
// customizations are fine in it. All binding slots for all APIs, however,
|
||||
// should be explicitly specified by the shader for ease of manual lookup and
|
||||
// tweaking. They should be alphabetically ordered by the name of the target
|
||||
// shading language in the argument lists (GLSL before HLSL). For readability,
|
||||
// the `set=` and `binding=` specifiers, and register types and the `space`
|
||||
// prefix in HLSL, are exposed to the shader, even though they're redundant.
|
||||
//
|
||||
// The xesl_id_ prefix (with context-specific sub-prefixes) can be used to
|
||||
// create internal derivative identifiers (such as buffer block names from
|
||||
// instance names, or separate texture and sampler from a combined texture /
|
||||
// sampler for languages not supporting the latter).
|
||||
|
||||
// Shader entry point must be declared as:
|
||||
// xesl_entry
|
||||
// Everything here must be separated with xesl_entry_binding_next, with no
|
||||
// leading or trailing separators.
|
||||
// - Texel buffer, texture, sampler bindings.
|
||||
// xesl_entry_bindings_end
|
||||
// Everything here must be separated with xesl_entry_signature_next, with no
|
||||
// leading or trailing separators.
|
||||
// - Linked stage inputs.
|
||||
// - Linked system stage inputs (like pixel position).
|
||||
// - System stage inputs.
|
||||
// - Linked stage outputs.
|
||||
// - Linked system stage outputs (like vertex position).
|
||||
// - System stage outputs.
|
||||
// xesl_entry_signature_end
|
||||
// - Main function code.
|
||||
// xesl_entry_end
|
||||
// Bindings are in the entry point because they are passed this way in MSL.
|
||||
// Note that for the stage inputs / outputs, the order must be the same as in
|
||||
// HLSL linkage.
|
||||
// Both binding and signature entry names may be placed in the global scope in
|
||||
// the target language, make sure they don't collide with anything there.
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define xesl_entry_signature_end void main() {
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
#define xesl_entry_bindings_end void main(
|
||||
#define xesl_entry_signature_next ,
|
||||
#define xesl_entry_signature_end ) {
|
||||
#else
|
||||
#error xesl_entry not defined for the target language.
|
||||
#endif // XE_LANGUAGE
|
||||
#ifndef xesl_entry
|
||||
#define xesl_entry
|
||||
#endif // !xesl_entry
|
||||
#ifndef xesl_entry_binding_next
|
||||
#define xesl_entry_binding_next
|
||||
#endif // !xesl_entry_binding_next
|
||||
#ifndef xesl_entry_bindings_end
|
||||
#define xesl_entry_bindings_end
|
||||
#endif // !xesl_entry_bindings_end
|
||||
#ifndef xesl_entry_signature_next
|
||||
#define xesl_entry_signature_next
|
||||
#endif // !xesl_entry_signature_next
|
||||
#ifndef xesl_entry_end
|
||||
#define xesl_entry_end }
|
||||
#endif // !xesl_entry_end
|
||||
|
||||
#if XESL_LANGUAGE_HLSL
|
||||
// HLSL requires static const to declare a constant in the global scope so it
|
||||
// doesn't go to $Globals instead.
|
||||
// HLSL requires static const for declaring a constant in the global scope so
|
||||
// it doesn't go to $Globals instead.
|
||||
#define xesl_static static
|
||||
#else
|
||||
// GLSL requires just const to declare a constant in the global scope.
|
||||
// GLSL requires just const for declaring a constant in the global scope.
|
||||
#define xesl_static
|
||||
#endif // XESL_LANGUAGE_HLSL
|
||||
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define xesl_block_offset_member(glsl_offset_bytes, hlsl_packoffset, type, \
|
||||
name_element_count) \
|
||||
layout(offset=glsl_offset_bytes) type name_element_count;
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
#define xesl_block_offset_member(glsl_offset_bytes, hlsl_packoffset, type, \
|
||||
name_element_count) \
|
||||
type name_element_count : packoffset(hlsl_packoffset);
|
||||
#else
|
||||
#error xesl_block_offset_member not defined for the target language.
|
||||
#endif // XESL_LANGUAGE
|
||||
|
||||
// Structures of constant and structured buffer bindings must be declared before
|
||||
// the entry point declaration.
|
||||
|
||||
// Constant buffers and push constants must be manually packed as std140 (which
|
||||
// is stricter than HLSL packing) due to the GLSL requirement. This means that
|
||||
// 32x4 and 32x3 vectors must start at 16-byte alignment, 32x2 at 8-byte, and a
|
||||
// single 32-bit value can be placed immediately after a 32x3 vector (the Vulkan
|
||||
// definition of this behavior). Specifically, all alignment padding must be
|
||||
// inserted explicitly (or xesl_block_offset_member must be used), as by default
|
||||
// HLSL doesn't have the alignment requirement, only the rule that elements
|
||||
// (array elements, or single non-array members) must not cross 32x4 vector
|
||||
// boundaries, so something like float|float3 or float|float2|float will be
|
||||
// packed differently in GLSL (float|pad3|float3 or float|pad|float2|float) and
|
||||
// HLSL (float|float3 or float|float2|float).
|
||||
|
||||
// Constant buffer and push constant member names will be in the global scope in
|
||||
// some target languages - they must not collide with anything else there. To
|
||||
// access a constant, use xesl_constant or xesl_push_constant.
|
||||
|
||||
// Push constants, even though may be spread across multiple constant buffers in
|
||||
// the Direct3D 12 API, must be declared in a single structure in XeSL - the
|
||||
// reason is that layout qualifiers in GLSL can't be used in regular structures,
|
||||
// only in blocks, and sub-blocks can't be declared in a block, so there's no
|
||||
// way to create separate identifiers for push constant ranges in GLSL. Though
|
||||
// both GLSL and HLSL support anonymous push constants / cbuffers, MSL requires
|
||||
// a name for the buffer binding.
|
||||
// In GLSL, the offsets in the push constants are global across shader stages.
|
||||
// In HLSL, they're local to the specific root constant buffer.
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define xesl_push_constants_begin(hlsl_b, hlsl_b_space) \
|
||||
layout(push_constant) uniform xesl_push_constants_block {
|
||||
#define xesl_push_constants_end \
|
||||
} xesl_push_constants;
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
#define XESL_PUSH_CONSTANTS_GLOBAL 1
|
||||
#define xesl_push_constants_begin(hlsl_b, hlsl_b_space) \
|
||||
cbuffer xesl_push_constants : register(hlsl_b, hlsl_b_space) {
|
||||
#define xesl_push_constants_end \
|
||||
};
|
||||
#else
|
||||
#error xesl_push_constants not defined for the target language.
|
||||
#endif // XESL_LANGUAGE
|
||||
#if XESL_PUSH_CONSTANTS_GLOBAL
|
||||
#define xesl_push_constant(name) name
|
||||
#else
|
||||
#define xesl_push_constant(name) xesl_push_constants.name
|
||||
#endif // XESL_PUSH_CONSTANTS_GLOBAL
|
||||
|
||||
// Texture, sampler and image declarations must be in the entry point bindings
|
||||
// declaration.
|
||||
// - xesl_texture is a separate texture.
|
||||
// - xesl_samplerState is a separate sampler.
|
||||
// - xesl_sampler is a combined texture / sampler where available, internally
|
||||
// separate where not.
|
||||
// - xesl_fetchSampler is a special kind of xesl_sampler for use when only
|
||||
// texelFetch is needed - it can be used with xesl_texelFetch#D_comb just like
|
||||
// a xesl_sampler, but when the target language doesn't need the sampler state
|
||||
// for texelFetch, the unused sampler will not be created.
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define XESL_COMBINED_TEXTURE_SAMPLER 1
|
||||
#define XESL_TEXEL_FETCH_USES_SAMPLER 1
|
||||
// Types.
|
||||
#define xesl_texture2D texture2D
|
||||
#define xesl_sampler2D sampler2D
|
||||
// Binding declarations.
|
||||
#define xesl_texture(texture_type, name, glsl_set, glsl_binding, hlsl_t, \
|
||||
hlsl_t_space) \
|
||||
layout(glsl_set, glsl_binding) uniform texture_type name;
|
||||
#define xesl_samplerState(name, glsl_set, glsl_binding, hlsl_s, \
|
||||
hlsl_s_space) \
|
||||
layout(glsl_set, glsl_binding) uniform sampler name;
|
||||
#define xesl_sampler(sampler_type, name, glsl_set, glsl_binding, hlsl_t, \
|
||||
hlsl_t_space, hlsl_s, hlsl_s_space) \
|
||||
layout(glsl_set, glsl_binding) uniform sampler_type name;
|
||||
// Fetching.
|
||||
#define xesl_texelFetch2D_sep(texture_name, sampler_name, position, lod) \
|
||||
texelFetch(sampler2D(texture_name, sampler_name), position, lod)
|
||||
#define xesl_texelFetch2D_comb(texture_sampler_name, position, lod) \
|
||||
texelFetch(texture_sampler_name, position, lod)
|
||||
#define xesl_textureSampleLod2D_sep(texture, sampler_name, position, lod) \
|
||||
textureLod(sampler2D(texture_name, sampler_name), position, lod)
|
||||
#define xesl_textureSampleLod2D_comb(texture_sampler_name, position, lod) \
|
||||
textureLod(texture_sampler_name, position, lod)
|
||||
#define xesl_textureGatherRed2D_sep(texture_name, sampler_name, position) \
|
||||
textureGather(sampler2D(texture_name, sampler_name), position, 0)
|
||||
#define xesl_textureGatherGreen2D_sep(texture_name, sampler_name, position) \
|
||||
textureGather(sampler2D(texture_name, sampler_name), position, 1)
|
||||
#define xesl_textureGatherBlue2D_sep(texture_name, sampler_name, position) \
|
||||
textureGather(sampler2D(texture_name, sampler_name), position, 2)
|
||||
#define xesl_textureGatherAlpha2D_sep(texture_name, sampler_name, position) \
|
||||
textureGather(sampler2D(texture_name, sampler_name), position, 3)
|
||||
#define xesl_textureGatherRed2D_comb(texture_sampler_name, position) \
|
||||
textureGather(texture_sampler_name, position, 0)
|
||||
#define xesl_textureGatherGreen2D_comb(texture_sampler_name, position) \
|
||||
textureGather(texture_sampler_name, position, 1)
|
||||
#define xesl_textureGatherBlue2D_comb(texture_sampler_name, position) \
|
||||
textureGather(texture_sampler_name, position, 2)
|
||||
#define xesl_textureGatherAlpha2D_comb(texture_sampler_name, position) \
|
||||
textureGather(texture_sampler_name, position, 3)
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
// Types.
|
||||
#define xesl_texture2D Texture2D
|
||||
// Binding declarations.
|
||||
#define xesl_texture(texture_type, name, glsl_set, glsl_binding, hlsl_t, \
|
||||
hlsl_t_space) \
|
||||
texture_type name : register(hlsl_t, hlsl_t_space);
|
||||
#define xesl_samplerState(name, glsl_set, glsl_binding, hlsl_s, \
|
||||
hlsl_s_space) \
|
||||
SamplerState name : register(hlsl_s, hlsl_s_space);
|
||||
// Fetching.
|
||||
#define xesl_texelFetch2D_sep(texture_name, sampler_name, position, lod) \
|
||||
((texture_name).Load(int3(position, lod)))
|
||||
#define xesl_texelFetch2D_comb(texture_sampler_name, position, lod) \
|
||||
((xesl_id_texture_##texture_sampler_name).Load(int3(position, lod)))
|
||||
#define xesl_textureSampleLod2D_sep(texture_name, sampler_name, position, \
|
||||
lod) \
|
||||
((texture_name).SampleLevel(sampler_name, position, lod))
|
||||
#define xesl_textureGatherRed2D_sep(texture_name, sampler_name, position) \
|
||||
((texture_name).GatherRed(sampler_name, position))
|
||||
#define xesl_textureGatherGreen2D_sep(texture_name, sampler_name, position) \
|
||||
((texture_name).GatherGreen(sampler_name, position))
|
||||
#define xesl_textureGatherBlue2D_sep(texture_name, sampler_name, position) \
|
||||
((texture_name).GatherBlue(sampler_name, position))
|
||||
#define xesl_textureGatherAlpha2D_sep(texture_name, sampler_name, position) \
|
||||
((texture_name).GatherAlpha(sampler_name, position))
|
||||
#else
|
||||
#error xesl_texture and xesl_samplerState not defined for the target language.
|
||||
#endif // XESL_LANGUAGE
|
||||
// If there's no language specialization doing this already, implement combined
|
||||
// textures / samplers as separate, with `xesl_id_texture_` and
|
||||
// `xesl_id_sampler_` prefixes. The sampler types become the texture types.
|
||||
#if !XESL_COMBINED_TEXTURE_SAMPLER
|
||||
#ifndef xesl_sampler2D
|
||||
#define xesl_sampler2D xesl_texture2D
|
||||
#endif // !xesl_sampler2D
|
||||
#ifndef xesl_sampler
|
||||
#define xesl_sampler(sampler_type, name, glsl_set, glsl_binding, hlsl_t, \
|
||||
hlsl_t_space, hlsl_s, hlsl_s_space) \
|
||||
xesl_texture(sampler_type, xesl_id_texture_##name, glsl_set, \
|
||||
glsl_binding, hlsl_t, hlsl_t_space) \
|
||||
xesl_entry_binding_next \
|
||||
xesl_samplerState(xesl_id_sampler_##name, glsl_set, glsl_binding, \
|
||||
hlsl_s, hlsl_s_space)
|
||||
#endif // !xesl_sampler
|
||||
#ifndef xesl_textureSampleLod2D_comb
|
||||
#define xesl_textureSampleLod2D_comb(texture_sampler_name, position, lod) \
|
||||
xesl_textureSampleLod2D_sep(xesl_id_texture_##texture_sampler_name, \
|
||||
xesl_id_sampler_##texture_sampler_name, \
|
||||
position, lod)
|
||||
#endif // !xesl_textureSampleLod2D_comb
|
||||
#ifndef xesl_textureGatherRed2D_comb
|
||||
#define xesl_textureGatherRed2D_comb(texture_sampler_name, position) \
|
||||
xesl_textureGatherRed2D_sep(xesl_id_texture_##texture_sampler_name, \
|
||||
xesl_id_sampler_##texture_sampler_name, \
|
||||
position)
|
||||
#endif // !xesl_textureGatherRed2D_comb
|
||||
#ifndef xesl_textureGatherGreen2D_comb
|
||||
#define xesl_textureGatherGreen2D_comb(texture_sampler_name, position) \
|
||||
xesl_textureGatherGreen2D_sep(xesl_id_texture_##texture_sampler_name, \
|
||||
xesl_id_sampler_##texture_sampler_name, \
|
||||
position)
|
||||
#endif // !xesl_textureGatherGreen2D_comb
|
||||
#ifndef xesl_textureGatherBlue2D_comb
|
||||
#define xesl_textureGatherBlue2D_comb(texture_sampler_name, position) \
|
||||
xesl_textureGatherBlue2D_sep(xesl_id_texture_##texture_sampler_name, \
|
||||
xesl_id_sampler_##texture_sampler_name, \
|
||||
position)
|
||||
#endif // !xesl_textureGatherBlue2D_comb
|
||||
#ifndef xesl_textureGatherAlpha2D_comb
|
||||
#define xesl_textureGatherAlpha2D_comb(texture_sampler_name, position) \
|
||||
xesl_textureGatherAlpha2D_sep(xesl_id_texture_##texture_sampler_name, \
|
||||
xesl_id_sampler_##texture_sampler_name, \
|
||||
position)
|
||||
#endif // !xesl_textureGatherAlpha2D_comb
|
||||
#endif // !XESL_COMBINED_TEXTURE_SAMPLER
|
||||
#if XESL_TEXEL_FETCH_USES_SAMPLER
|
||||
#ifndef xesl_fetchSampler
|
||||
#define xesl_fetchSampler(sampler_type, name, glsl_set, glsl_binding, \
|
||||
hlsl_t, hlsl_t_space) \
|
||||
xesl_sampler(sampler_type, name, glsl_set, glsl_binding, hlsl_t, \
|
||||
hlsl_t_space, s0, space0)
|
||||
#endif // !xesl_fetchSampler
|
||||
#else
|
||||
#ifndef xesl_fetchSampler
|
||||
#define xesl_fetchSampler(sampler_type, name, glsl_set, glsl_binding, \
|
||||
hlsl_t, hlsl_t_space) \
|
||||
xesl_texture(sampler_type, xesl_id_texture_##name, glsl_set, \
|
||||
glsl_binding, hlsl_t, hlsl_t_space)
|
||||
#endif // !xesl_fetchSampler
|
||||
#endif // XESL_TEXEL_FETCH_USES_SAMPLER
|
||||
|
||||
// xesl_input_vertex_id declares int xesl_VertexID.
|
||||
// xesl_input_frag_coord declares xesl_float4 xesl_FragCoord.
|
||||
// xesl_FragCoord.w is 1/W if XESL_FRAG_COORD_W_IS_INVERSE, W otherwise.
|
||||
// xesl_output_position declares xesl_float4 xesl_Position.
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define XESL_FRAG_COORD_W_IS_INVERSE 1
|
||||
#define xesl_VertexID gl_VertexIndex
|
||||
#define xesl_FragCoord gl_FragCoord
|
||||
#define xesl_Position gl_Position
|
||||
#define xesl_input(type, name, index, hlsl_semantic) \
|
||||
layout(location=index) in type name;
|
||||
#define xesl_input_vertex_id
|
||||
#define xesl_input_frag_coord
|
||||
#define xesl_output(type, name, index, hlsl_semantic) \
|
||||
layout(location=index) out type name;
|
||||
#define xesl_output_position
|
||||
#define xesl_output_color(type, name, index) \
|
||||
layout(location=index) out type name;
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
#define xesl_VertexID (int(xesl_id_vertex_id))
|
||||
#define xesl_input(type, name, index, hlsl_semantic) \
|
||||
type name : hlsl_semantic
|
||||
#define xesl_input_vertex_id \
|
||||
uint xesl_id_vertex_id : SV_VertexID
|
||||
#define xesl_input_frag_coord \
|
||||
xesl_float4 xesl_FragCoord : SV_Position
|
||||
#define xesl_output(type, name, index, hlsl_semantic) \
|
||||
out type name : hlsl_semantic
|
||||
#define xesl_output_position \
|
||||
out xesl_float4 xesl_Position : SV_Position
|
||||
#define xesl_output_color(type, name, index) \
|
||||
out type name : SV_Target##index
|
||||
#else
|
||||
#error xesl_input and xesl_output not defined for the target language.
|
||||
#endif // XESL_LANGUAGE
|
||||
|
||||
// XESL_Y_SCREEN_DIRECTION is 1.0 if with a positive viewport height,
|
||||
// +xesl_Position.y is towards +xesl_FragCoord.y, -1.0 if +xesl_Position.y is
|
||||
// towards -xesl_FragCoord.y.
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define XESL_Y_SCREEN_DIRECTION 1.0
|
||||
#else
|
||||
#define XESL_Y_SCREEN_DIRECTION -1.0
|
||||
#endif // XESL_LANGUAGE_GLSL
|
||||
|
||||
// Function aliases.
|
||||
|
||||
#if XESL_LANGUAGE_HLSL
|
||||
// Using functions instead of #define for implicit argument conversion.
|
||||
int xesl_floatBitsToInt(float value) { return asint(value); }
|
||||
xesl_int2 xesl_floatBitsToInt(xesl_float2 value) { return asint(value); }
|
||||
xesl_int3 xesl_floatBitsToInt(xesl_float3 value) { return asint(value); }
|
||||
xesl_int4 xesl_floatBitsToInt(xesl_float4 value) { return asint(value); }
|
||||
uint xesl_floatBitsToUint(float value) { return asuint(value); }
|
||||
xesl_uint2 xesl_floatBitsToUint(xesl_float2 value) { return asuint(value); }
|
||||
xesl_uint3 xesl_floatBitsToUint(xesl_float3 value) { return asuint(value); }
|
||||
xesl_uint4 xesl_floatBitsToUint(xesl_float4 value) { return asuint(value); }
|
||||
float xesl_intBitsToFloat(int value) { return asfloat(value); }
|
||||
xesl_float2 xesl_intBitsToFloat(xesl_int2 value) { return asfloat(value); }
|
||||
xesl_float3 xesl_intBitsToFloat(xesl_int3 value) { return asfloat(value); }
|
||||
xesl_float4 xesl_intBitsToFloat(xesl_int4 value) { return asfloat(value); }
|
||||
float xesl_uintBitsToFloat(uint value) { return asfloat(value); }
|
||||
xesl_float2 xesl_uintBitsToFloat(xesl_uint2 value) { return asfloat(value); }
|
||||
xesl_float3 xesl_uintBitsToFloat(xesl_uint3 value) { return asfloat(value); }
|
||||
xesl_float4 xesl_uintBitsToFloat(xesl_uint4 value) { return asfloat(value); }
|
||||
#else
|
||||
#define xesl_floatBitsToInt floatBitsToInt
|
||||
#define xesl_floatBitsToUint floatBitsToUint
|
||||
#define xesl_intBitsToFloat intBitsToFloat
|
||||
#define xesl_uintBitsToFloat uintBitsToFloat
|
||||
#endif // XESL_LANGUAGE_HLSL
|
||||
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
float xesl_saturate(float value) {
|
||||
return clamp(value, 0.0, 1.0);
|
||||
}
|
||||
xesl_float2 xesl_saturate(xesl_float2 value) {
|
||||
return clamp(value, xesl_float2(0.0, 0.0), xesl_float2(1.0, 1.0));
|
||||
}
|
||||
xesl_float3 xesl_saturate(xesl_float3 value) {
|
||||
return clamp(value, xesl_float3(0.0, 0.0, 0.0), xesl_float3(1.0, 1.0, 1.0));
|
||||
}
|
||||
xesl_float4 xesl_saturate(xesl_float4 value) {
|
||||
return clamp(value, xesl_float4(0.0, 0.0, 0.0, 0.0),
|
||||
xesl_float4(1.0, 1.0, 1.0, 1.0));
|
||||
}
|
||||
#else
|
||||
#define xesl_saturate saturate
|
||||
#endif // XESL_LANGUAGE_GLSL
|
||||
|
||||
#if XESL_LANGUAGE_GLSL
|
||||
#define xesl_packHalf2x16 packHalf2x16
|
||||
#elif XESL_LANGUAGE_HLSL
|
||||
uint xesl_packHalf2x16(xesl_float2 value) {
|
||||
return f32tof16(value.x) | (f32tof16(value.y) << 16u);
|
||||
}
|
||||
#else
|
||||
#error xesl_packHalf2x16 not defined for the target language.
|
||||
#endif // XESL_LANGUAGE
|
||||
|
||||
#endif // XENIA_UI_SHADERS_XESL_XESLI_
|
||||
|
|
Loading…
Reference in New Issue