Hi all,
It is obvious that a user program shouldn't generate a BSOD!! The BSOD says on most cases that it has found an invalid operation, concretely a STOP instruction. Sometimes, however, there is a problem with an IRQ, which I do not remember right now. It seems that Athlon processors are not 100% compatible with x86!! I know that AMD64 processors follow a slightly different memory consistency model than the x86-based ones (see
http://www.linuxjournal.com/article/8212), but the x86 AMD models SHOULD be compatible with Intel ones. I know that consistency has to do with parallel systems, but it might have some effect if we consider the processor, the DMA and the graphic card as different elements that are accessing the same shared memory. As a note, I have the latest version for all of my system drivers, and no other program generates a BSOD on my WinXP system. However, this problem is clearly related with a bug in some other module (card driver, DirectX or whatsoever), as the program's non-privileged code should never be able to generate a system crash.
I have not found the concrete source of the problem. However, I have found some configuration which does not crashes my computer. Particularly, there are two things that can be configured regarding the CPU type:
- The processor extensions (MMX, SSE, etc)
- The memcpy routine selected.
Regarding the processor extensions, my AMD Athlon has the four first options in the "advanced" options for CPU: FPU, MMX, 3dNow! and MMX-EXT. The Athlon line does not have SSE nor SSE2, as reported by Sandra. I have tried the log interface and VLC detects the options: 486, 586 and all of the previous ones, so it seems to work properly
Regarding the memory copy routine: The "default" option selects MMX-EXT (according to the log). I do not know exactly the differece between them, I have had no time to search the code, but I have found an old changeset log page (
https://trac.videolan.org/vlc/changeset/1260) that states the following regarding memcpy options:
Borrowed MPlayer's fast memcpy() routines. Best is autodetected, choose
"--memcpy <whatever>" to choose one from c, mmx, mmxext or 3dn.
Please test! Especially Athlon users.
Thus, it seems that there might be some problem with Athlon processors that has not been detected. However, it seems to be quite a hard bug, as the program randomly crases the whole machine.
I have found the following
safe configuration for my AMD Athlon processor:
- Disable SSE and SSE2 in the Advanced --> Cpu Features tab (Within the advanced options). The program detects these as not available, but I unset them "just in case".
- Change the default option in Advanced --> Memory copy module, from "default" to "MMX".
I intend to report this as a bug, I am currently dealing with the trac tool, but I can not find a clear help page for newbies on the system. I will try to post more information as I can make more tries. Note that testing is very long, as a crash clearly shows a problematic configuration, but not crashing on a while does not mean that there is a problem.
If someone can hint me in the tries to perform, I would thank the help and try to collaborate in order to isolate the issue. Meanwhile, I advice Athlon owners to modify those options.
Regards