Skip to content
Snippets Groups Projects
Verified Commit 74aea536 authored by Tobias Frisch's avatar Tobias Frisch
Browse files

Add fix for binding usage in multiple stages

parent a9250ba2
No related branches found
No related tags found
No related merge requests found
/** /**
* @authors Simeon Hermann, Leonie Franken * @authors Simeon Hermann, Leonie Franken, Tobias Frisch
* @file src/vkcv/ShaderProgram.cpp * @file src/vkcv/ShaderProgram.cpp
* @brief ShaderProgram class to handle and prepare the shader stages for a graphics pipeline * @brief ShaderProgram class to handle and prepare the shader stages for a graphics pipeline
*/ */
...@@ -165,6 +165,8 @@ namespace vkcv { ...@@ -165,6 +165,8 @@ namespace vkcv {
auto insertionResult = auto insertionResult =
m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding)); m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding));
if (!insertionResult.second) { if (!insertionResult.second) {
insertionResult.first->second.shaderStages |= shaderStage;
vkcv_log(LogLevel::WARNING, vkcv_log(LogLevel::WARNING,
"Attempting to overwrite already existing binding %u at set ID %u.", "Attempting to overwrite already existing binding %u at set ID %u.",
bindingID, setID); bindingID, setID);
...@@ -197,6 +199,8 @@ namespace vkcv { ...@@ -197,6 +199,8 @@ namespace vkcv {
auto insertionResult = auto insertionResult =
m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding)); m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding));
if (!insertionResult.second) { if (!insertionResult.second) {
insertionResult.first->second.shaderStages |= shaderStage;
vkcv_log(LogLevel::WARNING, vkcv_log(LogLevel::WARNING,
"Attempting to overwrite already existing binding %u at set ID %u.", "Attempting to overwrite already existing binding %u at set ID %u.",
bindingID, setID); bindingID, setID);
...@@ -228,6 +232,8 @@ namespace vkcv { ...@@ -228,6 +232,8 @@ namespace vkcv {
auto insertionResult = auto insertionResult =
m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding)); m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding));
if (!insertionResult.second) { if (!insertionResult.second) {
insertionResult.first->second.shaderStages |= shaderStage;
vkcv_log(LogLevel::WARNING, vkcv_log(LogLevel::WARNING,
"Attempting to overwrite already existing binding %u at set ID %u.", "Attempting to overwrite already existing binding %u at set ID %u.",
bindingID, setID); bindingID, setID);
...@@ -260,6 +266,8 @@ namespace vkcv { ...@@ -260,6 +266,8 @@ namespace vkcv {
auto insertionResult = auto insertionResult =
m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding)); m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding));
if (!insertionResult.second) { if (!insertionResult.second) {
insertionResult.first->second.shaderStages |= shaderStage;
vkcv_log(LogLevel::WARNING, vkcv_log(LogLevel::WARNING,
"Attempting to overwrite already existing binding %u at set ID %u.", "Attempting to overwrite already existing binding %u at set ID %u.",
bindingID, setID); bindingID, setID);
...@@ -292,6 +300,8 @@ namespace vkcv { ...@@ -292,6 +300,8 @@ namespace vkcv {
auto insertionResult = auto insertionResult =
m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding)); m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding));
if (!insertionResult.second) { if (!insertionResult.second) {
insertionResult.first->second.shaderStages |= shaderStage;
vkcv_log(LogLevel::WARNING, vkcv_log(LogLevel::WARNING,
"Attempting to overwrite already existing binding %u at set ID %u.", "Attempting to overwrite already existing binding %u at set ID %u.",
bindingID, setID); bindingID, setID);
...@@ -315,6 +325,8 @@ namespace vkcv { ...@@ -315,6 +325,8 @@ namespace vkcv {
auto insertionResult = auto insertionResult =
m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding)); m_DescriptorSets [setID].insert(std::make_pair(bindingID, binding));
if (!insertionResult.second) { if (!insertionResult.second) {
insertionResult.first->second.shaderStages |= shaderStage;
vkcv_log(LogLevel::WARNING, vkcv_log(LogLevel::WARNING,
"Attempting to overwrite already existing binding %u at set ID %u.", "Attempting to overwrite already existing binding %u at set ID %u.",
bindingID, setID); bindingID, setID);
...@@ -343,3 +355,4 @@ namespace vkcv { ...@@ -343,3 +355,4 @@ namespace vkcv {
return m_pushConstantsSize; return m_pushConstantsSize;
} }
} // namespace vkcv } // namespace vkcv
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment