diff options
Diffstat (limited to 'src/shader_recompiler/backend/spirv')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv.cpp | 3 | ||||
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv.h | 4 | ||||
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp | 8 |
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); |
| 530 | Id EmitFSwizzleAdd(EmitContext& ctx, Id op_a, Id op_b, Id swizzle); | 530 | Id EmitFSwizzleAdd(EmitContext& ctx, Id op_a, Id op_b, Id swizzle); |
| 531 | 531 | ||
| 532 | Id EmitDPdxFine(EmitContext& ctx, Id op_a); | ||
| 533 | |||
| 534 | Id 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 | ||
| 186 | Id EmitDPdxFine(EmitContext& ctx, Id op_a) { | ||
| 187 | return ctx.OpDPdxFine(ctx.F32[1], op_a); | ||
| 188 | } | ||
| 189 | |||
| 190 | Id 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 |