Thu, 17 Feb 2011 18:55:56 -0800Don't remove the pseudo-generated headers because this command might be run from the repo directory and it confuses people, especially if they have no way of regenerating SDL_revision.h :)
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 18:55:56 -0800] rev 5341
Don't remove the pseudo-generated headers because this command might be run from the repo directory and it confuses people, especially if they have no way of regenerating SDL_revision.h :)

Thu, 17 Feb 2011 18:54:11 -0800Fixed make install
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 18:54:11 -0800] rev 5340
Fixed make install

Thu, 17 Feb 2011 18:53:46 -0800Fixed debug format
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 18:53:46 -0800] rev 5339
Fixed debug format

Thu, 17 Feb 2011 12:16:01 -0800Removed the obsolete NoSTDIO configurations
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 12:16:01 -0800] rev 5338
Removed the obsolete NoSTDIO configurations

Thu, 17 Feb 2011 12:03:48 -0800Allow the application to explicitly request a software renderer.
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 12:03:48 -0800] rev 5337
Allow the application to explicitly request a software renderer.

Thu, 17 Feb 2011 09:26:15 -0800Our minimum Windows version is Windows 2000, so it's okay to directly call InitializeCriticalSectionAndSpinCount()..
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 09:26:15 -0800] rev 5336
Our minimum Windows version is Windows 2000, so it's okay to directly call InitializeCriticalSectionAndSpinCount()..

Thu, 17 Feb 2011 09:13:12 -0800Fixed bug 1128
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 09:13:12 -0800] rev 5335
Fixed bug 1128

Patrick Baggett 2011-02-16 22:58:33 PST

This enhancement is for both x86/x64 Windows.

The SDL implementation of mutexes uses the Win32 API interprocess
synchronization primitive called a "Mutex". This implementation is subpar
because it has a much higher overhead than an intraprocess mutex. The exact
technical details are below, but my tests have shown that for reasonably high
contention (10 threads on 4 physical cores), it has 13x higher overhead than
the Win32 CriticalSection API.

If this enhancement is accepted, I will write a patch to implement SDL mutexes
using the critical section API, which should dramatically reduce overhead and
improve scalability.


-- Tech details --
Normally, Win32 Mutexes are used across process boundaries to synchronize
separate processes. In order to lock or unlock them, a user->kernel space
transition is necessary, even in the uncontented case on a single CPU machine.
Win32 CriticalSection objects can only be used within the same process virtual
address space and thus to lock one, does not require a user->kernel space
transition for the uncontended case, and additionally may spin a short while
before going into kernel wait. This small spin allows a thread to obtain the
lock if the mutex is released shortly after the thread starts spinning, in
effect bypassing the overhead of user->kernel space transition which has higher
overhead than the spinning itself.

Thu, 17 Feb 2011 02:31:50 -0800Fixed bug #1090 (SDL_BlitCopyOverlap() assumes memcpy() operates in order) SDL-1.2
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 02:31:50 -0800] rev 5334
Fixed bug #1090 (SDL_BlitCopyOverlap() assumes memcpy() operates in order)

The much more complete fix is in SDL 1.3, but this is a band-aid that will fix the bug for 1.2.

Thu, 17 Feb 2011 02:23:48 -0800Implemented OpenGL ES RenderClear()
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 02:23:48 -0800] rev 5333
Implemented OpenGL ES RenderClear()

Thu, 17 Feb 2011 02:18:41 -0800Fixed warnings about unused variables and so forth.
Sam Lantinga <slouken@libsdl.org> [Thu, 17 Feb 2011 02:18:41 -0800] rev 5332
Fixed warnings about unused variables and so forth.