Opened 16 years ago
Closed 16 years ago
#2799 closed bug (fixed)
Mesa Software Renderer crash with SSE optimization enabled
Reported by: | phoudoin | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | - General | Version: | R1/pre-alpha1 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
When libGL.so and Mesa Software Renderer are built with USE_SSE_ASM defined to enable Mesa's SSE optimization, GLDirectMode crash at start and GLTeapot crash after a short time. Only GLInfo don't crash, but it's expected as it does no GL drawing at all.
The crash is due to an invalid opcode exception:
Thread 334 caused an exception: Invalid opcode exception [...] [Switching to team /boot/beos/demos/GLDirectMode (334) thread GLDirectMode (334)] 0x00846e20 in _mesa_sse_transform_points3_general () from /boot/beos/system/add-ons/opengl/Mesa Software Renderer
Disassembled code show the opcode is movaps (%edx),%xmm0
I'm not fluent in SSE instruction set enough to dive in more. Anyone know if and where to find some MMX/SSE/SSE2/SSE3/SSE4 stress tests that could be run under Haiku?
Change History (3)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
I tried to dump cr0 et cr4 on invalid code exception, and in fact cr4 is equal to zero. This is a condition for the exception to be thrown on SSE 128bits instructions. I don't get why and where this register is cleared though.
comment:3 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
This should be fixed in hrev29053.
Complete GDB log and faulty code disassembly: