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 | */