summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.cpp3
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.h4
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp8
3 files changed, 15 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.cpp b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
index 9ec970706..c4d5874ca 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
@@ -341,6 +341,9 @@ void SetupCapabilities(const Profile& profile, const Info& info, EmitContext& ct
341 if (!ctx.profile.xfb_varyings.empty()) { 341 if (!ctx.profile.xfb_varyings.empty()) {
342 ctx.AddCapability(spv::Capability::TransformFeedback); 342 ctx.AddCapability(spv::Capability::TransformFeedback);
343 } 343 }
344 if (info.uses_derivates) {
345 ctx.AddCapability(spv::Capability::DerivativeControl);
346 }
344 // TODO: Track this usage 347 // TODO: Track this usage
345 ctx.AddCapability(spv::Capability::ImageGatherExtended); 348 ctx.AddCapability(spv::Capability::ImageGatherExtended);
346 ctx.AddCapability(spv::Capability::ImageQuery); 349 ctx.AddCapability(spv::Capability::ImageQuery);
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.h b/src/shader_recompiler/backend/spirv/emit_spirv.h
index 7949d08d0..dec4f434a 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.h
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.h
@@ -529,4 +529,8 @@ Id EmitShuffleButterfly(EmitContext& ctx, IR::Inst* inst, Id value, Id index, Id
529 Id segmentation_mask); 529 Id segmentation_mask);
530Id EmitFSwizzleAdd(EmitContext& ctx, Id op_a, Id op_b, Id swizzle); 530Id EmitFSwizzleAdd(EmitContext& ctx, Id op_a, Id op_b, Id swizzle);
531 531
532Id EmitDPdxFine(EmitContext& ctx, Id op_a);
533
534Id EmitDPdyFine(EmitContext& ctx, Id op_a);
535
532} // namespace Shader::Backend::SPIRV 536} // namespace Shader::Backend::SPIRV
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp
index 1c23ccc08..d53412204 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp
@@ -183,4 +183,12 @@ Id EmitFSwizzleAdd(EmitContext& ctx, Id op_a, Id op_b, Id swizzle) {
183 return ctx.OpFAdd(ctx.F32[1], result_a, result_b); 183 return ctx.OpFAdd(ctx.F32[1], result_a, result_b);
184} 184}
185 185
186Id EmitDPdxFine(EmitContext& ctx, Id op_a) {
187 return ctx.OpDPdxFine(ctx.F32[1], op_a);
188}
189
190Id EmitDPdyFine(EmitContext& ctx, Id op_a) {
191 return ctx.OpDPdyFine(ctx.F32[1], op_a);
192}
193
186} // namespace Shader::Backend::SPIRV 194} // namespace Shader::Backend::SPIRV