From 845c78fd207fd3ce95262bd81c0152cdfce0bdb2 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 23 Jun 2018 20:13:00 +0200 Subject: [PATCH] [dxbc] Consider stream index in signature entry lookup --- src/d3d11/d3d11_device.cpp | 2 +- src/dxbc/dxbc_chunk_isgn.cpp | 4 +++- src/dxbc/dxbc_chunk_isgn.h | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index fa07b6360..434a98346 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -952,7 +952,7 @@ namespace dxvk { for (uint32_t i = 0; i < NumElements; i++) { const DxbcSgnEntry* entry = inputSignature->find( pInputElementDescs[i].SemanticName, - pInputElementDescs[i].SemanticIndex); + pInputElementDescs[i].SemanticIndex, 0); if (entry == nullptr) { Logger::debug(str::format( diff --git a/src/dxbc/dxbc_chunk_isgn.cpp b/src/dxbc/dxbc_chunk_isgn.cpp index bbe5e0d48..7ca329ccb 100644 --- a/src/dxbc/dxbc_chunk_isgn.cpp +++ b/src/dxbc/dxbc_chunk_isgn.cpp @@ -43,9 +43,11 @@ namespace dxvk { const DxbcSgnEntry* DxbcIsgn::find( const std::string& semanticName, - uint32_t semanticIndex) const { + uint32_t semanticIndex, + uint32_t streamId) const { for (auto e = this->begin(); e != this->end(); e++) { if (e->semanticIndex == semanticIndex + && e->streamId == streamId && compareSemanticNames(semanticName, e->semanticName)) return &(*e); } diff --git a/src/dxbc/dxbc_chunk_isgn.h b/src/dxbc/dxbc_chunk_isgn.h index 39ddc8cc9..e083605cd 100644 --- a/src/dxbc/dxbc_chunk_isgn.h +++ b/src/dxbc/dxbc_chunk_isgn.h @@ -46,7 +46,8 @@ namespace dxvk { const DxbcSgnEntry* find( const std::string& semanticName, - uint32_t semanticIndex) const; + uint32_t semanticIndex, + uint32_t streamIndex) const; private: