66 Location(uint32_t binding) : binding(binding) {}
73 return binding == other.binding;
76 operator uint32_t()
const
90 VkDescriptorSetLayout vk_descriptor_set_layout,
102 void bind_texture_resource(
const VKDevice &device,
106 void bind_storage_buffer_resource(
const VKStateManager &state_manager,
109 void bind_uniform_buffer_resource(
const VKStateManager &state_manager,
112 void bind_input_attachment_resource(
const VKDevice &device,
125 VkDeviceAddress vk_device_address,
126 VkDeviceSize buffer_offset,
127 VkDeviceSize size_in_bytes,
130 VkSampler vk_sampler,
131 VkImageView vk_image_view,
132 VkImageLayout vk_image_layout,
143 VkDescriptorSetLayout vk_descriptor_set_layout,
151 void bind_buffer(VkDescriptorType vk_descriptor_type,
153 VkDeviceAddress vk_device_address,
154 VkDeviceSize buffer_offset,
155 VkDeviceSize size_in_bytes,
157 void bind_image(VkDescriptorType vk_descriptor_type,
158 VkSampler vk_sampler,
159 VkImageView vk_image_view,
160 VkImageLayout vk_image_layout,
189 VkDescriptorSetLayout vk_descriptor_set_layout,
197 void bind_buffer(VkDescriptorType vk_descriptor_type,
199 VkDeviceAddress vk_device_address,
200 VkDeviceSize buffer_offset,
201 VkDeviceSize size_in_bytes,
203 void bind_image(VkDescriptorType vk_descriptor_type,
204 VkSampler vk_sampler,
205 VkImageView vk_image_view,
206 VkImageLayout vk_image_layout,
210 inline uint8_t *get_descriptor_binding_ptr(uint32_t binding)
const
220 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