65 Location(uint32_t binding) : binding(binding) {}
72 return binding == other.binding;
75 operator uint32_t()
const
89 VkDescriptorSetLayout vk_descriptor_set_layout,
101 void bind_texture_resource(
const VKDevice &device,
105 void bind_storage_buffer_resource(
const VKStateManager &state_manager,
108 void bind_uniform_buffer_resource(
const VKStateManager &state_manager,
111 void bind_input_attachment_resource(
const VKDevice &device,
124 VkDeviceAddress vk_device_address,
125 VkDeviceSize buffer_offset,
126 VkDeviceSize size_in_bytes,
129 VkSampler vk_sampler,
130 VkImageView vk_image_view,
131 VkImageLayout vk_image_layout,
142 VkDescriptorSetLayout vk_descriptor_set_layout,
150 void bind_buffer(VkDescriptorType vk_descriptor_type,
152 VkDeviceAddress vk_device_address,
153 VkDeviceSize buffer_offset,
154 VkDeviceSize size_in_bytes,
156 void bind_image(VkDescriptorType vk_descriptor_type,
157 VkSampler vk_sampler,
158 VkImageView vk_image_view,
159 VkImageLayout vk_image_layout,
188 VkDescriptorSetLayout vk_descriptor_set_layout,
196 void bind_buffer(VkDescriptorType vk_descriptor_type,
198 VkDeviceAddress vk_device_address,
199 VkDeviceSize buffer_offset,
200 VkDeviceSize size_in_bytes,
202 void bind_image(VkDescriptorType vk_descriptor_type,
203 VkSampler vk_sampler,
204 VkImageView vk_image_view,
205 VkImageLayout vk_image_layout,
209 inline uint8_t *get_descriptor_binding_ptr(uint32_t binding)
const
219 VkDescriptorSetLayout vk_descriptor_set_layout_ = VK_NULL_HANDLE;
NonCopyable(const NonCopyable &other)=delete
void allocate_new_descriptor_set(VKDevice &device, VKContext &context, VKShader &shader, VkDescriptorSetLayout vk_descriptor_set_layout, render_graph::VKPipelineData &r_pipeline_data) override
uint8_t * descriptor_buffer_data
VKDescriptorBufferLayout layout
VkDeviceSize descriptor_set_head
VkDeviceAddress descriptor_buffer_device_address
VkDeviceSize descriptor_buffer_offset
void bind_texel_buffer(VKVertexBuffer &vertex_buffer, VKDescriptorSet::Location location) override
Vector< std::unique_ptr< VKBuffer > > buffers
VkDeviceSize descriptor_set_tail
void bind_buffer(VkDescriptorType vk_descriptor_type, VkBuffer vk_buffer, VkDeviceAddress vk_device_address, VkDeviceSize buffer_offset, VkDeviceSize size_in_bytes, VKDescriptorSet::Location location) override
void bind_image(VkDescriptorType vk_descriptor_type, VkSampler vk_sampler, VkImageView vk_image_view, VkImageLayout vk_image_layout, VKDescriptorSet::Location location) override
void upload_descriptor_sets() override
void upload_descriptor_sets() override
void bind_buffer(VkDescriptorType vk_descriptor_type, VkBuffer vk_buffer, VkDeviceAddress vk_device_address, VkDeviceSize buffer_offset, VkDeviceSize size_in_bytes, VKDescriptorSet::Location location) override
void allocate_new_descriptor_set(VKDevice &device, VKContext &context, VKShader &shader, VkDescriptorSetLayout vk_descriptor_set_layout, render_graph::VKPipelineData &r_pipeline_data) override
VkDescriptorSet vk_descriptor_set
void bind_image(VkDescriptorType vk_descriptor_type, VkSampler vk_sampler, VkImageView vk_image_view, VkImageLayout vk_image_layout, VKDescriptorSet::Location location) override
void bind_texel_buffer(VKVertexBuffer &vertex_buffer, VKDescriptorSet::Location location) override
class VKDescriptorSetPoolUpdator descriptor_sets
friend class VKDescriptorSet
void update_descriptor_set(VKContext &context, render_graph::VKResourceAccessInfo &resource_access_info, render_graph::VKPipelineData &r_pipeline_data)
class VKDescriptorBufferUpdator descriptor_buffers
void upload_descriptor_sets()
void bind_shader_resources(const VKDevice &device, const VKStateManager &state_manager, VKShader &shader, render_graph::VKResourceAccessInfo &access_info)
virtual void upload_descriptor_sets()=0
virtual ~VKDescriptorSetUpdator()
virtual void bind_texel_buffer(VKVertexBuffer &vertex_buffer, VKDescriptorSet::Location location)=0
virtual void allocate_new_descriptor_set(VKDevice &device, VKContext &context, VKShader &shader, VkDescriptorSetLayout vk_descriptor_set_layout, render_graph::VKPipelineData &r_pipeline_data)=0
virtual void bind_buffer(VkDescriptorType vk_descriptor_type, VkBuffer vk_buffer, VkDeviceAddress vk_device_address, VkDeviceSize buffer_offset, VkDeviceSize size_in_bytes, VKDescriptorSet::Location location)=0
virtual void bind_image(VkDescriptorType vk_descriptor_type, VkSampler vk_sampler, VkImageView vk_image_view, VkImageLayout vk_image_layout, VKDescriptorSet::Location location)=0
friend class VKDescriptorSetTracker
friend struct VKResourceBinding
bool operator==(const Location &other) const
friend class VKShaderInterface