Merge pull request #286 from amdrexu/bugfix
SPV: Correct an issue in createUnaryMatrixOperation().
This commit is contained in:
commit
44b30cb183
@ -3334,18 +3334,18 @@ spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, spv::Deco
|
|||||||
// get the types sorted out
|
// get the types sorted out
|
||||||
int numCols = builder.getNumColumns(operand);
|
int numCols = builder.getNumColumns(operand);
|
||||||
int numRows = builder.getNumRows(operand);
|
int numRows = builder.getNumRows(operand);
|
||||||
spv::Id scalarType = builder.getScalarTypeId(typeId);
|
spv::Id srcVecType = builder.makeVectorType(builder.getScalarTypeId(builder.getTypeId(operand)), numRows);
|
||||||
spv::Id vecType = builder.makeVectorType(scalarType, numRows);
|
spv::Id destVecType = builder.makeVectorType(builder.getScalarTypeId(typeId), numRows);
|
||||||
std::vector<spv::Id> results;
|
std::vector<spv::Id> results;
|
||||||
|
|
||||||
// do each vector op
|
// do each vector op
|
||||||
for (int c = 0; c < numCols; ++c) {
|
for (int c = 0; c < numCols; ++c) {
|
||||||
std::vector<unsigned int> indexes;
|
std::vector<unsigned int> indexes;
|
||||||
indexes.push_back(c);
|
indexes.push_back(c);
|
||||||
spv::Id vec = builder.createCompositeExtract(operand, vecType, indexes);
|
spv::Id srcVec = builder.createCompositeExtract(operand, srcVecType, indexes);
|
||||||
spv::Id vec_result = builder.createUnaryOp(op, vecType, vec);
|
spv::Id destVec = builder.createUnaryOp(op, destVecType, srcVec);
|
||||||
addDecoration(vec_result, noContraction);
|
addDecoration(destVec, noContraction);
|
||||||
results.push_back(builder.setPrecision(vec_result, precision));
|
results.push_back(builder.setPrecision(destVec, precision));
|
||||||
}
|
}
|
||||||
|
|
||||||
// put the pieces together
|
// put the pieces together
|
||||||
|
@ -195,20 +195,20 @@ Linked fragment stage:
|
|||||||
135: 8 CompositeConstruct 130 132 134
|
135: 8 CompositeConstruct 130 132 134
|
||||||
Store 10(sum34) 135
|
Store 10(sum34) 135
|
||||||
141: 8 Load 10(sum34)
|
141: 8 Load 10(sum34)
|
||||||
142: 137(fvec4) CompositeExtract 141 0
|
142: 7(fvec4) CompositeExtract 141 0
|
||||||
143: 137(fvec4) FConvert 142
|
143: 137(fvec4) FConvert 142
|
||||||
144: 137(fvec4) CompositeExtract 141 1
|
144: 7(fvec4) CompositeExtract 141 1
|
||||||
145: 137(fvec4) FConvert 144
|
145: 137(fvec4) FConvert 144
|
||||||
146: 137(fvec4) CompositeExtract 141 2
|
146: 7(fvec4) CompositeExtract 141 2
|
||||||
147: 137(fvec4) FConvert 146
|
147: 137(fvec4) FConvert 146
|
||||||
148: 138 CompositeConstruct 143 145 147
|
148: 138 CompositeConstruct 143 145 147
|
||||||
Store 140(dm) 148
|
Store 140(dm) 148
|
||||||
149: 138 Load 140(dm)
|
149: 138 Load 140(dm)
|
||||||
150: 7(fvec4) CompositeExtract 149 0
|
150: 137(fvec4) CompositeExtract 149 0
|
||||||
151: 7(fvec4) FConvert 150
|
151: 7(fvec4) FConvert 150
|
||||||
152: 7(fvec4) CompositeExtract 149 1
|
152: 137(fvec4) CompositeExtract 149 1
|
||||||
153: 7(fvec4) FConvert 152
|
153: 7(fvec4) FConvert 152
|
||||||
154: 7(fvec4) CompositeExtract 149 2
|
154: 137(fvec4) CompositeExtract 149 2
|
||||||
155: 7(fvec4) FConvert 154
|
155: 7(fvec4) FConvert 154
|
||||||
156: 8 CompositeConstruct 151 153 155
|
156: 8 CompositeConstruct 151 153 155
|
||||||
Store 10(sum34) 156
|
Store 10(sum34) 156
|
||||||
|
Loading…
x
Reference in New Issue
Block a user