tu: Emit GRAS_LRZ_MRT_BUF_INFO_0
The blob seems to always emit this, even though it seems to only be used when rendering to the special planar formats (which we only do in the blit path). Based on the LRZ prefix it might used in other cases though. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6792>
This commit is contained in:
@@ -939,6 +939,11 @@ r3d_dst(struct tu_cs *cs, const struct fdl6_view *iview, uint32_t layer)
|
||||
tu_cs_emit_pkt4(cs, REG_A6XX_RB_MRT_FLAG_BUFFER(0), 3);
|
||||
tu_cs_image_flag_ref(cs, iview, layer);
|
||||
|
||||
/* Use color format from RB_MRT_BUF_INFO. This register is relevant for
|
||||
* FMT6_NV12_Y.
|
||||
*/
|
||||
tu_cs_emit_regs(cs, A6XX_GRAS_LRZ_MRT_BUF_INFO_0(.color_format = iview->RB_MRT_BUF_INFO & 0xff));
|
||||
|
||||
tu_cs_emit_regs(cs, A6XX_RB_RENDER_CNTL(.flag_mrts = iview->ubwc_enabled));
|
||||
}
|
||||
|
||||
|
||||
@@ -274,6 +274,15 @@ tu6_emit_mrt(struct tu_cmd_buffer *cmd,
|
||||
tu_cs_image_flag_ref(cs, &iview->view, 0);
|
||||
}
|
||||
|
||||
if (subpass->color_count) {
|
||||
uint32_t a = subpass->color_attachments[0].attachment;
|
||||
if (a != VK_ATTACHMENT_UNUSED) {
|
||||
const struct tu_image_view *iview = cmd->state.attachments[a];
|
||||
enum a6xx_format fmt = iview->view.RB_MRT_BUF_INFO & 0xff;
|
||||
tu_cs_emit_regs(cs, A6XX_GRAS_LRZ_MRT_BUF_INFO_0(.color_format = fmt));
|
||||
}
|
||||
}
|
||||
|
||||
tu_cs_emit_regs(cs,
|
||||
A6XX_RB_SRGB_CNTL(.dword = subpass->srgb_cntl));
|
||||
tu_cs_emit_regs(cs,
|
||||
|
||||
Reference in New Issue
Block a user