diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml
index 03100e020a3..e0bfeeeb8cf 100644
--- a/src/freedreno/registers/adreno/a6xx.xml
+++ b/src/freedreno/registers/adreno/a6xx.xml
@@ -1146,6 +1146,20 @@ to upconvert to 32b float internally?
+
+
+
+
+
+
+
+ A special buffer type for usage as the source for buffer
+ to image copies with lower alignment requirements than
+ A6XX_TEX_2D, available since A7XX.
+
+
+
+
Allow early z-test and early-lrz (if applicable)
@@ -5373,8 +5387,11 @@ to upconvert to 32b float internally?
-
-
+
+
@@ -5403,7 +5420,11 @@ to upconvert to 32b float internally?
-
+
+
+
+
+
@@ -5918,13 +5939,6 @@ to upconvert to 32b float internally?
-
-
-
-
-
-
-
diff --git a/src/freedreno/vulkan/tu_clear_blit.cc b/src/freedreno/vulkan/tu_clear_blit.cc
index bf9dce1a98b..9aeb2688053 100644
--- a/src/freedreno/vulkan/tu_clear_blit.cc
+++ b/src/freedreno/vulkan/tu_clear_blit.cc
@@ -465,8 +465,9 @@ r2d_setup_common(struct tu_cmd_buffer *cmd,
tu_cs_emit(cs, blit_cntl);
if (CHIP > A6XX) {
- tu_cs_emit_pkt4(cs, REG_A7XX_SP_PS_UNKNOWN_B2D2, 1);
- tu_cs_emit(cs, 0x20000000);
+ tu_cs_emit_regs(cs, A7XX_TPL1_2D_SRC_CNTL(.raw_copy = false,
+ .start_offset_texels = 0,
+ .type = A6XX_TEX_2D));
}
if (fmt == FMT6_10_10_10_2_UNORM_DEST)
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc
index 01ed34b8af3..c603c2bb202 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc
@@ -310,8 +310,11 @@ emit_blit_setup(struct fd_ringbuffer *ring, enum pipe_format pfmt,
OUT_RING(ring, blit_cntl);
if (CHIP >= A7XX) {
- OUT_PKT4(ring, REG_A7XX_SP_PS_UNKNOWN_B2D2, 1);
- OUT_RING(ring, 0x20000000);
+ OUT_REG(ring, A7XX_TPL1_2D_SRC_CNTL(
+ .raw_copy = false,
+ .start_offset_texels = 0,
+ .type = A6XX_TEX_2D,
+ ));
}
if (fmt == FMT6_10_10_10_2_UNORM_DEST)