Files
SDL/test
Sam Lantinga 244ae39b30 Optimized the 16-bit -> 32-bit SSE pixel conversion
Test code:
---
int main( int argc, char *argv[] )
{
    SDL_Surface *orig = SDL_LoadPNG("testyuv.png");
    SDL_Surface *surf16 = SDL_ConvertSurface(orig, SDL_PIXELFORMAT_RGB565);
    SDL_Surface *surf32 = SDL_ConvertSurface(surf16, SDL_PIXELFORMAT_ARGB8888);

    Uint64 then = SDL_GetTicks();
    for (int i = 0; i < 100000; ++i) {
        SDL_BlitSurface(surf16, NULL, surf32, NULL);
    }
    Uint64 now = SDL_GetTicks();
    SDL_Log("Blit took %d ms\n", (int)(now - then));
    return 0;
}
---

Results on my system:
BlitNtoN: Blit took 34522 ms
Blit_RGB565_32 (3 LUT): Blit took 9316 ms
Blit_RGB565_32 (1 LUT): Blit took 5268 ms
Blit_RGB565_32_SSE41: Blit took 1619 ms
2025-10-07 16:31:14 -07:00
..
2022-10-10 08:50:59 -07:00
2025-10-06 17:24:56 -07:00
2025-01-22 20:25:04 -08:00
2025-10-07 11:12:31 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 16:45:53 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-01-01 07:45:52 -08:00
2025-10-06 17:24:56 -07:00
2025-01-22 20:25:04 -08:00
2022-12-15 08:01:01 -08:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-01-01 07:45:52 -08:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00
2025-01-22 20:25:04 -08:00
2025-02-21 10:09:10 -08:00
2025-09-22 11:27:23 -07:00
2024-09-17 02:04:54 -07:00
2025-01-01 07:45:52 -08:00
2025-01-01 07:45:52 -08:00
2025-02-21 10:09:10 -08:00
2025-02-21 10:09:10 -08:00
2025-01-01 07:45:52 -08:00
2025-01-22 20:25:04 -08:00
2025-01-01 07:45:52 -08:00
2025-01-01 07:45:52 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-10-06 16:45:53 -07:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-01 07:45:52 -08:00
2025-01-22 20:25:04 -08:00
2025-01-01 07:45:52 -08:00
2025-08-01 02:27:54 +02:00
2023-07-28 07:35:04 +03:00
2025-01-01 07:45:52 -08:00
2025-01-01 07:45:52 -08:00
2025-01-01 07:45:52 -08:00
2025-01-01 07:45:52 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-01 07:45:52 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-01 07:45:52 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-22 20:25:04 -08:00
2025-01-01 07:45:52 -08:00
2025-10-06 16:45:53 -07:00
2025-10-06 17:24:56 -07:00
2025-10-06 17:24:56 -07:00