mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
anv/blit2d: Add layouts for using a texel buffer source
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
This commit is contained in:
parent
28eb02e345
commit
85b9a007ac
2 changed files with 53 additions and 12 deletions
|
|
@ -168,7 +168,7 @@ blit2d_bind_src(struct anv_cmd_buffer *cmd_buffer,
|
|||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
|
||||
.descriptorPool = tmp->desc_pool,
|
||||
.descriptorSetCount = 1,
|
||||
.pSetLayouts = &device->meta_state.blit2d.image_ds_layout
|
||||
.pSetLayouts = &device->meta_state.blit2d.img_ds_layout
|
||||
}, &tmp->set);
|
||||
|
||||
anv_UpdateDescriptorSets(vk_device,
|
||||
|
|
@ -193,7 +193,7 @@ blit2d_bind_src(struct anv_cmd_buffer *cmd_buffer,
|
|||
|
||||
anv_CmdBindDescriptorSets(anv_cmd_buffer_to_handle(cmd_buffer),
|
||||
VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
device->meta_state.blit2d.image_p_layout, 0, 1,
|
||||
device->meta_state.blit2d.img_p_layout, 0, 1,
|
||||
&tmp->set, 0, NULL);
|
||||
}
|
||||
|
||||
|
|
@ -473,15 +473,27 @@ anv_device_finish_meta_blit2d_state(struct anv_device *device)
|
|||
&device->meta_state.alloc);
|
||||
}
|
||||
|
||||
if (device->meta_state.blit2d.image_p_layout) {
|
||||
if (device->meta_state.blit2d.img_p_layout) {
|
||||
anv_DestroyPipelineLayout(anv_device_to_handle(device),
|
||||
device->meta_state.blit2d.image_p_layout,
|
||||
device->meta_state.blit2d.img_p_layout,
|
||||
&device->meta_state.alloc);
|
||||
}
|
||||
|
||||
if (device->meta_state.blit2d.image_ds_layout) {
|
||||
if (device->meta_state.blit2d.img_ds_layout) {
|
||||
anv_DestroyDescriptorSetLayout(anv_device_to_handle(device),
|
||||
device->meta_state.blit2d.image_ds_layout,
|
||||
device->meta_state.blit2d.img_ds_layout,
|
||||
&device->meta_state.alloc);
|
||||
}
|
||||
|
||||
if (device->meta_state.blit2d.buf_p_layout) {
|
||||
anv_DestroyPipelineLayout(anv_device_to_handle(device),
|
||||
device->meta_state.blit2d.buf_p_layout,
|
||||
&device->meta_state.alloc);
|
||||
}
|
||||
|
||||
if (device->meta_state.blit2d.buf_ds_layout) {
|
||||
anv_DestroyDescriptorSetLayout(anv_device_to_handle(device),
|
||||
device->meta_state.blit2d.buf_ds_layout,
|
||||
&device->meta_state.alloc);
|
||||
}
|
||||
}
|
||||
|
|
@ -539,7 +551,7 @@ anv_device_init_meta_blit2d_state(struct anv_device *device)
|
|||
.pImmutableSamplers = NULL
|
||||
},
|
||||
}
|
||||
}, &device->meta_state.alloc, &device->meta_state.blit2d.image_ds_layout);
|
||||
}, &device->meta_state.alloc, &device->meta_state.blit2d.img_ds_layout);
|
||||
if (result != VK_SUCCESS)
|
||||
goto fail;
|
||||
|
||||
|
|
@ -547,9 +559,36 @@ anv_device_init_meta_blit2d_state(struct anv_device *device)
|
|||
&(VkPipelineLayoutCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
|
||||
.setLayoutCount = 1,
|
||||
.pSetLayouts = &device->meta_state.blit2d.image_ds_layout,
|
||||
.pSetLayouts = &device->meta_state.blit2d.img_ds_layout,
|
||||
},
|
||||
&device->meta_state.alloc, &device->meta_state.blit2d.image_p_layout);
|
||||
&device->meta_state.alloc, &device->meta_state.blit2d.img_p_layout);
|
||||
if (result != VK_SUCCESS)
|
||||
goto fail;
|
||||
|
||||
result = anv_CreateDescriptorSetLayout(anv_device_to_handle(device),
|
||||
&(VkDescriptorSetLayoutCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
|
||||
.bindingCount = 1,
|
||||
.pBindings = (VkDescriptorSetLayoutBinding[]) {
|
||||
{
|
||||
.binding = 0,
|
||||
.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
|
||||
.descriptorCount = 1,
|
||||
.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT,
|
||||
.pImmutableSamplers = NULL
|
||||
},
|
||||
}
|
||||
}, &device->meta_state.alloc, &device->meta_state.blit2d.buf_ds_layout);
|
||||
if (result != VK_SUCCESS)
|
||||
goto fail;
|
||||
|
||||
result = anv_CreatePipelineLayout(anv_device_to_handle(device),
|
||||
&(VkPipelineLayoutCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
|
||||
.setLayoutCount = 1,
|
||||
.pSetLayouts = &device->meta_state.blit2d.buf_ds_layout,
|
||||
},
|
||||
&device->meta_state.alloc, &device->meta_state.blit2d.buf_p_layout);
|
||||
if (result != VK_SUCCESS)
|
||||
goto fail;
|
||||
|
||||
|
|
@ -678,7 +717,7 @@ anv_device_init_meta_blit2d_state(struct anv_device *device)
|
|||
},
|
||||
},
|
||||
.flags = 0,
|
||||
.layout = device->meta_state.blit2d.image_p_layout,
|
||||
.layout = device->meta_state.blit2d.img_p_layout,
|
||||
.renderPass = device->meta_state.blit2d.render_pass,
|
||||
.subpass = 0,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -612,8 +612,10 @@ struct anv_meta_state {
|
|||
/** Pipeline that copies from a 2D image. */
|
||||
VkPipeline pipeline_2d_src;
|
||||
|
||||
VkPipelineLayout image_p_layout;
|
||||
VkDescriptorSetLayout image_ds_layout;
|
||||
VkPipelineLayout img_p_layout;
|
||||
VkDescriptorSetLayout img_ds_layout;
|
||||
VkPipelineLayout buf_p_layout;
|
||||
VkDescriptorSetLayout buf_ds_layout;
|
||||
} blit2d;
|
||||
|
||||
struct {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue