28 const std::optional<float> line_width,
36 if (line_width.has_value()) {
45 VkPipelineBindPoint vk_pipeline_bind_point,
46 VkShaderStageFlags vk_shader_stage_flags)
69 VkDescriptorBufferBindingInfoEXT descriptor_buffer_binding_info = {
70 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
73 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT |
74 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT};
77 uint32_t buffer_index = 0;
89 uint32_t buffer_index = 0;
100 vk_shader_stage_flags,
109 if (
data.push_constants_data) {
111 data.push_constants_data =
nullptr;
138 for (
const VkBuffer vk_buffer :
142 node_links.
inputs.append({
resource, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT});
155 r_bound_vertex_buffers.
buffer,
156 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 set_line_width(const float line_width)=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_pipeline_dynamic_graphics_build_commands(VKCommandBufferInterface &command_buffer, const VKViewportData &viewport, const std::optional< float > line_width, VKBoundPipelines &r_bound_pipelines)
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_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
VKViewportData viewport_state
std::optional< float > line_width
struct blender::gpu::render_graph::VKBoundPipelines::@245157173206043141117177130032265241203257234004 graphics
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