turnip: Don't bother clamping VB size.
[mesa.git] / src / freedreno / vulkan / tu_clear_blit.c
index 48e49b224d2189e67f6c93d705b10db2e6644095..6627c03b6b442de7dd11197a1028f134eecd7c3b 100644 (file)
@@ -1580,7 +1580,8 @@ tu_copy_image_to_image(struct tu_cmd_buffer *cmd,
                   staging_image.extent.depth,
                   staging_image.level_count,
                   staging_image.layer_count,
-                  staging_image.type == VK_IMAGE_TYPE_3D);
+                  staging_image.type == VK_IMAGE_TYPE_3D,
+                  NULL);
 
       VkResult result = tu_get_scratch_bo(cmd->device,
                                           staging_image.layout.size,
@@ -2007,7 +2008,7 @@ tu_clear_sysmem_attachments(struct tu_cmd_buffer *cmd,
    uint32_t clear_value[MAX_RTS][4];
    float z_clear_val = 0.0f;
    uint8_t s_clear_val = 0;
-   uint32_t clear_rts = 0, num_rts = 0, b;
+   uint32_t clear_rts = 0, clear_components = 0, num_rts = 0, b;
    bool z_clear = false;
    bool s_clear = false;
    uint32_t max_samples = 1;
@@ -2021,6 +2022,7 @@ tu_clear_sysmem_attachments(struct tu_cmd_buffer *cmd,
             continue;
 
          clear_rts |= 1 << c;
+         clear_components |= 0xf << (c * 4);
          memcpy(clear_value[c], &attachments[i].clearValue, 4 * sizeof(uint32_t));
       } else {
          a = subpass->depth_stencil_attachment.attachment;
@@ -2067,6 +2069,11 @@ tu_clear_sysmem_attachments(struct tu_cmd_buffer *cmd,
 
    r3d_pipeline(cmd, cs, false, num_rts);
 
+   tu_cs_emit_regs(cs,
+                   A6XX_SP_FS_RENDER_COMPONENTS(.dword = clear_components));
+   tu_cs_emit_regs(cs,
+                   A6XX_RB_RENDER_COMPONENTS(.dword = clear_components));
+
    tu_cs_emit_regs(cs,
                    A6XX_RB_FS_OUTPUT_CNTL0(),
                    A6XX_RB_FS_OUTPUT_CNTL1(.mrt = mrt_count));