summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glsl
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend/glsl')
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp4
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_composite.cpp30
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp1
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_convert.cpp52
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp50
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_image.cpp54
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_instructions.h2
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_not_implemented.cpp4
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_select.cpp6
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_warp.cpp4
10 files changed, 103 insertions, 104 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
index 9d844b831..1e860f11a 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_bitwise_conversion.cpp
@@ -36,7 +36,7 @@ void EmitConditionRef(EmitContext& ctx, IR::Inst& inst, const IR::Value& value)
36} 36}
37 37
38void EmitBitCastU16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) { 38void EmitBitCastU16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) {
39 throw NotImplementedException("GLSL Instruction"); 39 NotImplemented();
40} 40}
41 41
42void EmitBitCastU32F32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 42void EmitBitCastU32F32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -48,7 +48,7 @@ void EmitBitCastU64F64(EmitContext& ctx, IR::Inst& inst, std::string_view value)
48} 48}
49 49
50void EmitBitCastF16U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) { 50void EmitBitCastF16U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) {
51 throw NotImplementedException("GLSL Instruction"); 51 NotImplemented();
52} 52}
53 53
54void EmitBitCastF32U32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 54void EmitBitCastF32U32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_composite.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_composite.cpp
index 44a719fc3..3697e1a34 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_composite.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_composite.cpp
@@ -68,14 +68,14 @@ void EmitCompositeInsertU32x4(EmitContext& ctx, IR::Inst& inst, std::string_view
68void EmitCompositeConstructF16x2([[maybe_unused]] EmitContext& ctx, 68void EmitCompositeConstructF16x2([[maybe_unused]] EmitContext& ctx,
69 [[maybe_unused]] std::string_view e1, 69 [[maybe_unused]] std::string_view e1,
70 [[maybe_unused]] std::string_view e2) { 70 [[maybe_unused]] std::string_view e2) {
71 throw NotImplementedException("GLSL Instruction"); 71 NotImplemented();
72} 72}
73 73
74void EmitCompositeConstructF16x3([[maybe_unused]] EmitContext& ctx, 74void EmitCompositeConstructF16x3([[maybe_unused]] EmitContext& ctx,
75 [[maybe_unused]] std::string_view e1, 75 [[maybe_unused]] std::string_view e1,
76 [[maybe_unused]] std::string_view e2, 76 [[maybe_unused]] std::string_view e2,
77 [[maybe_unused]] std::string_view e3) { 77 [[maybe_unused]] std::string_view e3) {
78 throw NotImplementedException("GLSL Instruction"); 78 NotImplemented();
79} 79}
80 80
81void EmitCompositeConstructF16x4([[maybe_unused]] EmitContext& ctx, 81void EmitCompositeConstructF16x4([[maybe_unused]] EmitContext& ctx,
@@ -83,46 +83,46 @@ void EmitCompositeConstructF16x4([[maybe_unused]] EmitContext& ctx,
83 [[maybe_unused]] std::string_view e2, 83 [[maybe_unused]] std::string_view e2,
84 [[maybe_unused]] std::string_view e3, 84 [[maybe_unused]] std::string_view e3,
85 [[maybe_unused]] std::string_view e4) { 85 [[maybe_unused]] std::string_view e4) {
86 throw NotImplementedException("GLSL Instruction"); 86 NotImplemented();
87} 87}
88 88
89void EmitCompositeExtractF16x2([[maybe_unused]] EmitContext& ctx, 89void EmitCompositeExtractF16x2([[maybe_unused]] EmitContext& ctx,
90 [[maybe_unused]] std::string_view composite, 90 [[maybe_unused]] std::string_view composite,
91 [[maybe_unused]] u32 index) { 91 [[maybe_unused]] u32 index) {
92 throw NotImplementedException("GLSL Instruction"); 92 NotImplemented();
93} 93}
94 94
95void EmitCompositeExtractF16x3([[maybe_unused]] EmitContext& ctx, 95void EmitCompositeExtractF16x3([[maybe_unused]] EmitContext& ctx,
96 [[maybe_unused]] std::string_view composite, 96 [[maybe_unused]] std::string_view composite,
97 [[maybe_unused]] u32 index) { 97 [[maybe_unused]] u32 index) {
98 throw NotImplementedException("GLSL Instruction"); 98 NotImplemented();
99} 99}
100 100
101void EmitCompositeExtractF16x4([[maybe_unused]] EmitContext& ctx, 101void EmitCompositeExtractF16x4([[maybe_unused]] EmitContext& ctx,
102 [[maybe_unused]] std::string_view composite, 102 [[maybe_unused]] std::string_view composite,
103 [[maybe_unused]] u32 index) { 103 [[maybe_unused]] u32 index) {
104 throw NotImplementedException("GLSL Instruction"); 104 NotImplemented();
105} 105}
106 106
107void EmitCompositeInsertF16x2([[maybe_unused]] EmitContext& ctx, 107void EmitCompositeInsertF16x2([[maybe_unused]] EmitContext& ctx,
108 [[maybe_unused]] std::string_view composite, 108 [[maybe_unused]] std::string_view composite,
109 [[maybe_unused]] std::string_view object, 109 [[maybe_unused]] std::string_view object,
110 [[maybe_unused]] u32 index) { 110 [[maybe_unused]] u32 index) {
111 throw NotImplementedException("GLSL Instruction"); 111 NotImplemented();
112} 112}
113 113
114void EmitCompositeInsertF16x3([[maybe_unused]] EmitContext& ctx, 114void EmitCompositeInsertF16x3([[maybe_unused]] EmitContext& ctx,
115 [[maybe_unused]] std::string_view composite, 115 [[maybe_unused]] std::string_view composite,
116 [[maybe_unused]] std::string_view object, 116 [[maybe_unused]] std::string_view object,
117 [[maybe_unused]] u32 index) { 117 [[maybe_unused]] u32 index) {
118 throw NotImplementedException("GLSL Instruction"); 118 NotImplemented();
119} 119}
120 120
121void EmitCompositeInsertF16x4([[maybe_unused]] EmitContext& ctx, 121void EmitCompositeInsertF16x4([[maybe_unused]] EmitContext& ctx,
122 [[maybe_unused]] std::string_view composite, 122 [[maybe_unused]] std::string_view composite,
123 [[maybe_unused]] std::string_view object, 123 [[maybe_unused]] std::string_view object,
124 [[maybe_unused]] u32 index) { 124 [[maybe_unused]] u32 index) {
125 throw NotImplementedException("GLSL Instruction"); 125 NotImplemented();
126} 126}
127 127
128void EmitCompositeConstructF32x2(EmitContext& ctx, IR::Inst& inst, std::string_view e1, 128void EmitCompositeConstructF32x2(EmitContext& ctx, IR::Inst& inst, std::string_view e1,
@@ -174,27 +174,27 @@ void EmitCompositeInsertF32x4(EmitContext& ctx, IR::Inst& inst, std::string_view
174} 174}
175 175
176void EmitCompositeConstructF64x2([[maybe_unused]] EmitContext& ctx) { 176void EmitCompositeConstructF64x2([[maybe_unused]] EmitContext& ctx) {
177 throw NotImplementedException("GLSL Instruction"); 177 NotImplemented();
178} 178}
179 179
180void EmitCompositeConstructF64x3([[maybe_unused]] EmitContext& ctx) { 180void EmitCompositeConstructF64x3([[maybe_unused]] EmitContext& ctx) {
181 throw NotImplementedException("GLSL Instruction"); 181 NotImplemented();
182} 182}
183 183
184void EmitCompositeConstructF64x4([[maybe_unused]] EmitContext& ctx) { 184void EmitCompositeConstructF64x4([[maybe_unused]] EmitContext& ctx) {
185 throw NotImplementedException("GLSL Instruction"); 185 NotImplemented();
186} 186}
187 187
188void EmitCompositeExtractF64x2([[maybe_unused]] EmitContext& ctx) { 188void EmitCompositeExtractF64x2([[maybe_unused]] EmitContext& ctx) {
189 throw NotImplementedException("GLSL Instruction"); 189 NotImplemented();
190} 190}
191 191
192void EmitCompositeExtractF64x3([[maybe_unused]] EmitContext& ctx) { 192void EmitCompositeExtractF64x3([[maybe_unused]] EmitContext& ctx) {
193 throw NotImplementedException("GLSL Instruction"); 193 NotImplemented();
194} 194}
195 195
196void EmitCompositeExtractF64x4([[maybe_unused]] EmitContext& ctx) { 196void EmitCompositeExtractF64x4([[maybe_unused]] EmitContext& ctx) {
197 throw NotImplementedException("GLSL Instruction"); 197 NotImplemented();
198} 198}
199 199
200void EmitCompositeInsertF64x2(EmitContext& ctx, std::string_view composite, std::string_view object, 200void EmitCompositeInsertF64x2(EmitContext& ctx, std::string_view composite, std::string_view object,
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp
index 5f58e781e..c66b4b282 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp
@@ -139,6 +139,7 @@ void EmitGetAttribute(EmitContext& ctx, IR::Inst& inst, IR::Attribute attr,
139 switch (ctx.stage) { 139 switch (ctx.stage) {
140 case Stage::VertexA: 140 case Stage::VertexA:
141 case Stage::VertexB: 141 case Stage::VertexB:
142 case Stage::Geometry:
142 ctx.AddF32("{}=gl_Position.{};", inst, swizzle); 143 ctx.AddF32("{}=gl_Position.{};", inst, swizzle);
143 break; 144 break;
144 case Stage::Fragment: 145 case Stage::Fragment:
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_convert.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_convert.cpp
index 85d07b4de..9ed5bb319 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_convert.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_convert.cpp
@@ -11,7 +11,7 @@
11namespace Shader::Backend::GLSL { 11namespace Shader::Backend::GLSL {
12void EmitConvertS16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 12void EmitConvertS16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
13 [[maybe_unused]] std::string_view value) { 13 [[maybe_unused]] std::string_view value) {
14 throw NotImplementedException("GLSL Instruction"); 14 NotImplemented();
15} 15}
16 16
17void EmitConvertS16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 17void EmitConvertS16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -21,12 +21,12 @@ void EmitConvertS16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
21 21
22void EmitConvertS16F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 22void EmitConvertS16F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
23 [[maybe_unused]] std::string_view value) { 23 [[maybe_unused]] std::string_view value) {
24 throw NotImplementedException("GLSL Instruction"); 24 NotImplemented();
25} 25}
26 26
27void EmitConvertS32F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 27void EmitConvertS32F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
28 [[maybe_unused]] std::string_view value) { 28 [[maybe_unused]] std::string_view value) {
29 throw NotImplementedException("GLSL Instruction"); 29 NotImplemented();
30} 30}
31 31
32void EmitConvertS32F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 32void EmitConvertS32F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -41,7 +41,7 @@ void EmitConvertS32F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
41 41
42void EmitConvertS64F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 42void EmitConvertS64F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
43 [[maybe_unused]] std::string_view value) { 43 [[maybe_unused]] std::string_view value) {
44 throw NotImplementedException("GLSL Instruction"); 44 NotImplemented();
45} 45}
46 46
47void EmitConvertS64F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 47void EmitConvertS64F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -56,22 +56,22 @@ void EmitConvertS64F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
56 56
57void EmitConvertU16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 57void EmitConvertU16F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
58 [[maybe_unused]] std::string_view value) { 58 [[maybe_unused]] std::string_view value) {
59 throw NotImplementedException("GLSL Instruction"); 59 NotImplemented();
60} 60}
61 61
62void EmitConvertU16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 62void EmitConvertU16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
63 [[maybe_unused]] std::string_view value) { 63 [[maybe_unused]] std::string_view value) {
64 throw NotImplementedException("GLSL Instruction"); 64 NotImplemented();
65} 65}
66 66
67void EmitConvertU16F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 67void EmitConvertU16F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
68 [[maybe_unused]] std::string_view value) { 68 [[maybe_unused]] std::string_view value) {
69 throw NotImplementedException("GLSL Instruction"); 69 NotImplemented();
70} 70}
71 71
72void EmitConvertU32F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 72void EmitConvertU32F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
73 [[maybe_unused]] std::string_view value) { 73 [[maybe_unused]] std::string_view value) {
74 throw NotImplementedException("GLSL Instruction"); 74 NotImplemented();
75} 75}
76 76
77void EmitConvertU32F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 77void EmitConvertU32F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -86,7 +86,7 @@ void EmitConvertU32F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
86 86
87void EmitConvertU64F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 87void EmitConvertU64F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
88 [[maybe_unused]] std::string_view value) { 88 [[maybe_unused]] std::string_view value) {
89 throw NotImplementedException("GLSL Instruction"); 89 NotImplemented();
90} 90}
91 91
92void EmitConvertU64F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 92void EmitConvertU64F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -111,12 +111,12 @@ void EmitConvertU32U64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
111 111
112void EmitConvertF16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 112void EmitConvertF16F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
113 [[maybe_unused]] std::string_view value) { 113 [[maybe_unused]] std::string_view value) {
114 throw NotImplementedException("GLSL Instruction"); 114 NotImplemented();
115} 115}
116 116
117void EmitConvertF32F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 117void EmitConvertF32F16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
118 [[maybe_unused]] std::string_view value) { 118 [[maybe_unused]] std::string_view value) {
119 throw NotImplementedException("GLSL Instruction"); 119 NotImplemented();
120} 120}
121 121
122void EmitConvertF32F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 122void EmitConvertF32F64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -131,52 +131,52 @@ void EmitConvertF64F32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
131 131
132void EmitConvertF16S8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 132void EmitConvertF16S8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
133 [[maybe_unused]] std::string_view value) { 133 [[maybe_unused]] std::string_view value) {
134 throw NotImplementedException("GLSL Instruction"); 134 NotImplemented();
135} 135}
136 136
137void EmitConvertF16S16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 137void EmitConvertF16S16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
138 [[maybe_unused]] std::string_view value) { 138 [[maybe_unused]] std::string_view value) {
139 throw NotImplementedException("GLSL Instruction"); 139 NotImplemented();
140} 140}
141 141
142void EmitConvertF16S32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 142void EmitConvertF16S32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
143 [[maybe_unused]] std::string_view value) { 143 [[maybe_unused]] std::string_view value) {
144 throw NotImplementedException("GLSL Instruction"); 144 NotImplemented();
145} 145}
146 146
147void EmitConvertF16S64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 147void EmitConvertF16S64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
148 [[maybe_unused]] std::string_view value) { 148 [[maybe_unused]] std::string_view value) {
149 throw NotImplementedException("GLSL Instruction"); 149 NotImplemented();
150} 150}
151 151
152void EmitConvertF16U8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 152void EmitConvertF16U8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
153 [[maybe_unused]] std::string_view value) { 153 [[maybe_unused]] std::string_view value) {
154 throw NotImplementedException("GLSL Instruction"); 154 NotImplemented();
155} 155}
156 156
157void EmitConvertF16U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 157void EmitConvertF16U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
158 [[maybe_unused]] std::string_view value) { 158 [[maybe_unused]] std::string_view value) {
159 throw NotImplementedException("GLSL Instruction"); 159 NotImplemented();
160} 160}
161 161
162void EmitConvertF16U32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 162void EmitConvertF16U32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
163 [[maybe_unused]] std::string_view value) { 163 [[maybe_unused]] std::string_view value) {
164 throw NotImplementedException("GLSL Instruction"); 164 NotImplemented();
165} 165}
166 166
167void EmitConvertF16U64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 167void EmitConvertF16U64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
168 [[maybe_unused]] std::string_view value) { 168 [[maybe_unused]] std::string_view value) {
169 throw NotImplementedException("GLSL Instruction"); 169 NotImplemented();
170} 170}
171 171
172void EmitConvertF32S8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 172void EmitConvertF32S8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
173 [[maybe_unused]] std::string_view value) { 173 [[maybe_unused]] std::string_view value) {
174 throw NotImplementedException("GLSL Instruction"); 174 NotImplemented();
175} 175}
176 176
177void EmitConvertF32S16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 177void EmitConvertF32S16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
178 [[maybe_unused]] std::string_view value) { 178 [[maybe_unused]] std::string_view value) {
179 throw NotImplementedException("GLSL Instruction"); 179 NotImplemented();
180} 180}
181 181
182void EmitConvertF32S32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 182void EmitConvertF32S32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -191,7 +191,7 @@ void EmitConvertF32S64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
191 191
192void EmitConvertF32U8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 192void EmitConvertF32U8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
193 [[maybe_unused]] std::string_view value) { 193 [[maybe_unused]] std::string_view value) {
194 throw NotImplementedException("GLSL Instruction"); 194 NotImplemented();
195} 195}
196 196
197void EmitConvertF32U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 197void EmitConvertF32U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -211,12 +211,12 @@ void EmitConvertF32U64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
211 211
212void EmitConvertF64S8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 212void EmitConvertF64S8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
213 [[maybe_unused]] std::string_view value) { 213 [[maybe_unused]] std::string_view value) {
214 throw NotImplementedException("GLSL Instruction"); 214 NotImplemented();
215} 215}
216 216
217void EmitConvertF64S16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 217void EmitConvertF64S16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
218 [[maybe_unused]] std::string_view value) { 218 [[maybe_unused]] std::string_view value) {
219 throw NotImplementedException("GLSL Instruction"); 219 NotImplemented();
220} 220}
221 221
222void EmitConvertF64S32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 222void EmitConvertF64S32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
@@ -231,12 +231,12 @@ void EmitConvertF64S64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
231 231
232void EmitConvertF64U8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 232void EmitConvertF64U8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
233 [[maybe_unused]] std::string_view value) { 233 [[maybe_unused]] std::string_view value) {
234 throw NotImplementedException("GLSL Instruction"); 234 NotImplemented();
235} 235}
236 236
237void EmitConvertF64U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 237void EmitConvertF64U16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
238 [[maybe_unused]] std::string_view value) { 238 [[maybe_unused]] std::string_view value) {
239 throw NotImplementedException("GLSL Instruction"); 239 NotImplemented();
240} 240}
241 241
242void EmitConvertF64U32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 242void EmitConvertF64U32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp
index 342d4efb2..49ab182ea 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp
@@ -29,7 +29,7 @@ bool Precise(IR::Inst& inst) {
29 29
30void EmitFPAbs16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 30void EmitFPAbs16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
31 [[maybe_unused]] std::string_view value) { 31 [[maybe_unused]] std::string_view value) {
32 throw NotImplementedException("GLSL Instruction"); 32 NotImplemented();
33} 33}
34 34
35void EmitFPAbs32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 35void EmitFPAbs32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -42,7 +42,7 @@ void EmitFPAbs64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
42 42
43void EmitFPAdd16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 43void EmitFPAdd16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
44 [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b) { 44 [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b) {
45 throw NotImplementedException("GLSL Instruction"); 45 NotImplemented();
46} 46}
47 47
48void EmitFPAdd32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) { 48void EmitFPAdd32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
@@ -64,7 +64,7 @@ void EmitFPAdd64(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::stri
64void EmitFPFma16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 64void EmitFPFma16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
65 [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b, 65 [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b,
66 [[maybe_unused]] std::string_view c) { 66 [[maybe_unused]] std::string_view c) {
67 throw NotImplementedException("GLSL Instruction"); 67 NotImplemented();
68} 68}
69 69
70void EmitFPFma32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b, 70void EmitFPFma32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b,
@@ -103,7 +103,7 @@ void EmitFPMin64(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::stri
103 103
104void EmitFPMul16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 104void EmitFPMul16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
105 [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b) { 105 [[maybe_unused]] std::string_view a, [[maybe_unused]] std::string_view b) {
106 throw NotImplementedException("GLSL Instruction"); 106 NotImplemented();
107} 107}
108 108
109void EmitFPMul32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) { 109void EmitFPMul32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::string_view b) {
@@ -124,7 +124,7 @@ void EmitFPMul64(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::stri
124 124
125void EmitFPNeg16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 125void EmitFPNeg16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
126 [[maybe_unused]] std::string_view value) { 126 [[maybe_unused]] std::string_view value) {
127 throw NotImplementedException("GLSL Instruction"); 127 NotImplemented();
128} 128}
129 129
130void EmitFPNeg32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 130void EmitFPNeg32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -166,7 +166,7 @@ void EmitFPRecipSqrt32([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
166 166
167void EmitFPRecipSqrt64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 167void EmitFPRecipSqrt64([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
168 [[maybe_unused]] std::string_view value) { 168 [[maybe_unused]] std::string_view value) {
169 throw NotImplementedException("GLSL Instruction"); 169 NotImplemented();
170} 170}
171 171
172void EmitFPSqrt(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 172void EmitFPSqrt(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -175,7 +175,7 @@ void EmitFPSqrt(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
175 175
176void EmitFPSaturate16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 176void EmitFPSaturate16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
177 [[maybe_unused]] std::string_view value) { 177 [[maybe_unused]] std::string_view value) {
178 throw NotImplementedException("GLSL Instruction"); 178 NotImplemented();
179} 179}
180 180
181void EmitFPSaturate32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 181void EmitFPSaturate32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -190,7 +190,7 @@ void EmitFPClamp16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst&
190 [[maybe_unused]] std::string_view value, 190 [[maybe_unused]] std::string_view value,
191 [[maybe_unused]] std::string_view min_value, 191 [[maybe_unused]] std::string_view min_value,
192 [[maybe_unused]] std::string_view max_value) { 192 [[maybe_unused]] std::string_view max_value) {
193 throw NotImplementedException("GLSL Instruction"); 193 NotImplemented();
194} 194}
195 195
196void EmitFPClamp32(EmitContext& ctx, IR::Inst& inst, std::string_view value, 196void EmitFPClamp32(EmitContext& ctx, IR::Inst& inst, std::string_view value,
@@ -207,7 +207,7 @@ void EmitFPClamp64(EmitContext& ctx, IR::Inst& inst, std::string_view value,
207 207
208void EmitFPRoundEven16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 208void EmitFPRoundEven16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
209 [[maybe_unused]] std::string_view value) { 209 [[maybe_unused]] std::string_view value) {
210 throw NotImplementedException("GLSL Instruction"); 210 NotImplemented();
211} 211}
212 212
213void EmitFPRoundEven32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 213void EmitFPRoundEven32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -220,7 +220,7 @@ void EmitFPRoundEven64(EmitContext& ctx, IR::Inst& inst, std::string_view value)
220 220
221void EmitFPFloor16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 221void EmitFPFloor16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
222 [[maybe_unused]] std::string_view value) { 222 [[maybe_unused]] std::string_view value) {
223 throw NotImplementedException("GLSL Instruction"); 223 NotImplemented();
224} 224}
225 225
226void EmitFPFloor32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 226void EmitFPFloor32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -233,7 +233,7 @@ void EmitFPFloor64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
233 233
234void EmitFPCeil16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 234void EmitFPCeil16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
235 [[maybe_unused]] std::string_view value) { 235 [[maybe_unused]] std::string_view value) {
236 throw NotImplementedException("GLSL Instruction"); 236 NotImplemented();
237} 237}
238 238
239void EmitFPCeil32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 239void EmitFPCeil32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -246,7 +246,7 @@ void EmitFPCeil64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
246 246
247void EmitFPTrunc16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 247void EmitFPTrunc16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
248 [[maybe_unused]] std::string_view value) { 248 [[maybe_unused]] std::string_view value) {
249 throw NotImplementedException("GLSL Instruction"); 249 NotImplemented();
250} 250}
251 251
252void EmitFPTrunc32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 252void EmitFPTrunc32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
@@ -259,7 +259,7 @@ void EmitFPTrunc64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
259 259
260void EmitFPOrdEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs, 260void EmitFPOrdEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs,
261 [[maybe_unused]] std::string_view rhs) { 261 [[maybe_unused]] std::string_view rhs) {
262 throw NotImplementedException("GLSL instruction"); 262 NotImplemented();
263} 263}
264 264
265void EmitFPOrdEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 265void EmitFPOrdEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -274,7 +274,7 @@ void EmitFPOrdEqual64(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
274 274
275void EmitFPUnordEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs, 275void EmitFPUnordEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs,
276 [[maybe_unused]] std::string_view rhs) { 276 [[maybe_unused]] std::string_view rhs) {
277 throw NotImplementedException("GLSL instruction"); 277 NotImplemented();
278} 278}
279 279
280void EmitFPUnordEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 280void EmitFPUnordEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -289,7 +289,7 @@ void EmitFPUnordEqual64(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
289 289
290void EmitFPOrdNotEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs, 290void EmitFPOrdNotEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs,
291 [[maybe_unused]] std::string_view rhs) { 291 [[maybe_unused]] std::string_view rhs) {
292 throw NotImplementedException("GLSL instruction"); 292 NotImplemented();
293} 293}
294 294
295void EmitFPOrdNotEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 295void EmitFPOrdNotEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -304,7 +304,7 @@ void EmitFPOrdNotEqual64(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
304 304
305void EmitFPUnordNotEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs, 305void EmitFPUnordNotEqual16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs,
306 [[maybe_unused]] std::string_view rhs) { 306 [[maybe_unused]] std::string_view rhs) {
307 throw NotImplementedException("GLSL instruction"); 307 NotImplemented();
308} 308}
309 309
310void EmitFPUnordNotEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 310void EmitFPUnordNotEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -319,7 +319,7 @@ void EmitFPUnordNotEqual64(EmitContext& ctx, IR::Inst& inst, std::string_view lh
319 319
320void EmitFPOrdLessThan16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs, 320void EmitFPOrdLessThan16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs,
321 [[maybe_unused]] std::string_view rhs) { 321 [[maybe_unused]] std::string_view rhs) {
322 throw NotImplementedException("GLSL instruction"); 322 NotImplemented();
323} 323}
324 324
325void EmitFPOrdLessThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 325void EmitFPOrdLessThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -334,7 +334,7 @@ void EmitFPOrdLessThan64(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
334 334
335void EmitFPUnordLessThan16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs, 335void EmitFPUnordLessThan16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view lhs,
336 [[maybe_unused]] std::string_view rhs) { 336 [[maybe_unused]] std::string_view rhs) {
337 throw NotImplementedException("GLSL instruction"); 337 NotImplemented();
338} 338}
339 339
340void EmitFPUnordLessThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 340void EmitFPUnordLessThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -350,7 +350,7 @@ void EmitFPUnordLessThan64(EmitContext& ctx, IR::Inst& inst, std::string_view lh
350void EmitFPOrdGreaterThan16([[maybe_unused]] EmitContext& ctx, 350void EmitFPOrdGreaterThan16([[maybe_unused]] EmitContext& ctx,
351 [[maybe_unused]] std::string_view lhs, 351 [[maybe_unused]] std::string_view lhs,
352 [[maybe_unused]] std::string_view rhs) { 352 [[maybe_unused]] std::string_view rhs) {
353 throw NotImplementedException("GLSL instruction"); 353 NotImplemented();
354} 354}
355 355
356void EmitFPOrdGreaterThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 356void EmitFPOrdGreaterThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -366,7 +366,7 @@ void EmitFPOrdGreaterThan64(EmitContext& ctx, IR::Inst& inst, std::string_view l
366void EmitFPUnordGreaterThan16([[maybe_unused]] EmitContext& ctx, 366void EmitFPUnordGreaterThan16([[maybe_unused]] EmitContext& ctx,
367 [[maybe_unused]] std::string_view lhs, 367 [[maybe_unused]] std::string_view lhs,
368 [[maybe_unused]] std::string_view rhs) { 368 [[maybe_unused]] std::string_view rhs) {
369 throw NotImplementedException("GLSL instruction"); 369 NotImplemented();
370} 370}
371 371
372void EmitFPUnordGreaterThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 372void EmitFPUnordGreaterThan32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -382,7 +382,7 @@ void EmitFPUnordGreaterThan64(EmitContext& ctx, IR::Inst& inst, std::string_view
382void EmitFPOrdLessThanEqual16([[maybe_unused]] EmitContext& ctx, 382void EmitFPOrdLessThanEqual16([[maybe_unused]] EmitContext& ctx,
383 [[maybe_unused]] std::string_view lhs, 383 [[maybe_unused]] std::string_view lhs,
384 [[maybe_unused]] std::string_view rhs) { 384 [[maybe_unused]] std::string_view rhs) {
385 throw NotImplementedException("GLSL instruction"); 385 NotImplemented();
386} 386}
387 387
388void EmitFPOrdLessThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 388void EmitFPOrdLessThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -398,7 +398,7 @@ void EmitFPOrdLessThanEqual64(EmitContext& ctx, IR::Inst& inst, std::string_view
398void EmitFPUnordLessThanEqual16([[maybe_unused]] EmitContext& ctx, 398void EmitFPUnordLessThanEqual16([[maybe_unused]] EmitContext& ctx,
399 [[maybe_unused]] std::string_view lhs, 399 [[maybe_unused]] std::string_view lhs,
400 [[maybe_unused]] std::string_view rhs) { 400 [[maybe_unused]] std::string_view rhs) {
401 throw NotImplementedException("GLSL instruction"); 401 NotImplemented();
402} 402}
403 403
404void EmitFPUnordLessThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 404void EmitFPUnordLessThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -414,7 +414,7 @@ void EmitFPUnordLessThanEqual64(EmitContext& ctx, IR::Inst& inst, std::string_vi
414void EmitFPOrdGreaterThanEqual16([[maybe_unused]] EmitContext& ctx, 414void EmitFPOrdGreaterThanEqual16([[maybe_unused]] EmitContext& ctx,
415 [[maybe_unused]] std::string_view lhs, 415 [[maybe_unused]] std::string_view lhs,
416 [[maybe_unused]] std::string_view rhs) { 416 [[maybe_unused]] std::string_view rhs) {
417 throw NotImplementedException("GLSL instruction"); 417 NotImplemented();
418} 418}
419 419
420void EmitFPOrdGreaterThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 420void EmitFPOrdGreaterThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -430,7 +430,7 @@ void EmitFPOrdGreaterThanEqual64(EmitContext& ctx, IR::Inst& inst, std::string_v
430void EmitFPUnordGreaterThanEqual16([[maybe_unused]] EmitContext& ctx, 430void EmitFPUnordGreaterThanEqual16([[maybe_unused]] EmitContext& ctx,
431 [[maybe_unused]] std::string_view lhs, 431 [[maybe_unused]] std::string_view lhs,
432 [[maybe_unused]] std::string_view rhs) { 432 [[maybe_unused]] std::string_view rhs) {
433 throw NotImplementedException("GLSL instruction"); 433 NotImplemented();
434} 434}
435 435
436void EmitFPUnordGreaterThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, 436void EmitFPUnordGreaterThanEqual32(EmitContext& ctx, IR::Inst& inst, std::string_view lhs,
@@ -445,7 +445,7 @@ void EmitFPUnordGreaterThanEqual64(EmitContext& ctx, IR::Inst& inst, std::string
445 445
446void EmitFPIsNan16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 446void EmitFPIsNan16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
447 [[maybe_unused]] std::string_view value) { 447 [[maybe_unused]] std::string_view value) {
448 throw NotImplementedException("GLSL instruction"); 448 NotImplemented();
449} 449}
450 450
451void EmitFPIsNan32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { 451void EmitFPIsNan32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
index f339f4ade..3de19cdfe 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_image.cpp
@@ -387,116 +387,116 @@ void EmitImageGradient([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::I
387 [[maybe_unused]] std::string_view derivates, 387 [[maybe_unused]] std::string_view derivates,
388 [[maybe_unused]] std::string_view offset, 388 [[maybe_unused]] std::string_view offset,
389 [[maybe_unused]] std::string_view lod_clamp) { 389 [[maybe_unused]] std::string_view lod_clamp) {
390 throw NotImplementedException("GLSL Instruction"); 390 NotImplemented();
391} 391}
392 392
393void EmitImageRead([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 393void EmitImageRead([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
394 [[maybe_unused]] const IR::Value& index, 394 [[maybe_unused]] const IR::Value& index,
395 [[maybe_unused]] std::string_view coords) { 395 [[maybe_unused]] std::string_view coords) {
396 throw NotImplementedException("GLSL Instruction"); 396 NotImplemented();
397} 397}
398 398
399void EmitImageWrite([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 399void EmitImageWrite([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
400 [[maybe_unused]] const IR::Value& index, 400 [[maybe_unused]] const IR::Value& index,
401 [[maybe_unused]] std::string_view coords, 401 [[maybe_unused]] std::string_view coords,
402 [[maybe_unused]] std::string_view color) { 402 [[maybe_unused]] std::string_view color) {
403 throw NotImplementedException("GLSL Instruction"); 403 NotImplemented();
404} 404}
405 405
406void EmitBindlessImageSampleImplicitLod(EmitContext&) { 406void EmitBindlessImageSampleImplicitLod(EmitContext&) {
407 throw NotImplementedException("GLSL Instruction"); 407 NotImplemented();
408} 408}
409 409
410void EmitBindlessImageSampleExplicitLod(EmitContext&) { 410void EmitBindlessImageSampleExplicitLod(EmitContext&) {
411 throw NotImplementedException("GLSL Instruction"); 411 NotImplemented();
412} 412}
413 413
414void EmitBindlessImageSampleDrefImplicitLod(EmitContext&) { 414void EmitBindlessImageSampleDrefImplicitLod(EmitContext&) {
415 throw NotImplementedException("GLSL Instruction"); 415 NotImplemented();
416} 416}
417 417
418void EmitBindlessImageSampleDrefExplicitLod(EmitContext&) { 418void EmitBindlessImageSampleDrefExplicitLod(EmitContext&) {
419 throw NotImplementedException("GLSL Instruction"); 419 NotImplemented();
420} 420}
421 421
422void EmitBindlessImageGather(EmitContext&) { 422void EmitBindlessImageGather(EmitContext&) {
423 throw NotImplementedException("GLSL Instruction"); 423 NotImplemented();
424} 424}
425 425
426void EmitBindlessImageGatherDref(EmitContext&) { 426void EmitBindlessImageGatherDref(EmitContext&) {
427 throw NotImplementedException("GLSL Instruction"); 427 NotImplemented();
428} 428}
429 429
430void EmitBindlessImageFetch(EmitContext&) { 430void EmitBindlessImageFetch(EmitContext&) {
431 throw NotImplementedException("GLSL Instruction"); 431 NotImplemented();
432} 432}
433 433
434void EmitBindlessImageQueryDimensions(EmitContext&) { 434void EmitBindlessImageQueryDimensions(EmitContext&) {
435 throw NotImplementedException("GLSL Instruction"); 435 NotImplemented();
436} 436}
437 437
438void EmitBindlessImageQueryLod(EmitContext&) { 438void EmitBindlessImageQueryLod(EmitContext&) {
439 throw NotImplementedException("GLSL Instruction"); 439 NotImplemented();
440} 440}
441 441
442void EmitBindlessImageGradient(EmitContext&) { 442void EmitBindlessImageGradient(EmitContext&) {
443 throw NotImplementedException("GLSL Instruction"); 443 NotImplemented();
444} 444}
445 445
446void EmitBindlessImageRead(EmitContext&) { 446void EmitBindlessImageRead(EmitContext&) {
447 throw NotImplementedException("GLSL Instruction"); 447 NotImplemented();
448} 448}
449 449
450void EmitBindlessImageWrite(EmitContext&) { 450void EmitBindlessImageWrite(EmitContext&) {
451 throw NotImplementedException("GLSL Instruction"); 451 NotImplemented();
452} 452}
453 453
454void EmitBoundImageSampleImplicitLod(EmitContext&) { 454void EmitBoundImageSampleImplicitLod(EmitContext&) {
455 throw NotImplementedException("GLSL Instruction"); 455 NotImplemented();
456} 456}
457 457
458void EmitBoundImageSampleExplicitLod(EmitContext&) { 458void EmitBoundImageSampleExplicitLod(EmitContext&) {
459 throw NotImplementedException("GLSL Instruction"); 459 NotImplemented();
460} 460}
461 461
462void EmitBoundImageSampleDrefImplicitLod(EmitContext&) { 462void EmitBoundImageSampleDrefImplicitLod(EmitContext&) {
463 throw NotImplementedException("GLSL Instruction"); 463 NotImplemented();
464} 464}
465 465
466void EmitBoundImageSampleDrefExplicitLod(EmitContext&) { 466void EmitBoundImageSampleDrefExplicitLod(EmitContext&) {
467 throw NotImplementedException("GLSL Instruction"); 467 NotImplemented();
468} 468}
469 469
470void EmitBoundImageGather(EmitContext&) { 470void EmitBoundImageGather(EmitContext&) {
471 throw NotImplementedException("GLSL Instruction"); 471 NotImplemented();
472} 472}
473 473
474void EmitBoundImageGatherDref(EmitContext&) { 474void EmitBoundImageGatherDref(EmitContext&) {
475 throw NotImplementedException("GLSL Instruction"); 475 NotImplemented();
476} 476}
477 477
478void EmitBoundImageFetch(EmitContext&) { 478void EmitBoundImageFetch(EmitContext&) {
479 throw NotImplementedException("GLSL Instruction"); 479 NotImplemented();
480} 480}
481 481
482void EmitBoundImageQueryDimensions(EmitContext&) { 482void EmitBoundImageQueryDimensions(EmitContext&) {
483 throw NotImplementedException("GLSL Instruction"); 483 NotImplemented();
484} 484}
485 485
486void EmitBoundImageQueryLod(EmitContext&) { 486void EmitBoundImageQueryLod(EmitContext&) {
487 throw NotImplementedException("GLSL Instruction"); 487 NotImplemented();
488} 488}
489 489
490void EmitBoundImageGradient(EmitContext&) { 490void EmitBoundImageGradient(EmitContext&) {
491 throw NotImplementedException("GLSL Instruction"); 491 NotImplemented();
492} 492}
493 493
494void EmitBoundImageRead(EmitContext&) { 494void EmitBoundImageRead(EmitContext&) {
495 throw NotImplementedException("GLSL Instruction"); 495 NotImplemented();
496} 496}
497 497
498void EmitBoundImageWrite(EmitContext&) { 498void EmitBoundImageWrite(EmitContext&) {
499 throw NotImplementedException("GLSL Instruction"); 499 NotImplemented();
500} 500}
501 501
502} // namespace Shader::Backend::GLSL 502} // namespace Shader::Backend::GLSL
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h b/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
index c2e5aff16..5e0195b0f 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
@@ -21,6 +21,8 @@ class EmitContext;
21inline void EmitSetLoopSafetyVariable(EmitContext&) {} 21inline void EmitSetLoopSafetyVariable(EmitContext&) {}
22inline void EmitGetLoopSafetyVariable(EmitContext&) {} 22inline void EmitGetLoopSafetyVariable(EmitContext&) {}
23 23
24#define NotImplemented() throw NotImplementedException("GLSL instruction {}", __func__)
25
24// Microinstruction emitters 26// Microinstruction emitters
25void EmitPhi(EmitContext& ctx, IR::Inst& inst); 27void EmitPhi(EmitContext& ctx, IR::Inst& inst);
26void EmitVoid(EmitContext& ctx); 28void EmitVoid(EmitContext& ctx);
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_not_implemented.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_not_implemented.cpp
index 599ff90e0..e3d0b15ba 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_not_implemented.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_not_implemented.cpp
@@ -14,10 +14,6 @@
14 14
15namespace Shader::Backend::GLSL { 15namespace Shader::Backend::GLSL {
16 16
17static void NotImplemented() {
18 throw NotImplementedException("GLSL instruction");
19}
20
21void EmitPhi(EmitContext& ctx, IR::Inst& phi) { 17void EmitPhi(EmitContext& ctx, IR::Inst& phi) {
22 const size_t num_args{phi.NumArgs()}; 18 const size_t num_args{phi.NumArgs()};
23 for (size_t i = 0; i < num_args; ++i) { 19 for (size_t i = 0; i < num_args; ++i) {
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_select.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_select.cpp
index d3c8d330f..49fba9073 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_select.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_select.cpp
@@ -17,13 +17,13 @@ void EmitSelectU1(EmitContext& ctx, IR::Inst& inst, std::string_view cond,
17void EmitSelectU8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view cond, 17void EmitSelectU8([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view cond,
18 [[maybe_unused]] std::string_view true_value, 18 [[maybe_unused]] std::string_view true_value,
19 [[maybe_unused]] std::string_view false_value) { 19 [[maybe_unused]] std::string_view false_value) {
20 throw NotImplementedException("GLSL Instruction"); 20 NotImplemented();
21} 21}
22 22
23void EmitSelectU16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view cond, 23void EmitSelectU16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view cond,
24 [[maybe_unused]] std::string_view true_value, 24 [[maybe_unused]] std::string_view true_value,
25 [[maybe_unused]] std::string_view false_value) { 25 [[maybe_unused]] std::string_view false_value) {
26 throw NotImplementedException("GLSL Instruction"); 26 NotImplemented();
27} 27}
28 28
29void EmitSelectU32(EmitContext& ctx, IR::Inst& inst, std::string_view cond, 29void EmitSelectU32(EmitContext& ctx, IR::Inst& inst, std::string_view cond,
@@ -39,7 +39,7 @@ void EmitSelectU64(EmitContext& ctx, IR::Inst& inst, std::string_view cond,
39void EmitSelectF16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view cond, 39void EmitSelectF16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] std::string_view cond,
40 [[maybe_unused]] std::string_view true_value, 40 [[maybe_unused]] std::string_view true_value,
41 [[maybe_unused]] std::string_view false_value) { 41 [[maybe_unused]] std::string_view false_value) {
42 throw NotImplementedException("GLSL Instruction"); 42 NotImplemented();
43} 43}
44 44
45void EmitSelectF32(EmitContext& ctx, IR::Inst& inst, std::string_view cond, 45void EmitSelectF32(EmitContext& ctx, IR::Inst& inst, std::string_view cond,
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_warp.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_warp.cpp
index 0b6c5ad82..fa11c656f 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_warp.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_warp.cpp
@@ -38,7 +38,7 @@ std::string GetMaxThreadId(std::string_view thread_id, std::string_view clamp,
38} // namespace 38} // namespace
39 39
40void EmitLaneId([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) { 40void EmitLaneId([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst) {
41 throw NotImplementedException("GLSL Instruction"); 41 NotImplemented();
42} 42}
43 43
44void EmitVoteAll(EmitContext& ctx, IR::Inst& inst, std::string_view pred) { 44void EmitVoteAll(EmitContext& ctx, IR::Inst& inst, std::string_view pred) {
@@ -150,7 +150,7 @@ void EmitShuffleButterfly(EmitContext& ctx, IR::Inst& inst, std::string_view val
150void EmitFSwizzleAdd([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst, 150void EmitFSwizzleAdd([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& inst,
151 [[maybe_unused]] std::string_view op_a, [[maybe_unused]] std::string_view op_b, 151 [[maybe_unused]] std::string_view op_a, [[maybe_unused]] std::string_view op_b,
152 [[maybe_unused]] std::string_view swizzle) { 152 [[maybe_unused]] std::string_view swizzle) {
153 throw NotImplementedException("GLSL Instruction"); 153 NotImplemented();
154} 154}
155 155
156void EmitDPdxFine(EmitContext& ctx, IR::Inst& inst, std::string_view op_a) { 156void EmitDPdxFine(EmitContext& ctx, IR::Inst& inst, std::string_view op_a) {