[Mesa-dev] [PATCH 1/2] r600g: fall back to blitter for compressed textures on cayman (v2)
alexdeucher at gmail.com
alexdeucher at gmail.com
Fri Mar 15 15:18:31 PDT 2013
From: Alex Deucher <alexander.deucher at amd.com>
The DMA block seems to have alignment issues with large
block sizes. Use the blitter for these surfaces.
v2: cayman/TN only
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=60802
Note: this is a candidate for the 9.1 branch.
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
src/gallium/drivers/r600/evergreen_state.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 2bdefb0..b40ed01 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -3674,6 +3674,15 @@ boolean evergreen_dma_blit(struct pipe_context *ctx,
return FALSE;
}
+ /* The DMA block on cayman seems to have alignment issues
+ * with large block sizes. Needs more investigation.
+ */
+ if ((rctx->chip_class == CAYMAN) &&
+ (src_mode != dst_mode) &&
+ (util_format_get_blocksize(src->format) >= 16)) {
+ return FALSE;
+ }
+
if (src_mode == dst_mode) {
uint64_t dst_offset, src_offset;
/* simple dma blit would do NOTE code here assume :
--
1.7.7.5
More information about the mesa-dev
mailing list