diff options
| author | 2021-05-17 02:52:01 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:31 -0400 | |
| commit | ec6fc5fe78c9038fc9ad7259b7b3a7be751ecef6 (patch) | |
| tree | 063963b0a197526467902ef9bfceff1be8f5b9ef /src/shader_recompiler/backend/spirv/emit_spirv_image.cpp | |
| parent | glasm: Add support for non-2D texture samples (diff) | |
| download | yuzu-ec6fc5fe78c9038fc9ad7259b7b3a7be751ecef6.tar.gz yuzu-ec6fc5fe78c9038fc9ad7259b7b3a7be751ecef6.tar.xz yuzu-ec6fc5fe78c9038fc9ad7259b7b3a7be751ecef6.zip | |
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv_image.cpp')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_image.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp index 5832104df..99b883746 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp | |||
| @@ -337,9 +337,9 @@ Id EmitImageSampleImplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& | |||
| 337 | } | 337 | } |
| 338 | 338 | ||
| 339 | Id EmitImageSampleExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | 339 | Id EmitImageSampleExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, |
| 340 | Id lod_lc, const IR::Value& offset) { | 340 | Id lod, const IR::Value& offset) { |
| 341 | const auto info{inst->Flags<IR::TextureInstInfo>()}; | 341 | const auto info{inst->Flags<IR::TextureInstInfo>()}; |
| 342 | const ImageOperands operands(ctx, false, true, info.has_lod_clamp != 0, lod_lc, offset); | 342 | const ImageOperands operands(ctx, false, true, false, lod, offset); |
| 343 | return Emit(&EmitContext::OpImageSparseSampleExplicitLod, | 343 | return Emit(&EmitContext::OpImageSparseSampleExplicitLod, |
| 344 | &EmitContext::OpImageSampleExplicitLod, ctx, inst, ctx.F32[4], | 344 | &EmitContext::OpImageSampleExplicitLod, ctx, inst, ctx.F32[4], |
| 345 | Texture(ctx, info, index), coords, operands.Mask(), operands.Span()); | 345 | Texture(ctx, info, index), coords, operands.Mask(), operands.Span()); |
| @@ -356,9 +356,9 @@ Id EmitImageSampleDrefImplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Va | |||
| 356 | } | 356 | } |
| 357 | 357 | ||
| 358 | Id EmitImageSampleDrefExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, | 358 | Id EmitImageSampleDrefExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, |
| 359 | Id coords, Id dref, Id lod_lc, const IR::Value& offset) { | 359 | Id coords, Id dref, Id lod, const IR::Value& offset) { |
| 360 | const auto info{inst->Flags<IR::TextureInstInfo>()}; | 360 | const auto info{inst->Flags<IR::TextureInstInfo>()}; |
| 361 | const ImageOperands operands(ctx, false, true, info.has_lod_clamp != 0, lod_lc, offset); | 361 | const ImageOperands operands(ctx, false, true, false, lod, offset); |
| 362 | return Emit(&EmitContext::OpImageSparseSampleDrefExplicitLod, | 362 | return Emit(&EmitContext::OpImageSparseSampleDrefExplicitLod, |
| 363 | &EmitContext::OpImageSampleDrefExplicitLod, ctx, inst, ctx.F32[1], | 363 | &EmitContext::OpImageSampleDrefExplicitLod, ctx, inst, ctx.F32[1], |
| 364 | Texture(ctx, info, index), coords, dref, operands.Mask(), operands.Span()); | 364 | Texture(ctx, info, index), coords, dref, operands.Mask(), operands.Span()); |