Hi,

just updated after reading José's mail about the MACH64_NATIVE_VTXMFT
and tried running some apps. q3demo and quake2 crashed with multi
textures enabled:

q3demo.x86: mach64_tris.c:518: mach64_draw_triangle: Assertion `vb == vbchk' failed.

I found the problem in the COPY_VERTEX macro. The movsl instruction
doesn't decrement %ecx when there is no rep prefix, so you have to
decrease afterwards. Here's the fix:

diff -u -r1.1.6.13.2.5.4.6 mach64_tris.c
--- mach64_tris.c       11 Jul 2002 23:23:03 -0000      1.1.6.13.2.5.4.6
+++ mach64_tris.c       12 Jul 2002 02:24:53 -0000
@@ -116,6 +116,7 @@
       __asm__ __volatile__( "movsl ; movsl ; movsl"                    \
                            : "=c" (__s), "=D" (vb), "=S" (__p)         \
                            : "0" (__s), "1" (vb), "2" (__p) );         \
+      __s -= 3;                                                         \
    }                                                                   \
    *vb++ = ((__s - 1) << 16) |                                         \
           (ADRINDEX( MACH64_VERTEX_##n##_X_Y ) - (__s - 1) );          \

Bye,
   Felix

               __\|/__    ___     ___     ___
__Tschüß_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___
_____Felix_______\Ä/\ \_____\ \_____\ \______U___just not everything____
  [EMAIL PROTECTED]    >o<__/   \___/   \___/        at the same time!


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
PC Mods, Computing goodies, cases & more
http://thinkgeek.com/sf
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to