# HG changeset patch # User nkeynes # Date 1148389828 0 # Node ID c728a442b43ff90de86aa577fec0ed87433ddf46 # Parent d88dd2e9a19049c753294e63dc23a03c7744a7c3 Add texcache invalidates on direct writes to 64-bit vram. Technically we should do it on direct writes to 32-bit vram as well, but noone (sane) is going to try to write a texture there... --- a/src/sh4/sh4mem.c Sat May 20 06:24:49 2006 +0000 +++ b/src/sh4/sh4mem.c Tue May 23 13:10:28 2006 +0000 @@ -1,5 +1,5 @@ /** - * $Id: sh4mem.c,v 1.10 2006-04-30 01:50:15 nkeynes Exp $ + * $Id: sh4mem.c,v 1.11 2006-05-23 13:10:28 nkeynes Exp $ * sh4mem.c is responsible for the SH4's access to memory (including memory * mapped I/O), using the page maps created in mem.c * @@ -221,6 +221,7 @@ } if( (addr&0x1F800000) == 0x04000000 || (addr&0x1F800000) == 0x11000000 ) { + texcache_invalidate_page(addr& 0x7FFFFF); addr = TRANSLATE_VIDEO_64BIT_ADDRESS(addr); } @@ -265,6 +266,7 @@ } if( (addr&0x1F800000) == 0x04000000 || (addr&0x1F800000) == 0x11000000 ) { + texcache_invalidate_page(addr& 0x7FFFFF); addr = TRANSLATE_VIDEO_64BIT_ADDRESS(addr); } if( IS_MMU_ENABLED() ) { @@ -297,6 +299,7 @@ } if( (addr&0x1F800000) == 0x04000000 || (addr&0x1F800000) == 0x11000000 ) { + texcache_invalidate_page(addr& 0x7FFFFF); addr = TRANSLATE_VIDEO_64BIT_ADDRESS(addr); }