Generate correct image operand mask for Offset and ConstOffset(#77)
This commit is contained in:
parent
820a22fcc8
commit
86e608133c
@ -1188,7 +1188,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b
|
|||||||
xplicit = true;
|
xplicit = true;
|
||||||
}
|
}
|
||||||
if (parameters.offset) {
|
if (parameters.offset) {
|
||||||
mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask);
|
if (isConstant(parameters.offset))
|
||||||
|
mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetMask);
|
||||||
|
else
|
||||||
|
mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask);
|
||||||
texArgs[numArgs++] = parameters.offset;
|
texArgs[numArgs++] = parameters.offset;
|
||||||
}
|
}
|
||||||
// TBD: if Offset is constant, use ImageOperandsConstOffsetMask
|
// TBD: if Offset is constant, use ImageOperandsConstOffsetMask
|
||||||
|
@ -136,6 +136,11 @@ public:
|
|||||||
bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; }
|
bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; }
|
||||||
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; }
|
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; }
|
||||||
|
|
||||||
|
bool isConstant(Id resultId) const
|
||||||
|
{
|
||||||
|
Op opCode = getOpCode(resultId);
|
||||||
|
return opCode == OpConstantTrue || opCode == OpConstantFalse || opCode == OpConstant || opCode == OpConstantComposite || opCode == OpConstantNull;
|
||||||
|
}
|
||||||
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
|
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
|
||||||
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user