summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/shader_info.h
diff options
context:
space:
mode:
authorGravatar Liam2023-12-19 10:55:56 -0500
committerGravatar Liam2023-12-21 14:34:46 -0500
commit9e9aed41bebc1b7d29dbfcddcc203693bcdc680e (patch)
tree5f2cae1f65daf7cdd0b1978e48764747177d949d /src/shader_recompiler/shader_info.h
parentMerge pull request #12424 from t895/vsync-per-game-qt (diff)
downloadyuzu-9e9aed41bebc1b7d29dbfcddcc203693bcdc680e.tar.gz
yuzu-9e9aed41bebc1b7d29dbfcddcc203693bcdc680e.tar.xz
yuzu-9e9aed41bebc1b7d29dbfcddcc203693bcdc680e.zip
shader_recompiler: use float image operations on load/store when required
Diffstat (limited to 'src/shader_recompiler/shader_info.h')
-rw-r--r--src/shader_recompiler/shader_info.h105
1 files changed, 101 insertions, 4 deletions
diff --git a/src/shader_recompiler/shader_info.h b/src/shader_recompiler/shader_info.h
index 1419b8fe7..ed13e6820 100644
--- a/src/shader_recompiler/shader_info.h
+++ b/src/shader_recompiler/shader_info.h
@@ -35,14 +35,109 @@ enum class TextureType : u32 {
35}; 35};
36constexpr u32 NUM_TEXTURE_TYPES = 9; 36constexpr u32 NUM_TEXTURE_TYPES = 9;
37 37
38enum class TexturePixelFormat : u32 { 38enum class TexturePixelFormat {
39 A8B8G8R8_UNORM,
39 A8B8G8R8_SNORM, 40 A8B8G8R8_SNORM,
41 A8B8G8R8_SINT,
42 A8B8G8R8_UINT,
43 R5G6B5_UNORM,
44 B5G6R5_UNORM,
45 A1R5G5B5_UNORM,
46 A2B10G10R10_UNORM,
47 A2B10G10R10_UINT,
48 A2R10G10B10_UNORM,
49 A1B5G5R5_UNORM,
50 A5B5G5R1_UNORM,
51 R8_UNORM,
40 R8_SNORM, 52 R8_SNORM,
41 R8G8_SNORM, 53 R8_SINT,
54 R8_UINT,
55 R16G16B16A16_FLOAT,
56 R16G16B16A16_UNORM,
42 R16G16B16A16_SNORM, 57 R16G16B16A16_SNORM,
43 R16G16_SNORM, 58 R16G16B16A16_SINT,
59 R16G16B16A16_UINT,
60 B10G11R11_FLOAT,
61 R32G32B32A32_UINT,
62 BC1_RGBA_UNORM,
63 BC2_UNORM,
64 BC3_UNORM,
65 BC4_UNORM,
66 BC4_SNORM,
67 BC5_UNORM,
68 BC5_SNORM,
69 BC7_UNORM,
70 BC6H_UFLOAT,
71 BC6H_SFLOAT,
72 ASTC_2D_4X4_UNORM,
73 B8G8R8A8_UNORM,
74 R32G32B32A32_FLOAT,
75 R32G32B32A32_SINT,
76 R32G32_FLOAT,
77 R32G32_SINT,
78 R32_FLOAT,
79 R16_FLOAT,
80 R16_UNORM,
44 R16_SNORM, 81 R16_SNORM,
45 OTHER 82 R16_UINT,
83 R16_SINT,
84 R16G16_UNORM,
85 R16G16_FLOAT,
86 R16G16_UINT,
87 R16G16_SINT,
88 R16G16_SNORM,
89 R32G32B32_FLOAT,
90 A8B8G8R8_SRGB,
91 R8G8_UNORM,
92 R8G8_SNORM,
93 R8G8_SINT,
94 R8G8_UINT,
95 R32G32_UINT,
96 R16G16B16X16_FLOAT,
97 R32_UINT,
98 R32_SINT,
99 ASTC_2D_8X8_UNORM,
100 ASTC_2D_8X5_UNORM,
101 ASTC_2D_5X4_UNORM,
102 B8G8R8A8_SRGB,
103 BC1_RGBA_SRGB,
104 BC2_SRGB,
105 BC3_SRGB,
106 BC7_SRGB,
107 A4B4G4R4_UNORM,
108 G4R4_UNORM,
109 ASTC_2D_4X4_SRGB,
110 ASTC_2D_8X8_SRGB,
111 ASTC_2D_8X5_SRGB,
112 ASTC_2D_5X4_SRGB,
113 ASTC_2D_5X5_UNORM,
114 ASTC_2D_5X5_SRGB,
115 ASTC_2D_10X8_UNORM,
116 ASTC_2D_10X8_SRGB,
117 ASTC_2D_6X6_UNORM,
118 ASTC_2D_6X6_SRGB,
119 ASTC_2D_10X6_UNORM,
120 ASTC_2D_10X6_SRGB,
121 ASTC_2D_10X5_UNORM,
122 ASTC_2D_10X5_SRGB,
123 ASTC_2D_10X10_UNORM,
124 ASTC_2D_10X10_SRGB,
125 ASTC_2D_12X10_UNORM,
126 ASTC_2D_12X10_SRGB,
127 ASTC_2D_12X12_UNORM,
128 ASTC_2D_12X12_SRGB,
129 ASTC_2D_8X6_UNORM,
130 ASTC_2D_8X6_SRGB,
131 ASTC_2D_6X5_UNORM,
132 ASTC_2D_6X5_SRGB,
133 E5B9G9R9_FLOAT,
134 D32_FLOAT,
135 D16_UNORM,
136 X8_D24_UNORM,
137 S8_UINT,
138 D24_UNORM_S8_UINT,
139 S8_UINT_D24_UNORM,
140 D32_FLOAT_S8_UINT,
46}; 141};
47 142
48enum class ImageFormat : u32 { 143enum class ImageFormat : u32 {
@@ -97,6 +192,7 @@ struct ImageBufferDescriptor {
97 ImageFormat format; 192 ImageFormat format;
98 bool is_written; 193 bool is_written;
99 bool is_read; 194 bool is_read;
195 bool is_integer;
100 u32 cbuf_index; 196 u32 cbuf_index;
101 u32 cbuf_offset; 197 u32 cbuf_offset;
102 u32 count; 198 u32 count;
@@ -129,6 +225,7 @@ struct ImageDescriptor {
129 ImageFormat format; 225 ImageFormat format;
130 bool is_written; 226 bool is_written;
131 bool is_read; 227 bool is_read;
228 bool is_integer;
132 u32 cbuf_index; 229 u32 cbuf_index;
133 u32 cbuf_offset; 230 u32 cbuf_offset;
134 u32 count; 231 u32 count;