mirror of
https://github.com/RPCS3/glslang.git
synced 2025-02-16 08:59:16 +00:00
Merge pull request #118 from amdrexu/bugfix
SPV: Fix an issue related with imageStore() for 2DMS.
This commit is contained in:
commit
b62e693f74
@ -1889,15 +1889,19 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
auto opIt = arguments.begin();
|
||||
operands.push_back(*(opIt++));
|
||||
operands.push_back(*(opIt++));
|
||||
if (node->getOp() == glslang::EOpImageStore)
|
||||
operands.push_back(*(opIt++));
|
||||
if (node->getOp() == glslang::EOpImageLoad) {
|
||||
if (sampler.ms) {
|
||||
operands.push_back(spv::ImageOperandsSampleMask);
|
||||
operands.push_back(*(opIt++));
|
||||
operands.push_back(*opIt);
|
||||
}
|
||||
return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands);
|
||||
} else if (node->getOp() == glslang::EOpImageStore) {
|
||||
if (sampler.ms) {
|
||||
operands.push_back(*(opIt + 1));
|
||||
operands.push_back(spv::ImageOperandsSampleMask);
|
||||
operands.push_back(*opIt);
|
||||
} else
|
||||
operands.push_back(*opIt);
|
||||
builder.createNoResultOp(spv::OpImageWrite, operands);
|
||||
return spv::NoResult;
|
||||
} else {
|
||||
|
@ -333,7 +333,7 @@ Linked fragment stage:
|
||||
214: 96 Load 98(i2DMS)
|
||||
215: 29(ivec2) Load 142(ic2D)
|
||||
217: 125(fvec4) Load 127(v)
|
||||
ImageWrite 214 215 216
|
||||
ImageWrite 214 215 217 Sample 216
|
||||
218: 106 Load 108(i2DMSArray)
|
||||
219: 7(ivec3) Load 152(ic3D)
|
||||
221: 125(fvec4) ImageRead 218 219 Sample 220
|
||||
@ -343,7 +343,7 @@ Linked fragment stage:
|
||||
224: 106 Load 108(i2DMSArray)
|
||||
225: 7(ivec3) Load 152(ic3D)
|
||||
227: 125(fvec4) Load 127(v)
|
||||
ImageWrite 224 225 226
|
||||
ImageWrite 224 225 227 Sample 226
|
||||
Store 229(ui) 19
|
||||
233: 6(int) Load 132(ic1D)
|
||||
236: 235(ptr) ImageTexelPointer 232(ii1D) 233 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user