On Thu, 2003-11-06 at 00:36, Felix KÃhling wrote:
> I just ran into another related problem. The xscreensaver demo cage (for
> example) terminated with:
> 
> drmCommandWrite: -22
> drmRadeonCmdBuffer: -22 (exiting)
> 
> before rendering the first frame. The kernel log shows:
> 
> [drm:radeon_check_and_fixup_packets] *ERROR* Invalid R100 texture offset
> [drm:radeon_emit_packets] *ERROR* Packet verification failed
> [drm:radeon_cp_cmdbuf] *ERROR* radeon_emit_packets failed
> 
> This appears to happen if the application changes some texture filter
> options without triggering the _NEW_TEXTURE state bit. Therefore the
> code in radeon_texstate.c doesn't set a valid texture offset in the
> TXFILTER command packet. The attached patch fixes the problem for me. I
> hope it doesn't break anything else.
> 
> R200 may need a similar patch.

Indeed, something like this.


-- 
Earthling Michel DÃnzer      |     Debian (powerpc), X and DRI developer
Software libre enthusiast    |   http://svcs.affero.net/rm.php?r=daenzer
Index: lib/GL/mesa/src/drv/r200/r200_state_init.c
===================================================================
RCS file: /cvs/dri/xc/xc/lib/GL/mesa/src/drv/r200/r200_state_init.c,v
retrieving revision 1.14
diff -p -u -r1.14 r200_state_init.c
--- lib/GL/mesa/src/drv/r200/r200_state_init.c	4 Nov 2003 00:46:04 -0000	1.14
+++ lib/GL/mesa/src/drv/r200/r200_state_init.c	6 Nov 2003 00:00:35 -0000
@@ -490,7 +496,8 @@ void r200InitState( r200ContextPtr rmesa
          ((i << R200_TXFORMAT_ST_ROUTE_SHIFT) |  /* <-- note i */
           (2 << R200_TXFORMAT_WIDTH_SHIFT) |
           (2 << R200_TXFORMAT_HEIGHT_SHIFT));
-      rmesa->hw.tex[i].cmd[TEX_PP_TXOFFSET] = 0;
+      rmesa->hw.tex[i].cmd[TEX_PP_TXOFFSET] =
+	 rmesa->r200Screen->texOffset[RADEON_CARD_HEAP];
       rmesa->hw.tex[i].cmd[TEX_PP_BORDER_COLOR] = 0;
       rmesa->hw.tex[i].cmd[TEX_PP_TXFORMAT_X] =
          (/* R200_TEXCOORD_PROJ | */

Reply via email to