2 surfaces with alpha channel. One surface is fully transparent (for example). Second has opaque colors and semitransparent colors. Second surface has disabled SDL_SRCALPHA flag (no alpha blitting - only copy). When I blit second surface (src) to first (dst) ALL semitransparent colors are lost in destination (copied as fully transparent). This bug caused by C -> assembler integration and fixed in HEAD branch of libsdl. I build patch from SVN which fixes this bug. Reproducible: Always Steps to Reproduce:
Created attachment 108410 [details] media-libs/libsdl-1.2.11-r1.ebuild
Created attachment 108411 [details, diff] files/libsdl-1.2.11-asm-blit-fix.patch
Created attachment 113341 [details, diff] files/libsdl-1.2.11-asm-blit-fix.patch This patch fixes both BlitRGBtoRGBPixelAlphaMMX() and BlitRGBtoRGBPixelAlphaMMX3DNOW() functions. Previous patch only fix BlitRGBtoRGBPixelAlphaMMX3DNOW which cause properly working on AMD processors and fail on Intel ones.
i dont see these changes in the upstream SDL svn repo ... did you submit it somewhere for them to fix ?
This bugfix is only in libsdl bugzilla: http://bugzilla.libsdl.org/show_bug.cgi?id=390
I forget to say that this patch fixes this problem at 8 (of 8) my Gentoo boxes (2 x86_64[-march=k8], 1 i686[-mtune=athlon-xp], 2 i686[-mtune=pentium4], 3 i686[-mtune=pentium-m]).
Changes are accepted by libsdl developers: > Fixed in svn revision #3006 for the 1.2 branch and #3007 for the 1.3 branch. http://bugzilla.libsdl.org/show_bug.cgi?id=390#c2
is this fixed in 1.2.12?
Looks like fixed. All changes of libsdl-1.2.11-asm-blit-fix.patch are applied.
okay, thanks