From edf066199446cfa7be6241f4eb19797e235bfe5a Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Wed, 31 Jul 2019 19:48:01 +0100 Subject: [PATCH] [spirv] Implement opTranspose --- src/spirv/spirv_module.cpp | 13 +++++++++++++ src/spirv/spirv_module.h | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/src/spirv/spirv_module.cpp b/src/spirv/spirv_module.cpp index cf1a2c42..9549bccf 100644 --- a/src/spirv/spirv_module.cpp +++ b/src/spirv/spirv_module.cpp @@ -1961,6 +1961,19 @@ namespace dxvk { } + uint32_t SpirvModule::opTranspose( + uint32_t resultType, + uint32_t matrix) { + uint32_t resultId = this->allocateId(); + + m_code.putIns(spv::OpTranspose, 4); + m_code.putWord(resultType); + m_code.putWord(resultId); + m_code.putWord(matrix); + return resultId; + } + + uint32_t SpirvModule::opFFma( uint32_t resultType, uint32_t a, diff --git a/src/spirv/spirv_module.h b/src/spirv/spirv_module.h index 7f66ee46..bbdb3a80 100644 --- a/src/spirv/spirv_module.h +++ b/src/spirv/spirv_module.h @@ -707,6 +707,10 @@ namespace dxvk { uint32_t resultType, uint32_t vector, uint32_t matrix); + + uint32_t opTranspose( + uint32_t resultType, + uint32_t matrix); uint32_t opFFma( uint32_t resultType,