From f280386aec692979f9d99ad24c874f46684999cb Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Sun, 5 May 2019 21:30:39 +0100 Subject: [PATCH] [spirv] Implement opFMix --- src/spirv/spirv_module.cpp | 19 +++++++++++++++++++ src/spirv/spirv_module.h | 6 ++++++ 2 files changed, 25 insertions(+) diff --git a/src/spirv/spirv_module.cpp b/src/spirv/spirv_module.cpp index 78de2826..4cb09727 100644 --- a/src/spirv/spirv_module.cpp +++ b/src/spirv/spirv_module.cpp @@ -1648,6 +1648,25 @@ namespace dxvk { m_code.putWord(operand); return resultId; } + + + uint32_t SpirvModule::opFMix( + uint32_t resultType, + uint32_t x, + uint32_t y, + uint32_t a) { + uint32_t resultId = this->allocateId(); + + m_code.putIns (spv::OpExtInst, 8); + m_code.putWord(resultType); + m_code.putWord(resultId); + m_code.putWord(m_instExtGlsl450); + m_code.putWord(spv::GLSLstd450FMix); + m_code.putWord(x); + m_code.putWord(y); + m_code.putWord(a); + return resultId; + } uint32_t SpirvModule::opIAdd( diff --git a/src/spirv/spirv_module.h b/src/spirv/spirv_module.h index 38f9ed37..47a086ab 100644 --- a/src/spirv/spirv_module.h +++ b/src/spirv/spirv_module.h @@ -608,6 +608,12 @@ namespace dxvk { uint32_t opFAbs( uint32_t resultType, uint32_t operand); + + uint32_t opFMix( + uint32_t resultType, + uint32_t x, + uint32_t y, + uint32_t a); uint32_t opIAdd( uint32_t resultType,