r100/r200: align to pitch updates in blit interface
authorMaciej Cencora <m.cencora@gmail.com>
Tue, 19 Jan 2010 23:09:11 +0000 (00:09 +0100)
committerMaciej Cencora <m.cencora@gmail.com>
Tue, 19 Jan 2010 23:09:11 +0000 (00:09 +0100)
src/mesa/drivers/dri/r200/r200_blit.c
src/mesa/drivers/dri/radeon/radeon_blit.c

index 212258436329421ccf21b28f7a15d6736e0808a8..8b9bad1c7853a44a164d75a7650de92646ab7ea3 100644 (file)
@@ -146,7 +146,7 @@ static void inline emit_tx_setup(struct r200_context *r200,
     OUT_BATCH_REGVAL(R200_PP_TXFORMAT_X_0, 0);
     OUT_BATCH_REGVAL(R200_PP_TXSIZE_0, ((width - 1) |
                                        ((height - 1) << RADEON_TEX_VSIZE_SHIFT)));
-    OUT_BATCH_REGVAL(R200_PP_TXPITCH_0, pitch - 32);
+    OUT_BATCH_REGVAL(R200_PP_TXPITCH_0, pitch * _mesa_get_format_bytes(mesa_format) - 32);
 
     OUT_BATCH_REGSEQ(R200_PP_TXOFFSET_0, 1);
     OUT_BATCH_RELOC(0, bo, 0, RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
@@ -162,7 +162,7 @@ static inline void emit_cb_setup(struct r200_context *r200,
                                 unsigned width,
                                 unsigned height)
 {
-    uint32_t dst_pitch = pitch;
+    uint32_t dst_pitch = pitch * _mesa_get_format_bytes(mesa_format);
     uint32_t dst_format = 0;
     BATCH_LOCALS(&r200->radeon);
 
index c1bb51a6effbc36b2a33343fc213ef6252717999..ff32b7d69e68b4527482f638d7db7c48875a5814 100644 (file)
@@ -141,7 +141,7 @@ static void inline emit_tx_setup(struct r100_context *r100,
     OUT_BATCH_REGVAL(RADEON_PP_TXFORMAT_0, txformat);
     OUT_BATCH_REGVAL(RADEON_PP_TEX_SIZE_0, ((width - 1) |
                                            ((height - 1) << RADEON_TEX_VSIZE_SHIFT)));
-    OUT_BATCH_REGVAL(RADEON_PP_TEX_PITCH_0, pitch - 32);
+    OUT_BATCH_REGVAL(RADEON_PP_TEX_PITCH_0, pitch * _mesa_get_format_bytes(mesa_format) - 32);
 
     OUT_BATCH_REGSEQ(RADEON_PP_TXOFFSET_0, 1);
     OUT_BATCH_RELOC(0, bo, 0, RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
@@ -157,7 +157,7 @@ static inline void emit_cb_setup(struct r100_context *r100,
                                 unsigned width,
                                 unsigned height)
 {
-    uint32_t dst_pitch = pitch;
+    uint32_t dst_pitch = pitch * _mesa_get_format_bytes(mesa_format);
     uint32_t dst_format = 0;
     BATCH_LOCALS(&r100->radeon);