From a34467001d46fe6cece3394dad83f376fabeb2b6 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:12:02 -0600 Subject: [PATCH] nvk: Handle zero color attachments better Part-of: --- src/nouveau/vulkan/nvk_cmd_draw.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c b/src/nouveau/vulkan/nvk_cmd_draw.c index a8348b99758..f55c0943d50 100644 --- a/src/nouveau/vulkan/nvk_cmd_draw.c +++ b/src/nouveau/vulkan/nvk_cmd_draw.c @@ -367,7 +367,6 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer, { VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer); struct nvk_rendering_state *render = &cmd->state.gfx.render; - struct nv_push *p = nvk_cmd_buffer_push(cmd, 23 + pRenderingInfo->colorAttachmentCount * 10); memset(render, 0, sizeof(*render)); @@ -381,16 +380,6 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer, render->view_mask ? util_last_bit(render->view_mask) : render->layer_count; - P_MTHD(p, NV9097, SET_SURFACE_CLIP_HORIZONTAL); - P_NV9097_SET_SURFACE_CLIP_HORIZONTAL(p, { - .x = render->area.offset.x, - .width = render->area.extent.width, - }); - P_NV9097_SET_SURFACE_CLIP_VERTICAL(p, { - .y = render->area.offset.y, - .height = render->area.extent.height, - }); - render->color_att_count = pRenderingInfo->colorAttachmentCount; for (uint32_t i = 0; i < render->color_att_count; i++) { nvk_attachment_init(&render->color_att[i], @@ -408,6 +397,18 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer, render->stencil_att.iview == NULL) render->color_att_count = 1; + struct nv_push *p = nvk_cmd_buffer_push(cmd, render->color_att_count * 10 + 23); + + P_MTHD(p, NV9097, SET_SURFACE_CLIP_HORIZONTAL); + P_NV9097_SET_SURFACE_CLIP_HORIZONTAL(p, { + .x = render->area.offset.x, + .width = render->area.extent.width, + }); + P_NV9097_SET_SURFACE_CLIP_VERTICAL(p, { + .y = render->area.offset.y, + .height = render->area.extent.height, + }); + for (uint32_t i = 0; i < render->color_att_count; i++) { if (render->color_att[i].iview) { const struct nvk_image_view *iview = render->color_att[i].iview;