39 VkPipelineBindPoint vk_pipeline_bind_point,
40 VkShaderStageFlags vk_shader_stage_flags)
63 VkDescriptorBufferBindingInfoEXT descriptor_buffer_binding_info = {
64 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
67 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT |
68 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT};
71 uint32_t buffer_index = 0;
83 uint32_t buffer_index = 0;
94 vk_shader_stage_flags,
103 if (
data.push_constants_data) {
105 data.push_constants_data =
nullptr;
132 for (
const VkBuffer vk_buffer :
136 node_links.
inputs.append({
resource, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT});
149 r_bound_vertex_buffers.
buffer,
150 r_bound_vertex_buffers.
offset);
BMesh const char void * data
virtual void set_scissor(const Vector< VkRect2D > scissors)=0
virtual void bind_pipeline(VkPipelineBindPoint pipeline_bind_point, VkPipeline pipeline)=0
virtual void bind_vertex_buffers(uint32_t first_binding, uint32_t binding_count, const VkBuffer *p_buffers, const VkDeviceSize *p_offsets)=0
virtual void bind_descriptor_sets(VkPipelineBindPoint pipeline_bind_point, VkPipelineLayout layout, uint32_t first_set, uint32_t descriptor_set_count, const VkDescriptorSet *p_descriptor_sets, uint32_t dynamic_offset_count, const uint32_t *p_dynamic_offsets)=0
virtual void set_descriptor_buffer_offsets(VkPipelineBindPoint pipeline_bind_point, VkPipelineLayout layout, uint32_t first_set, uint32_t set_count, const uint32_t *p_buffer_indices, const VkDeviceSize *p_offsets)=0
virtual void bind_descriptor_buffers(uint32_t buffer_count, const VkDescriptorBufferBindingInfoEXT *p_binding_infos)=0
virtual void set_viewport(const Vector< VkViewport > viewports)=0
virtual void bind_index_buffer(VkBuffer buffer, VkDeviceSize offset, VkIndexType index_type)=0
virtual void push_constants(VkPipelineLayout layout, VkShaderStageFlags stage_flags, uint32_t offset, uint32_t size, const void *p_values)=0
ResourceWithStamp get_buffer(VkBuffer vk_buffer) const
void * MEM_mallocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
void vk_pipeline_data_copy(VKPipelineData &dst, const VKPipelineData &src)
void vk_index_buffer_binding_build_commands(VKCommandBufferInterface &command_buffer, const VKIndexBufferBinding &index_buffer_binding, VKIndexBufferBinding &r_bound_index_buffer)
void vk_index_buffer_binding_build_links(VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const VKIndexBufferBinding &index_buffer_binding)
void vk_vertex_buffer_bindings_build_links(VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const VKVertexBufferBindings &vertex_buffers)
void vk_pipeline_data_free(VKPipelineData &data)
void vk_pipeline_viewport_set_commands(VKCommandBufferInterface &command_buffer, const VKViewportData &viewport_data, VKViewportData &r_viewport_state)
void vk_vertex_buffer_bindings_build_commands(VKCommandBufferInterface &command_buffer, const VKVertexBufferBindings &vertex_buffer_bindings, VKVertexBufferBindings &r_bound_vertex_buffers)
void vk_pipeline_data_build_commands(VKCommandBufferInterface &command_buffer, const VKPipelineData &pipeline_data, VKBoundPipeline &r_bound_pipeline, VkPipelineBindPoint vk_pipeline_bind_point, VkShaderStageFlags vk_shader_stage_flags)
bool assign_if_different(T &old_value, T new_value)
VkDeviceSize descriptor_buffer_offset
VkDescriptorSet vk_descriptor_set
VkDeviceAddress descriptor_buffer_device_address
VkDeviceAddress descriptor_buffer_device_address
const void * push_constants_data
VkDeviceSize descriptor_buffer_offset
VkPipelineLayout vk_pipeline_layout
VkDescriptorSet vk_descriptor_set
uint32_t push_constants_size
Vector< VKRenderGraphLink > inputs
Vector< VkRect2D > scissors
Vector< VkViewport > viewports