Commit cd631595 by Chris Forbes

Implement OpImageFetch

Bug: b/129523279 Test: dEQP-VK.image.* Test: dEQP-VK.texture* Change-Id: I70a5d6b53d4df09757b092d239b8c7b31bfcecd7 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30068Reviewed-by: 's avatarBen Clayton <bclayton@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Tested-by: 's avatarChris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent fa82c34f
......@@ -842,6 +842,7 @@ namespace sw
case spv::OpPhi:
case spv::OpImageSampleImplicitLod:
case spv::OpImageSampleExplicitLod:
case spv::OpImageFetch:
case spv::OpImageQuerySize:
case spv::OpImageRead:
case spv::OpImageTexelPointer:
......@@ -2390,6 +2391,9 @@ namespace sw
case spv::OpImageSampleExplicitLod:
return EmitImageSampleExplicitLod(insn, state);
case spv::OpImageFetch:
return EmitImageFetch(insn, state);
case spv::OpImageQuerySize:
return EmitImageQuerySize(insn, state);
......@@ -4474,6 +4478,11 @@ namespace sw
return EmitResult::Continue;
}
SpirvShader::EmitResult SpirvShader::EmitImageFetch(InsnIterator insn, EmitState *state) const
{
return EmitImageSample({Fetch}, insn, state);
}
SpirvShader::EmitResult SpirvShader::EmitImageSample(ImageInstruction instruction, InsnIterator insn, EmitState *state) const
{
Type::ID resultTypeId = insn.word(1);
......
......@@ -869,6 +869,7 @@ namespace sw
EmitResult EmitPhi(InsnIterator insn, EmitState *state) const;
EmitResult EmitImageSampleImplicitLod(InsnIterator insn, EmitState *state) const;
EmitResult EmitImageSampleExplicitLod(InsnIterator insn, EmitState *state) const;
EmitResult EmitImageFetch(InsnIterator insn, EmitState *state) const;
EmitResult EmitImageSample(ImageInstruction instruction, InsnIterator insn, EmitState *state) const;
EmitResult EmitImageQuerySize(InsnIterator insn, EmitState *state) const;
EmitResult EmitImageRead(InsnIterator insn, EmitState *state) const;
......
......@@ -277,4 +277,4 @@ sw::AddressingMode SpirvShader::convertAddressingMode(int coordinateIndex, VkSam
}
}
} // namespace sw
\ No newline at end of file
} // namespace sw
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