From b0b796054843d1ec6e06a790d4d32655534b63a0 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 26 Jan 2019 17:11:49 +0100 Subject: [PATCH] [dxbc] Add method to count required registers for signatures --- src/dxbc/dxbc_chunk_isgn.cpp | 8 ++++++++ src/dxbc/dxbc_chunk_isgn.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/dxbc/dxbc_chunk_isgn.cpp b/src/dxbc/dxbc_chunk_isgn.cpp index 45285014f..bd67f4ca8 100644 --- a/src/dxbc/dxbc_chunk_isgn.cpp +++ b/src/dxbc/dxbc_chunk_isgn.cpp @@ -76,6 +76,14 @@ namespace dxvk { } + uint32_t DxbcIsgn::maxRegisterCount() const { + uint32_t result = 0; + for (auto e = this->begin(); e != this->end(); e++) + result = std::max(result, e->registerId + 1); + return result; + } + + bool DxbcIsgn::compareSemanticNames( const std::string& a, const std::string& b) const { if (a.size() != b.size()) diff --git a/src/dxbc/dxbc_chunk_isgn.h b/src/dxbc/dxbc_chunk_isgn.h index 44c4f6669..baf4aa5ec 100644 --- a/src/dxbc/dxbc_chunk_isgn.h +++ b/src/dxbc/dxbc_chunk_isgn.h @@ -52,6 +52,8 @@ namespace dxvk { DxbcRegMask regMask( uint32_t registerId) const; + uint32_t maxRegisterCount() const; + private: std::vector m_entries;