diff --git a/src/d3d11/d3d11_shader.cpp b/src/d3d11/d3d11_shader.cpp index 9560eb131..332d9cffd 100644 --- a/src/d3d11/d3d11_shader.cpp +++ b/src/d3d11/d3d11_shader.cpp @@ -79,6 +79,12 @@ namespace dxvk { } pDevice->GetDXVKDevice()->registerShader(m_shader); + + // Write back binding mask + auto bindings = module.bindings(); + + if (bindings) + m_bindings = *bindings; } diff --git a/src/d3d11/d3d11_shader.h b/src/d3d11/d3d11_shader.h index 44a3bcb98..8be4353f7 100644 --- a/src/d3d11/d3d11_shader.h +++ b/src/d3d11/d3d11_shader.h @@ -18,7 +18,7 @@ namespace dxvk { class D3D11Device; - + /** * \brief Common shader object * @@ -52,12 +52,18 @@ namespace dxvk { std::string GetName() const { return m_shader->debugName(); } - + + DxbcBindingMask GetBindingMask() const { + return m_bindings; + } + private: - + Rc m_shader; Rc m_buffer; - + + DxbcBindingMask m_bindings = { }; + };