Commit 8ef6d1fe by Chris Forbes

Fix interaction between Dref and explicit lod

Test: dEQP-VK.glsl.texture_functions.* Change-Id: I326ccb88b0f93168d2f005abbc083d93ae239c3f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31049Tested-by: 's avatarChris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: 's avatarBen Clayton <bclayton@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 4a4c259f
...@@ -4628,7 +4628,8 @@ namespace sw ...@@ -4628,7 +4628,8 @@ namespace sw
SpirvShader::EmitResult SpirvShader::EmitImageSampleExplicitLod(Variant variant, InsnIterator insn, EmitState *state) const SpirvShader::EmitResult SpirvShader::EmitImageSampleExplicitLod(Variant variant, InsnIterator insn, EmitState *state) const
{ {
uint32_t imageOperands = static_cast<spv::ImageOperandsMask>(insn.word(5)); auto isDref = (variant == Dref) || (variant == ProjDref);
uint32_t imageOperands = static_cast<spv::ImageOperandsMask>(insn.word(isDref ? 6 : 5));
imageOperands &= ~spv::ImageOperandsConstOffsetMask; // Dealt with later. imageOperands &= ~spv::ImageOperandsConstOffsetMask; // Dealt with later.
if((imageOperands & spv::ImageOperandsLodMask) == imageOperands) if((imageOperands & spv::ImageOperandsLodMask) == imageOperands)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment