diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2023-01-25 23:06:30 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2023-01-25 23:06:30 +0100 |
| commit | 90a0afd18f080088cac068d92810fb630225d6be (patch) | |
| tree | 341310124fec15c6a02708815377db0cddb6b252 /include/api-test/vk-bindless.hpp | |
| parent | 0a882c4b85423a170455f05a52d18f7fa7c9220b (diff) | |
Working compute api with uniforms
Diffstat (limited to 'include/api-test/vk-bindless.hpp')
| -rw-r--r-- | include/api-test/vk-bindless.hpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/include/api-test/vk-bindless.hpp b/include/api-test/vk-bindless.hpp index d8fac3c..c292878 100644 --- a/include/api-test/vk-bindless.hpp +++ b/include/api-test/vk-bindless.hpp @@ -4,8 +4,11 @@ #include <vulkan/vulkan_core.h> +#include "handle.hpp" + enum BindlessSetType : uint32_t { GLOBAL, + UNIFORMS, MAX, }; @@ -15,21 +18,27 @@ enum SamplerType : uint32_t { MAX_SAMPLER, }; +struct device_buffer; + struct bindless_model { #ifndef USE_VK_DESCRIPTOR_BUFFERS + [[nodiscard]] const device_buffer& get_uniform_buffer() const; + + static bindless_model create_bindless_model(); + + static void destroy_bindless_model(bindless_model& bindless); + VkPipelineLayout layout; - VkDescriptorSetLayout sets_layout[BindlessSetType::MAX]; VkDescriptorSet sets[BindlessSetType::MAX]; + +private: + VkDescriptorSetLayout sets_layout[BindlessSetType::MAX]; VkDescriptorPool descriptor_pool; + handle<device_buffer> uniform_buffer; static constexpr size_t descriptor_pool_allocable_sets_count = 64U; static constexpr uint32_t set_descriptors_count[BindlessSetType::MAX]{ 1024U }; - static bindless_model create_bindless_model(VkDevice device); - - static void destroy_bindless_model(VkDevice device, bindless_model& bindless); - - private: void create_layout(VkDevice device); void create_descriptor_pool(VkDevice device); void allocate_sets(VkDevice device); |
