diff --git a/src/dxbc/dxbc_compiler.cpp b/src/dxbc/dxbc_compiler.cpp index 9cd79355..4b30e545 100644 --- a/src/dxbc/dxbc_compiler.cpp +++ b/src/dxbc/dxbc_compiler.cpp @@ -4558,6 +4558,16 @@ namespace dxvk { getVectorTypeId(result.type), m_module.opLoad(info.typeId, info.varId)); } + + if (info.image.array && !info.image.layered) { + const uint32_t index = result.type.ccount - 1; + const uint32_t zero = m_module.constu32(0); + + result.id = m_module.opCompositeInsert( + getVectorTypeId(result.type), + zero, result.id, 1, &index); + } + return result; } @@ -4613,7 +4623,6 @@ namespace dxvk { } }(); - coordVector.id = m_module.opCompositeInsert( getVectorTypeId(coordVector.type), zero, coordVector.id, 1, &index);