The difficult part is that it says 57.4% is spent in ntdll.dll, which when clicked on will give the very same screen. Why would it be spending 57.4% of CPU time in ntdll.dll? SDL_SemPost does indeed have something to do with multithreading (releasing a locked part of the CPU, Timer, BIOS Menu or Debugger thread). But that only takes up 0.9% of total time (which shouldn't be much comparing to 57.4% total spent time in ntdll.dll). The CPU is only interrupted every 3000 CPU instructions (I usually set it to 30000 to get good performance on my 4.0GHz Intel i7 PC). The problem is I still don't know why 57.4% is spent inside ntdll.dll. Do simple delays (SDL_Delay() function) also count towards this percentage? The CPU thread calls SDL_Delay(0) every X instruction cycles (which can be set in the CPU menu in the BIOS). I usually leave this at the default setting (3000 cycles) or crank it up to 30000 cycles for good performance on my fast PC(the slow 2.2GHz dual core laptop I use can't handle such a speed for some reason).
The thing the main CPU thread does is simply execute X instructions/cycles(3000 or 30000 in this case), next adds 1 ms to the CPU time (the cycles are kept on ms resolution this way) and finally delays 0 ms using SDL_Delay(0) until the CPU time (the destination time of the CPU) matches or surpasses the real time (gotten from SDL or any possible high resolution timer, depending on the destination platform(Windows, Linux or PSP)). This way up to X instructions are executed each ms. This can generate 1000+ 0 us delays each second (depending on the time the CPU thread takes executing those instructions). Could this be the source of this?
The Timer thread also executes delays, but it will execute a minimum delay of 0 us after each timer step to provide maximum accuracy (timer step length depends on the timers themselves, which are keeped synchronized using the Timer thread's high resolution timer, which in turn is updated only once after each delay after which it's added to all available timers and after that the timers are updated up to current time as dictated by the high resolution timer current time).