diff --git a/src/spirv/spirv_module.cpp b/src/spirv/spirv_module.cpp index 87d211df..c6262f5c 100644 --- a/src/spirv/spirv_module.cpp +++ b/src/spirv/spirv_module.cpp @@ -340,6 +340,19 @@ namespace dxvk { } + uint32_t SpirvModule::specConst32( + uint32_t typeId, + uint32_t value) { + uint32_t resultId = this->allocateId(); + + m_typeConstDefs.putIns (spv::OpSpecConstant, 4); + m_typeConstDefs.putWord (typeId); + m_typeConstDefs.putWord (resultId); + m_typeConstDefs.putWord (value); + return resultId; + } + + void SpirvModule::decorate( uint32_t object, spv::Decoration decoration) { diff --git a/src/spirv/spirv_module.h b/src/spirv/spirv_module.h index febd46ca..47f12f8e 100644 --- a/src/spirv/spirv_module.h +++ b/src/spirv/spirv_module.h @@ -158,6 +158,10 @@ namespace dxvk { uint32_t specConstBool( bool v); + uint32_t specConst32( + uint32_t typeId, + uint32_t value); + void decorate( uint32_t object, spv::Decoration decoration);