[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] "import pygame" crashes with svn build



Hi Lorenz,

Yes, it is supposed to be summer where I am too, and actually was hot for awhile, but not now. Anyway, to make sure I am clear on this, Rev. 1658 crashes when the transform module is imported, but earlier revisions work. I assume this means pygame.transform.smoothscale also works. So I am guessing it is the call to the SDL function SDL_HasSSE that is causing the problem. The attached patch to transform.c, Rev 2447 (release candidate 2) removes the SDL_HasSSE call for 64bit intels. Would you give it a try? If it works I will commit it to SVN. It is not ideal, but at least smoothscale will still use MMX.

Lenard

Lorenz Quack wrote:
Hey Lenard,

sorry for the long delays but I'm quite busy these days plus the good weather... not many PC hours left.

Lenard Lindstrom wrote:
Hi Lorenz,

Could you try dropping in SVN rev 1912 of transform.c instead. This predates the Python 3 updates. This is kind of reaching, but it will narrow down the search.

I tried this out and poked some more at it and it doesn't seem to be py3k related but rather MMX/SSE.
The transform.c rev 1657 works and 1658 breaks.
Also if I comment out "#define SCALE_MMX_SUPPORT" in any version it works.

I don't get this. I keep thinking that something must be wrong with _my_ system otherwise someone else
must have encountered this as well.
The only thing I could possibly think of is that I installed the sdl-gfx package without the "mmx" USE-flag
(I'm running Gentoo) because it is not available on amd64 architecture.

By the way. I also tried commenting out all the asm stuff in scale_mmx64.c but it would still crash. So maybe it is something that is going on in transform.c but related to MMX/SSE

If you have any other ideas let me know.

yours
//Lorenz



Thanks,

Lenard

Lorenz Quack wrote:

Hi again,


you figured this out yet?


not 100% but at least now I get it to compile by following your advice:
Easiest way to work around it...
  Comment out import transform lines in the file:
      site-packages/pygame/__init__.py

[...]

Perhaps try commenting out the sse/mmx parts?


that seems to be the problem. If I comment out

#       include "scale_mmx64.c"

in "scale_mmx.c" it compiles. if I import pygame the interpreter naturally complains about undefined symbols but as long as I don't use the transform module it seems to work this way as well. of course this is not a solution.

For debugging purposes I tried to remove all SSE/MMX code and simply implement
empty dummy functions like this:

void filter_shrink_X_MMX(Uint8 *srcpix, Uint8 *dstpix, int height, int srcpitch,
                         int dstpitch, int srcwidth, int dstwidth) {}

that also crashed. I find this very confusing and frustrating. So I settle with
the work around for now.


thanks again for the help and if I can help with some debug information or if you
have any ideas let me know.

yours
//Lorenz