Skip to content
Snippets Groups Projects
Commit 873c6cb9 authored by Artur Wasmut's avatar Artur Wasmut
Browse files

[#105] set descriptor count properly.

parent 51f6d5de
No related branches found
No related tags found
1 merge request!88Resolve "Indirect Draw"
Pipeline #27085 failed
...@@ -58,14 +58,6 @@ namespace vkcv ...@@ -58,14 +58,6 @@ namespace vkcv
*/ */
struct DescriptorBinding struct DescriptorBinding
{ {
DescriptorBinding(
uint32_t bindingID,
DescriptorType descriptorType,
uint32_t descriptorCount,
ShaderStage shaderStages,
bool variableCount = false
) noexcept;
uint32_t bindingID; uint32_t bindingID;
DescriptorType descriptorType; DescriptorType descriptorType;
uint32_t descriptorCount; uint32_t descriptorCount;
......
...@@ -154,8 +154,12 @@ int main(int argc, const char** argv) { ...@@ -154,8 +154,12 @@ int main(int argc, const char** argv) {
const vkcv::VertexLayout firstMeshLayout (bindings); const vkcv::VertexLayout firstMeshLayout (bindings);
std::unordered_map<uint32_t, vkcv::DescriptorBinding> descriptorBindings = firstMeshProgram.getReflectedDescriptors().at(0); const std::unordered_map<uint32_t, vkcv::DescriptorBinding> &descriptorBindings = firstMeshProgram.getReflectedDescriptors().at(0);
vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(descriptorBindings);
std::unordered_map<uint32_t, vkcv::DescriptorBinding> adjustedBindings = descriptorBindings;
adjustedBindings[1].descriptorCount = 5;
vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(adjustedBindings);
vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout); vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout);
const vkcv::PipelineConfig firstMeshPipelineConfig { const vkcv::PipelineConfig firstMeshPipelineConfig {
......
...@@ -2,18 +2,6 @@ ...@@ -2,18 +2,6 @@
namespace vkcv namespace vkcv
{ {
DescriptorBinding::DescriptorBinding(
uint32_t bindingID,
DescriptorType descriptorType,
uint32_t descriptorCount,
ShaderStage shaderStages,
bool variableCount) noexcept:
bindingID(bindingID),
descriptorType(descriptorType),
descriptorCount(descriptorCount),
shaderStages(shaderStages),
variableCount(variableCount){}
bool DescriptorBinding::operator==(const DescriptorBinding &other) const bool DescriptorBinding::operator==(const DescriptorBinding &other) const
{ {
return (this->bindingID == other.bindingID) && return (this->bindingID == other.bindingID) &&
......
...@@ -161,12 +161,11 @@ namespace vkcv { ...@@ -161,12 +161,11 @@ namespace vkcv {
variableCount = true; variableCount = true;
} }
auto binding = DescriptorBinding( DescriptorBinding binding{bindingID,
bindingID, DescriptorType::UNIFORM_BUFFER,
DescriptorType::UNIFORM_BUFFER, descriptorCount,
descriptorCount, shaderStage,
shaderStage, variableCount};
variableCount);
auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
if(!insertionResult.second) if(!insertionResult.second)
...@@ -197,12 +196,12 @@ namespace vkcv { ...@@ -197,12 +196,12 @@ namespace vkcv {
variableCount = true; variableCount = true;
} }
auto binding = DescriptorBinding( DescriptorBinding binding{bindingID,
bindingID, DescriptorType::STORAGE_BUFFER,
DescriptorType::STORAGE_BUFFER, descriptorCount,
descriptorCount, shaderStage,
shaderStage, variableCount};
variableCount);
auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
if(!insertionResult.second) if(!insertionResult.second)
...@@ -232,12 +231,11 @@ namespace vkcv { ...@@ -232,12 +231,11 @@ namespace vkcv {
variableCount = true; variableCount = true;
} }
auto binding = DescriptorBinding( DescriptorBinding binding {bindingID,
bindingID, DescriptorType::SAMPLER,
DescriptorType::SAMPLER, descriptorCount,
descriptorCount, shaderStage,
shaderStage, variableCount};
variableCount);
auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
if(!insertionResult.second) if(!insertionResult.second)
...@@ -267,12 +265,11 @@ namespace vkcv { ...@@ -267,12 +265,11 @@ namespace vkcv {
variableCount = true; variableCount = true;
} }
auto binding = DescriptorBinding( DescriptorBinding binding {bindingID,
bindingID, DescriptorType::IMAGE_SAMPLED,
DescriptorType::IMAGE_SAMPLED, descriptorCount,
descriptorCount, shaderStage,
shaderStage, variableCount};
variableCount);
auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
if(!insertionResult.second) if(!insertionResult.second)
...@@ -302,12 +299,11 @@ namespace vkcv { ...@@ -302,12 +299,11 @@ namespace vkcv {
variableCount = true; variableCount = true;
} }
auto binding = DescriptorBinding( DescriptorBinding binding {bindingID,
bindingID, DescriptorType::IMAGE_STORAGE,
DescriptorType::IMAGE_STORAGE, descriptorCount,
descriptorCount, shaderStage,
shaderStage, variableCount};
variableCount);
auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding));
if(!insertionResult.second) if(!insertionResult.second)
......
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