gl_shader_decompiler: Add layer component to texelFetch

TexelFetch was not emitting the array component generating invalid GLSL.
This commit is contained in:
ReinUsesLisp 2020-03-12 17:43:03 -03:00
parent fce33adcf1
commit 38fe070d78
1 changed files with 9 additions and 6 deletions

View File

@ -1822,16 +1822,19 @@ private:
expr += GetSampler(meta->sampler); expr += GetSampler(meta->sampler);
expr += ", "; expr += ", ";
expr += constructors.at(operation.GetOperandsCount() - 1); expr += constructors.at(operation.GetOperandsCount() + (meta->array ? 1 : 0) - 1);
expr += '('; expr += '(';
for (std::size_t i = 0; i < count; ++i) { for (std::size_t i = 0; i < count; ++i) {
expr += VisitOperand(operation, i).AsInt(); if (i > 0) {
const std::size_t next = i + 1;
if (next == count)
expr += ')';
else if (next < count)
expr += ", "; expr += ", ";
}
expr += VisitOperand(operation, i).AsInt();
} }
if (meta->array) {
expr += ", ";
expr += Visit(meta->array).AsInt();
}
expr += ')';
if (meta->lod && !meta->sampler.IsBuffer()) { if (meta->lod && !meta->sampler.IsBuffer()) {
expr += ", "; expr += ", ";