Rename ImageInstructionState to ImageInstructionSignature
This structure contains all the information about an Image Instruction's
opcode and parameter types, so "signature" is much more descriptive than
"state".
Bug: b/203730083
Change-Id: Ia334850127ffb0e6958fecee3486b537e2ac1802
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/59448
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Pipeline/SpirvShader.hpp b/src/Pipeline/SpirvShader.hpp
index f6a3443..a3a4b45 100644
--- a/src/Pipeline/SpirvShader.hpp
+++ b/src/Pipeline/SpirvShader.hpp
@@ -511,18 +511,18 @@
// Compact representation of image instruction state that is passed to the
// trampoline function for retrieving/generating the corresponding sampling routine.
- struct ImageInstructionState
+ struct ImageInstructionSignature
{
- ImageInstructionState(Variant variant, SamplerMethod samplerMethod)
- : state(0)
+ ImageInstructionSignature(Variant variant, SamplerMethod samplerMethod)
+ : signature(0)
{
this->variant = variant;
this->samplerMethod = samplerMethod;
}
// Unmarshal from raw 32-bit data
- explicit ImageInstructionState(uint32_t state)
- : state(state)
+ explicit ImageInstructionSignature(uint32_t signature)
+ : signature(signature)
{}
SamplerFunction getSamplerFunction() const
@@ -567,14 +567,14 @@
uint32_t sample : 1; // 0-1 scalar integer
};
- uint32_t state;
+ uint32_t signature;
};
};
// This gets stored as a literal in the generated code, so it should be compact.
- static_assert(sizeof(ImageInstructionState) == sizeof(uint32_t), "ImageInstructionState must be 32-bit");
+ static_assert(sizeof(ImageInstructionSignature) == sizeof(uint32_t), "ImageInstructionSignature must be 32-bit");
- struct ImageInstruction : public ImageInstructionState
+ struct ImageInstruction : public ImageInstructionSignature
{
ImageInstruction(InsnIterator insn, const SpirvShader &spirv);
@@ -594,7 +594,7 @@
Object::ID sampleId = 0;
private:
- static ImageInstructionState parseVariantAndMethod(InsnIterator insn);
+ static ImageInstructionSignature parseVariantAndMethod(InsnIterator insn);
static uint32_t getImageOperandsIndex(InsnIterator insn);
static uint32_t getImageOperandsMask(InsnIterator insn);
};
@@ -1376,8 +1376,8 @@
// Returns the pair <significand, exponent>
std::pair<SIMD::Float, SIMD::Int> Frexp(RValue<SIMD::Float> val) const;
- static ImageSampler *getImageSampler(const vk::Device *device, uint32_t instruction, uint32_t samplerId, uint32_t imageViewId);
- static std::shared_ptr<rr::Routine> emitSamplerRoutine(ImageInstructionState instruction, const Sampler &samplerState);
+ static ImageSampler *getImageSampler(const vk::Device *device, uint32_t signature, uint32_t samplerId, uint32_t imageViewId);
+ static std::shared_ptr<rr::Routine> emitSamplerRoutine(ImageInstructionSignature instruction, const Sampler &samplerState);
// TODO(b/129523279): Eliminate conversion and use vk::Sampler members directly.
static sw::FilterType convertFilterMode(const vk::SamplerState *samplerState, VkImageViewType imageViewType, SamplerMethod samplerMethod);
diff --git a/src/Pipeline/SpirvShaderImage.cpp b/src/Pipeline/SpirvShaderImage.cpp
index ab34cd2..346c506 100644
--- a/src/Pipeline/SpirvShaderImage.cpp
+++ b/src/Pipeline/SpirvShaderImage.cpp
@@ -88,7 +88,7 @@
namespace sw {
SpirvShader::ImageInstruction::ImageInstruction(InsnIterator insn, const SpirvShader &spirv)
- : ImageInstructionState(parseVariantAndMethod(insn))
+ : ImageInstructionSignature(parseVariantAndMethod(insn))
, position(insn.distanceFrom(spirv.begin()))
{
if(samplerMethod == Write)
@@ -209,7 +209,7 @@
}
}
-SpirvShader::ImageInstructionState SpirvShader::ImageInstruction::parseVariantAndMethod(InsnIterator insn)
+SpirvShader::ImageInstructionSignature SpirvShader::ImageInstruction::parseVariantAndMethod(InsnIterator insn)
{
uint32_t imageOperands = getImageOperandsMask(insn);
bool bias = imageOperands & spv::ImageOperandsBiasMask;
@@ -330,7 +330,7 @@
If(!cacheHit)
{
rr::Int imageViewId = *Pointer<rr::Int>(imageDescriptor + OFFSET(vk::SampledImageDescriptor, imageViewId));
- cache.function = Call(getImageSampler, state->routine->device, instruction.state, samplerId, imageViewId);
+ cache.function = Call(getImageSampler, state->routine->device, instruction.signature, samplerId, imageViewId);
cache.imageDescriptor = imageDescriptor;
cache.samplerId = samplerId;
}
diff --git a/src/Pipeline/SpirvShaderSampling.cpp b/src/Pipeline/SpirvShaderSampling.cpp
index 2d1a071..11d468f 100644
--- a/src/Pipeline/SpirvShaderSampling.cpp
+++ b/src/Pipeline/SpirvShaderSampling.cpp
@@ -30,16 +30,16 @@
namespace sw {
-SpirvShader::ImageSampler *SpirvShader::getImageSampler(const vk::Device *device, uint32_t inst, uint32_t samplerId, uint32_t imageViewId)
+SpirvShader::ImageSampler *SpirvShader::getImageSampler(const vk::Device *device, uint32_t signature, uint32_t samplerId, uint32_t imageViewId)
{
- ImageInstructionState instruction(inst);
+ ImageInstructionSignature instruction(signature);
ASSERT(imageViewId != 0 && (samplerId != 0 || instruction.samplerMethod == Fetch));
ASSERT(device);
- vk::Device::SamplingRoutineCache::Key key = { inst, samplerId, imageViewId };
+ vk::Device::SamplingRoutineCache::Key key = { signature, samplerId, imageViewId };
auto createSamplingRoutine = [&device](const vk::Device::SamplingRoutineCache::Key &key) {
- ImageInstructionState instruction(key.instruction);
+ ImageInstructionSignature instruction(key.instruction);
const vk::Identifier::State imageViewState = vk::Identifier(key.imageView).getState();
const vk::SamplerState *vkSamplerState = (key.sampler != 0) ? device->findSampler(key.sampler) : nullptr;
@@ -121,7 +121,7 @@
return (ImageSampler *)(routine->getEntry());
}
-std::shared_ptr<rr::Routine> SpirvShader::emitSamplerRoutine(ImageInstructionState instruction, const Sampler &samplerState)
+std::shared_ptr<rr::Routine> SpirvShader::emitSamplerRoutine(ImageInstructionSignature instruction, const Sampler &samplerState)
{
// TODO(b/129523279): Hold a separate mutex lock for the sampler being built.
rr::Function<Void(Pointer<Byte>, Pointer<SIMD::Float>, Pointer<SIMD::Float>, Pointer<Byte>)> function;