From 70786aeee8b4fc677c79485c10b1c65025d770c4 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 1 Sep 2018 17:52:08 +0200 Subject: [PATCH] [spirv] Support OpVectorExtractDynamic instruction --- src/spirv/spirv_module.cpp | 15 +++++++++++++++ src/spirv/spirv_module.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/spirv/spirv_module.cpp b/src/spirv/spirv_module.cpp index 6a6c16be..771ba027 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 62c2ab1a..73b702e0 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,