projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixes
[demo]
/
src
/
vulkan
/
vkutil-pipeline.cc
diff --git
a/src/vulkan/vkutil-pipeline.cc
b/src/vulkan/vkutil-pipeline.cc
index
4be1d22
..
44cf5d6
100644
(file)
--- a/
src/vulkan/vkutil-pipeline.cc
+++ b/
src/vulkan/vkutil-pipeline.cc
@@
-46,9
+46,13
@@
VkuPipelineGenerator::VkuPipelineGenerator()
VkuPipelineGenerator::~VkuPipelineGenerator()
{
VkuPipelineGenerator::~VkuPipelineGenerator()
{
+ for(size_t i=0; i<res_layouts.size(); i++) {
+ vkDestroyDescriptorSetLayout(vk_device, res_layouts[i], 0);
+ }
+ vkDestroyPipelineLayout(vk_device, layout, 0);
}
}
-VkPipeline VkuPipelineGenerator::generate(VkuDynState dyn_flags) const
+VkPipeline VkuPipelineGenerator::generate(VkuDynState dyn_flags)
{
VkPipelineDynamicStateCreateInfo dyni;
memset(&dyni, 0, sizeof dyni);
{
VkPipelineDynamicStateCreateInfo dyni;
memset(&dyni, 0, sizeof dyni);
@@
-87,7
+91,6
@@
VkPipeline VkuPipelineGenerator::generate(VkuDynState dyn_flags) const
//linf.pPushConstantRanges = push_const_ranges.data();
//maxPushConstantsSize from VkPhysicalDeviceLimits
//linf.pPushConstantRanges = push_const_ranges.data();
//maxPushConstantsSize from VkPhysicalDeviceLimits
- VkPipelineLayout layout;
if(vkCreatePipelineLayout(vk_device, &linf, 0, &layout) != VK_SUCCESS) {
fprintf(stderr, "Failed to create pipeline layout.\n");
return 0;
if(vkCreatePipelineLayout(vk_device, &linf, 0, &layout) != VK_SUCCESS) {
fprintf(stderr, "Failed to create pipeline layout.\n");
return 0;
@@
-151,3
+154,8
@@
void VkuPipelineGenerator::set_attribute(uint32_t binding, uint32_t stride,
adsc.binding = binding;
adsc.format = format;
}
adsc.binding = binding;
adsc.format = format;
}
+
+void VkuPipelineGenerator::set_resources_layout(VkDescriptorSetLayout layout)
+{
+ res_layouts.push_back(layout);
+}