bool is_srgb = util_format_is_srgb(pfmt);
enum a6xx_2d_ifmt ifmt = fd6_ifmt(fmt);
+ OUT_PKT7(ring, CP_SET_MARKER, 1);
+ OUT_RING(ring, A6XX_CP_SET_MARKER_0_MODE(RM6_BLIT2DSCALE));
+
if (is_srgb) {
assert(ifmt == R2D_UNORM8);
ifmt = R2D_UNORM8_SRGB;
A6XX_SP_2D_SRC_FORMAT_NORM) |
COND(is_srgb, A6XX_SP_2D_SRC_FORMAT_SRGB) |
A6XX_SP_2D_SRC_FORMAT_MASK(0xf));
+
+ OUT_PKT4(ring, REG_A6XX_RB_UNKNOWN_8C01, 1);
+ OUT_RING(ring, 0);
}
/* buffers need to be handled specially since x/width can exceed the bounds
sshift = sbox->x & 0x3f;
dshift = dbox->x & 0x3f;
- OUT_PKT7(ring, CP_SET_MARKER, 1);
- OUT_RING(ring, A6XX_CP_SET_MARKER_0_MODE(RM6_BLIT2DSCALE));
-
emit_blit_setup(ring, PIPE_FORMAT_R8_UNORM, false, NULL);
for (unsigned off = 0; off < sbox->width; off += (0x4000 - 0x40)) {
OUT_RING(ring, 0x3f);
OUT_WFI5(ring);
- OUT_PKT4(ring, REG_A6XX_RB_UNKNOWN_8C01, 1);
- OUT_RING(ring, 0);
-
OUT_PKT4(ring, REG_A6XX_RB_UNKNOWN_8E04, 1);
OUT_RING(ring, fd6_context(ctx)->magic.RB_UNKNOWN_8E04_blit);
dfmt = fd6_pipe2color(info->dst.format);
- OUT_PKT7(ring, CP_SET_MARKER, 1);
- OUT_RING(ring, A6XX_CP_SET_MARKER_0_MODE(RM6_BLIT2DSCALE));
-
uint32_t nr_samples = fd_resource_nr_samples(&dst->base);
if (!color) {
OUT_RING(ring, 0x3f);
OUT_WFI5(ring);
- OUT_PKT4(ring, REG_A6XX_RB_UNKNOWN_8C01, 1);
- OUT_RING(ring, 0);
-
OUT_PKT4(ring, REG_A6XX_RB_UNKNOWN_8E04, 1);
OUT_RING(ring, fd6_context(ctx)->magic.RB_UNKNOWN_8E04_blit);