diff --git a/src/spirv/spirv_module.cpp b/src/spirv/spirv_module.cpp index 6a6c16bef..771ba027e 100644 --- a/src/spirv/spirv_module.cpp +++ b/src/spirv/spirv_module.cpp @@ -1446,6 +1446,21 @@ namespace dxvk { } + uint32_t SpirvModule::opVectorExtractDynamic( + uint32_t resultType, + uint32_t vector, + uint32_t index) { + uint32_t resultId = this->allocateId(); + + m_code.putIns (spv::OpVectorExtractDynamic, 5); + m_code.putWord(resultType); + m_code.putWord(resultId); + m_code.putWord(vector); + m_code.putWord(index); + return resultId; + } + + uint32_t SpirvModule::opVectorShuffle( uint32_t resultType, uint32_t vectorLeft, diff --git a/src/spirv/spirv_module.h b/src/spirv/spirv_module.h index 62c2ab1a1..73b702e0b 100644 --- a/src/spirv/spirv_module.h +++ b/src/spirv/spirv_module.h @@ -543,6 +543,11 @@ namespace dxvk { uint32_t resultType, uint32_t operand); + uint32_t opVectorExtractDynamic( + uint32_t resultType, + uint32_t vector, + uint32_t index); + uint32_t opVectorShuffle( uint32_t resultType, uint32_t vectorLeft,