summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp30
1 files changed, 3 insertions, 27 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
index f01d69d91..079e226de 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
@@ -7,11 +7,7 @@
7 7
8namespace Shader::Backend::SPIRV { 8namespace Shader::Backend::SPIRV {
9 9
10Id EmitCompositeConstructU32x2(EmitContext& ctx, IR::Inst* inst, Id e1, Id e2) { 10Id EmitCompositeConstructU32x2(EmitContext& ctx, Id e1, Id e2) {
11 const auto info{inst->Flags<IR::CompositeDecoration>()};
12 if (info.is_constant) {
13 return ctx.ConstantComposite(ctx.U32[2], e1, e2);
14 }
15 return ctx.OpCompositeConstruct(ctx.U32[2], e1, e2); 11 return ctx.OpCompositeConstruct(ctx.U32[2], e1, e2);
16} 12}
17 13
@@ -47,12 +43,7 @@ Id EmitCompositeInsertU32x4(EmitContext& ctx, Id composite, Id object, u32 index
47 return ctx.OpCompositeInsert(ctx.U32[4], object, composite, index); 43 return ctx.OpCompositeInsert(ctx.U32[4], object, composite, index);
48} 44}
49 45
50Id EmitCompositeConstructF16x2(EmitContext& ctx, IR::Inst* inst, Id e1, Id e2) { 46Id EmitCompositeConstructF16x2(EmitContext& ctx, Id e1, Id e2) {
51
52 const auto info{inst->Flags<IR::CompositeDecoration>()};
53 if (info.is_constant) {
54 return ctx.ConstantComposite(ctx.F16[2], e1, e2);
55 }
56 return ctx.OpCompositeConstruct(ctx.F16[2], e1, e2); 47 return ctx.OpCompositeConstruct(ctx.F16[2], e1, e2);
57} 48}
58 49
@@ -88,11 +79,7 @@ Id EmitCompositeInsertF16x4(EmitContext& ctx, Id composite, Id object, u32 index
88 return ctx.OpCompositeInsert(ctx.F16[4], object, composite, index); 79 return ctx.OpCompositeInsert(ctx.F16[4], object, composite, index);
89} 80}
90 81
91Id EmitCompositeConstructF32x2(EmitContext& ctx, IR::Inst* inst, Id e1, Id e2) { 82Id EmitCompositeConstructF32x2(EmitContext& ctx, Id e1, Id e2) {
92 const auto info{inst->Flags<IR::CompositeDecoration>()};
93 if (info.is_constant) {
94 return ctx.ConstantComposite(ctx.F32[2], e1, e2);
95 }
96 return ctx.OpCompositeConstruct(ctx.F32[2], e1, e2); 83 return ctx.OpCompositeConstruct(ctx.F32[2], e1, e2);
97} 84}
98 85
@@ -164,15 +151,4 @@ Id EmitCompositeInsertF64x4(EmitContext& ctx, Id composite, Id object, u32 index
164 return ctx.OpCompositeInsert(ctx.F64[4], object, composite, index); 151 return ctx.OpCompositeInsert(ctx.F64[4], object, composite, index);
165} 152}
166 153
167Id EmitCompositeConstructArrayU32x2(EmitContext& ctx, IR::Inst* inst, Id e1, Id e2, Id e3, Id e4) {
168 const auto info{inst->Flags<IR::CompositeDecoration>()};
169 if (info.is_constant) {
170 return ctx.ConstantComposite(ctx.array_U32x2, e1, e2, e3, e4);
171 }
172 if (ctx.profile.support_variadic_ptp) {
173 return ctx.OpCompositeConstruct(ctx.array_U32x2, e1, e2, e3, e4);
174 }
175 return {};
176}
177
178} // namespace Shader::Backend::SPIRV 154} // namespace Shader::Backend::SPIRV