• Ryan C. Gordon's avatar
    From: Gabriel Gambetta · 7a800234
    Ryan C. Gordon authored
    To: SDL Mailing List <sdl@libsdl.org>
    Date: Fri, 17 Nov 2006 00:39:29 -0200
    Subject: [SDL] Alpha blending bug - fixed?
    
    It turns out mm5 never got the correct value. This failed :
    
    	[...]
    	"movd %1, %%mm5\n\t"
    	: : "m" (amask), "m" (sf->Ashift) );
    
    
    mm5 got 0xFF000018 instead of 0x00000018. However I did this :
    
    	Uint32 ashift = sf->Ashift;
    	[...]
    	"movd %1, %%mm5\n\t"
    	: : "m" (amask), "m" (ashift) );
    
    and everything worked fine.
    
    The only thing I could find out was that ashift is 32-bit aligned but
    sf->Ashift isn't:
    
    printf("ashift     %8X [%d]\n", &ashift, (int)(&ashift) % 4);
    printf("sf->Ashift %8X [%d]\n", &sf->Ashift, (int)(&sf->Ashift) % 4);
    
    ashift     at BFF0E0C4 [0]
    sf->Ashift at 08AFB9CD [1]
    
    Could this be the problem? If it is, the fix is extremely trivial.
    Should I submit a patch?
    
    	--Gabriel
    
    --HG--
    branch : SDL-1.2
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402236
    7a800234
Name
Last commit
Last update
..
audio Loading commit data...
cdrom Loading commit data...
cpuinfo Loading commit data...
events Loading commit data...
file Loading commit data...
hermes Loading commit data...
joystick Loading commit data...
loadso Loading commit data...
main Loading commit data...
stdlib Loading commit data...
thread Loading commit data...
timer Loading commit data...
video Loading commit data...
SDL.c Loading commit data...
SDL_error.c Loading commit data...
SDL_error_c.h Loading commit data...
SDL_fatal.c Loading commit data...
SDL_fatal.h Loading commit data...