mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 00:00:12 +01:00
radv/meta: Use CreateRenderPass2
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8857>
This commit is contained in:
parent
24414e7ec4
commit
8304b4eef7
7 changed files with 181 additions and 105 deletions
|
|
@ -950,11 +950,12 @@ radv_device_init_meta_blit_color(struct radv_device *device, bool on_demand)
|
|||
unsigned key = radv_format_meta_fs_key(device, radv_fs_key_format_exemplars[i]);
|
||||
for(unsigned j = 0; j < RADV_META_DST_LAYOUT_COUNT; ++j) {
|
||||
VkImageLayout layout = radv_meta_dst_layout_to_layout(j);
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = radv_fs_key_format_exemplars[i],
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -962,16 +963,19 @@ radv_device_init_meta_blit_color(struct radv_device *device, bool on_demand)
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 1,
|
||||
.pColorAttachments = &(VkAttachmentReference) {
|
||||
.pColorAttachments = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = VK_ATTACHMENT_UNUSED,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
|
|
@ -979,8 +983,9 @@ radv_device_init_meta_blit_color(struct radv_device *device, bool on_demand)
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -990,6 +995,7 @@ radv_device_init_meta_blit_color(struct radv_device *device, bool on_demand)
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -1033,11 +1039,12 @@ radv_device_init_meta_blit_depth(struct radv_device *device, bool on_demand)
|
|||
|
||||
for (enum radv_blit_ds_layout ds_layout = RADV_BLIT_DS_LAYOUT_TILE_ENABLE; ds_layout < RADV_BLIT_DS_LAYOUT_COUNT; ds_layout++) {
|
||||
VkImageLayout layout = radv_meta_blit_ds_to_layout(ds_layout);
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = VK_FORMAT_D32_SFLOAT,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -1045,13 +1052,15 @@ radv_device_init_meta_blit_depth(struct radv_device *device, bool on_demand)
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
|
|
@ -1059,8 +1068,9 @@ radv_device_init_meta_blit_depth(struct radv_device *device, bool on_demand)
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -1070,6 +1080,7 @@ radv_device_init_meta_blit_depth(struct radv_device *device, bool on_demand)
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -1110,11 +1121,12 @@ radv_device_init_meta_blit_stencil(struct radv_device *device, bool on_demand)
|
|||
|
||||
for (enum radv_blit_ds_layout ds_layout = RADV_BLIT_DS_LAYOUT_TILE_ENABLE; ds_layout < RADV_BLIT_DS_LAYOUT_COUNT; ds_layout++) {
|
||||
VkImageLayout layout = radv_meta_blit_ds_to_layout(ds_layout);
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = VK_FORMAT_S8_UINT,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -1122,13 +1134,15 @@ radv_device_init_meta_blit_stencil(struct radv_device *device, bool on_demand)
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
|
|
@ -1136,8 +1150,9 @@ radv_device_init_meta_blit_stencil(struct radv_device *device, bool on_demand)
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -1147,6 +1162,7 @@ radv_device_init_meta_blit_stencil(struct radv_device *device, bool on_demand)
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
|
|
@ -760,11 +760,12 @@ blit2d_init_color_pipeline(struct radv_device *device,
|
|||
if (!device->meta_state.blit2d_render_passes[fs_key][dst_layout]) {
|
||||
VkImageLayout layout = radv_meta_dst_layout_to_layout(dst_layout);
|
||||
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = format,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -772,16 +773,19 @@ blit2d_init_color_pipeline(struct radv_device *device,
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 1,
|
||||
.pColorAttachments = &(VkAttachmentReference) {
|
||||
.pColorAttachments = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = VK_ATTACHMENT_UNUSED,
|
||||
.layout = layout,
|
||||
},
|
||||
|
|
@ -789,8 +793,9 @@ blit2d_init_color_pipeline(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -800,6 +805,7 @@ blit2d_init_color_pipeline(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -954,11 +960,12 @@ blit2d_init_depth_only_pipeline(struct radv_device *device,
|
|||
for (enum radv_blit_ds_layout ds_layout = RADV_BLIT_DS_LAYOUT_TILE_ENABLE; ds_layout < RADV_BLIT_DS_LAYOUT_COUNT; ds_layout++) {
|
||||
if (!device->meta_state.blit2d_depth_only_rp[ds_layout]) {
|
||||
VkImageLayout layout = radv_meta_blit_ds_to_layout(ds_layout);
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = VK_FORMAT_D32_SFLOAT,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -966,13 +973,14 @@ blit2d_init_depth_only_pipeline(struct radv_device *device,
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
|
|
@ -980,8 +988,9 @@ blit2d_init_depth_only_pipeline(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -991,6 +1000,7 @@ blit2d_init_depth_only_pipeline(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -1144,11 +1154,12 @@ blit2d_init_stencil_only_pipeline(struct radv_device *device,
|
|||
for (enum radv_blit_ds_layout ds_layout = RADV_BLIT_DS_LAYOUT_TILE_ENABLE; ds_layout < RADV_BLIT_DS_LAYOUT_COUNT; ds_layout++) {
|
||||
if (!device->meta_state.blit2d_stencil_only_rp[ds_layout]) {
|
||||
VkImageLayout layout = radv_meta_blit_ds_to_layout(ds_layout);
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = VK_FORMAT_S8_UINT,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -1156,13 +1167,15 @@ blit2d_init_stencil_only_pipeline(struct radv_device *device,
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
|
|
@ -1170,8 +1183,9 @@ blit2d_init_stencil_only_pipeline(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -1181,6 +1195,7 @@ blit2d_init_stencil_only_pipeline(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
|
|
@ -194,11 +194,12 @@ create_color_renderpass(struct radv_device *device,
|
|||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VkResult result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
VkResult result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = vk_format,
|
||||
.samples = samples,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
|
|
@ -207,16 +208,19 @@ create_color_renderpass(struct radv_device *device,
|
|||
.finalLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 1,
|
||||
.pColorAttachments = &(VkAttachmentReference) {
|
||||
.pColorAttachments = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = VK_ATTACHMENT_UNUSED,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
|
|
@ -224,8 +228,9 @@ create_color_renderpass(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -235,6 +240,7 @@ create_color_renderpass(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -553,11 +559,12 @@ create_depthstencil_renderpass(struct radv_device *device,
|
|||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VkResult result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
VkResult result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = VK_FORMAT_D32_SFLOAT_S8_UINT,
|
||||
.samples = samples,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
|
|
@ -566,13 +573,15 @@ create_depthstencil_renderpass(struct radv_device *device,
|
|||
.finalLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
|
|
@ -580,8 +589,9 @@ create_depthstencil_renderpass(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -591,6 +601,7 @@ create_depthstencil_renderpass(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -2002,7 +2013,8 @@ radv_clear_image_layer(struct radv_cmd_buffer *cmd_buffer,
|
|||
&cmd_buffer->pool->alloc,
|
||||
&fb);
|
||||
|
||||
VkAttachmentDescription att_desc = {
|
||||
VkAttachmentDescription2 att_desc = {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = iview.vk_format,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -2012,7 +2024,8 @@ radv_clear_image_layer(struct radv_cmd_buffer *cmd_buffer,
|
|||
.finalLayout = image_layout,
|
||||
};
|
||||
|
||||
VkSubpassDescription subpass_desc = {
|
||||
VkSubpassDescription2 subpass_desc = {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
|
|
@ -2023,7 +2036,8 @@ radv_clear_image_layer(struct radv_cmd_buffer *cmd_buffer,
|
|||
.pPreserveAttachments = NULL,
|
||||
};
|
||||
|
||||
const VkAttachmentReference att_ref = {
|
||||
const VkAttachmentReference2 att_ref = {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = image_layout,
|
||||
};
|
||||
|
|
@ -2036,16 +2050,17 @@ radv_clear_image_layer(struct radv_cmd_buffer *cmd_buffer,
|
|||
}
|
||||
|
||||
VkRenderPass pass;
|
||||
radv_CreateRenderPass(device_h,
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
radv_CreateRenderPass2(device_h,
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &att_desc,
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &subpass_desc,
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -2055,6 +2070,7 @@ radv_clear_image_layer(struct radv_cmd_buffer *cmd_buffer,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
|
|
@ -47,8 +47,9 @@ create_pass(struct radv_device *device,
|
|||
VkResult result;
|
||||
VkDevice device_h = radv_device_to_handle(device);
|
||||
const VkAllocationCallbacks *alloc = &device->meta_state.alloc;
|
||||
VkAttachmentDescription attachment;
|
||||
VkAttachmentDescription2 attachment;
|
||||
|
||||
attachment.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
|
||||
attachment.flags = 0;
|
||||
attachment.format = VK_FORMAT_D32_SFLOAT_S8_UINT;
|
||||
attachment.samples = samples;
|
||||
|
|
@ -59,19 +60,21 @@ create_pass(struct radv_device *device,
|
|||
attachment.initialLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
|
||||
attachment.finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
|
||||
|
||||
result = radv_CreateRenderPass(device_h,
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(device_h,
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &attachment,
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
|
||||
},
|
||||
|
|
@ -79,8 +82,9 @@ create_pass(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -90,6 +94,7 @@ create_pass(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
|
|
@ -181,8 +181,9 @@ create_pass(struct radv_device *device)
|
|||
VkResult result;
|
||||
VkDevice device_h = radv_device_to_handle(device);
|
||||
const VkAllocationCallbacks *alloc = &device->meta_state.alloc;
|
||||
VkAttachmentDescription attachment;
|
||||
VkAttachmentDescription2 attachment;
|
||||
|
||||
attachment.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
|
||||
attachment.format = VK_FORMAT_UNDEFINED;
|
||||
attachment.samples = 1;
|
||||
attachment.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||
|
|
@ -190,32 +191,36 @@ create_pass(struct radv_device *device)
|
|||
attachment.initialLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
||||
attachment.finalLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
||||
|
||||
result = radv_CreateRenderPass(device_h,
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(device_h,
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &attachment,
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 1,
|
||||
.pColorAttachments = (VkAttachmentReference[]) {
|
||||
.pColorAttachments = (VkAttachmentReference2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||
},
|
||||
},
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = VK_ATTACHMENT_UNUSED,
|
||||
},
|
||||
.preserveAttachmentCount = 0,
|
||||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -225,6 +230,7 @@ create_pass(struct radv_device *device)
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
|
|
@ -53,10 +53,11 @@ create_pass(struct radv_device *device, VkFormat vk_format, VkRenderPass *pass)
|
|||
VkResult result;
|
||||
VkDevice device_h = radv_device_to_handle(device);
|
||||
const VkAllocationCallbacks *alloc = &device->meta_state.alloc;
|
||||
VkAttachmentDescription attachments[2];
|
||||
VkAttachmentDescription2 attachments[2];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
attachments[i].sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
|
||||
attachments[i].format = vk_format;
|
||||
attachments[i].samples = 1;
|
||||
attachments[i].loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
|
||||
|
|
@ -67,36 +68,41 @@ create_pass(struct radv_device *device, VkFormat vk_format, VkRenderPass *pass)
|
|||
attachments[1].initialLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
||||
attachments[1].finalLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
||||
|
||||
result = radv_CreateRenderPass(device_h,
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(device_h,
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 2,
|
||||
.pAttachments = attachments,
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 2,
|
||||
.pColorAttachments = (VkAttachmentReference[]) {
|
||||
.pColorAttachments = (VkAttachmentReference2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 1,
|
||||
.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
|
||||
},
|
||||
},
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = VK_ATTACHMENT_UNUSED,
|
||||
},
|
||||
.preserveAttachmentCount = 0,
|
||||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -106,6 +112,7 @@ create_pass(struct radv_device *device, VkFormat vk_format, VkRenderPass *pass)
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
|
|
@ -190,11 +190,12 @@ create_resolve_pipeline(struct radv_device *device,
|
|||
|
||||
for (unsigned dst_layout = 0; dst_layout < RADV_META_DST_LAYOUT_COUNT; ++dst_layout) {
|
||||
VkImageLayout layout = radv_meta_dst_layout_to_layout(dst_layout);
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = format,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
|
|
@ -202,16 +203,19 @@ create_resolve_pipeline(struct radv_device *device,
|
|||
.finalLayout = layout,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 1,
|
||||
.pColorAttachments = &(VkAttachmentReference) {
|
||||
.pColorAttachments = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = layout,
|
||||
},
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = VK_ATTACHMENT_UNUSED,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
|
|
@ -219,8 +223,9 @@ create_resolve_pipeline(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -230,6 +235,7 @@ create_resolve_pipeline(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -523,11 +529,12 @@ create_depth_stencil_resolve_pipeline(struct radv_device *device,
|
|||
}
|
||||
|
||||
if (!*render_pass) {
|
||||
result = radv_CreateRenderPass(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
|
||||
result = radv_CreateRenderPass2(radv_device_to_handle(device),
|
||||
&(VkRenderPassCreateInfo2) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
|
||||
.attachmentCount = 1,
|
||||
.pAttachments = &(VkAttachmentDescription) {
|
||||
.pAttachments = &(VkAttachmentDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
|
||||
.format = src_format,
|
||||
.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
|
||||
.storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
||||
|
|
@ -537,13 +544,15 @@ create_depth_stencil_resolve_pipeline(struct radv_device *device,
|
|||
.finalLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
.subpassCount = 1,
|
||||
.pSubpasses = &(VkSubpassDescription) {
|
||||
.pSubpasses = &(VkSubpassDescription2) {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
|
||||
.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||
.inputAttachmentCount = 0,
|
||||
.colorAttachmentCount = 0,
|
||||
.pColorAttachments = NULL,
|
||||
.pResolveAttachments = NULL,
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference) {
|
||||
.pDepthStencilAttachment = &(VkAttachmentReference2) {
|
||||
.sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
|
||||
.attachment = 0,
|
||||
.layout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
},
|
||||
|
|
@ -551,8 +560,9 @@ create_depth_stencil_resolve_pipeline(struct radv_device *device,
|
|||
.pPreserveAttachments = NULL,
|
||||
},
|
||||
.dependencyCount = 2,
|
||||
.pDependencies = (VkSubpassDependency[]) {
|
||||
.pDependencies = (VkSubpassDependency2[]) {
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.dstSubpass = 0,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
@ -562,6 +572,7 @@ create_depth_stencil_resolve_pipeline(struct radv_device *device,
|
|||
.dependencyFlags = 0
|
||||
},
|
||||
{
|
||||
.sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
|
||||
.srcSubpass = 0,
|
||||
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue