diff --git a/libs/SDL2/test/CMakeLists.txt b/libs/SDL2/test/CMakeLists.txt
deleted file mode 100644
index 3c25c5c7c..000000000
--- a/libs/SDL2/test/CMakeLists.txt
+++ /dev/null
@@ -1,122 +0,0 @@
-cmake_minimum_required(VERSION 2.8.11)
-project(SDL2 C)
-
-# Global settings for all of the test targets
-# FIXME: is this wrong?
-remove_definitions(-DUSING_GENERATED_CONFIG_H)
-link_libraries(SDL2_test SDL2-static)
-
-# FIXME: Parent directory CMakeLists.txt only sets these for mingw/cygwin,
-# but we need them for VS as well.
-if(WINDOWS)
-    link_libraries(SDL2main)
-    add_definitions(-Dmain=SDL_main)
-endif()
-
-add_executable(checkkeys checkkeys.c)
-add_executable(loopwave loopwave.c)
-add_executable(loopwavequeue loopwavequeue.c)
-add_executable(testresample testresample.c)
-add_executable(testaudioinfo testaudioinfo.c)
-
-file(GLOB TESTAUTOMATION_SOURCE_FILES testautomation*.c)
-add_executable(testautomation ${TESTAUTOMATION_SOURCE_FILES})
-
-add_executable(testmultiaudio testmultiaudio.c)
-add_executable(testaudiohotplug testaudiohotplug.c)
-add_executable(testaudiocapture testaudiocapture.c)
-add_executable(testatomic testatomic.c)
-add_executable(testintersections testintersections.c)
-add_executable(testrelative testrelative.c)
-add_executable(testhittesting testhittesting.c)
-add_executable(testdraw2 testdraw2.c)
-add_executable(testdrawchessboard testdrawchessboard.c)
-add_executable(testdropfile testdropfile.c)
-add_executable(testerror testerror.c)
-add_executable(testfile testfile.c)
-add_executable(testgamecontroller testgamecontroller.c)
-add_executable(testgesture testgesture.c)
-add_executable(testgl2 testgl2.c)
-add_executable(testgles testgles.c)
-add_executable(testgles2 testgles2.c)
-add_executable(testhaptic testhaptic.c)
-add_executable(testhotplug testhotplug.c)
-add_executable(testrumble testrumble.c)
-add_executable(testthread testthread.c)
-add_executable(testiconv testiconv.c)
-add_executable(testime testime.c)
-add_executable(testjoystick testjoystick.c)
-add_executable(testkeys testkeys.c)
-add_executable(testloadso testloadso.c)
-add_executable(testlock testlock.c)
-
-if(APPLE)
-    add_executable(testnative testnative.c
-                              testnativecocoa.m
-                              testnativex11.c)
-elseif(WINDOWS)
-    add_executable(testnative testnative.c testnativew32.c)
-elseif(UNIX)
-    add_executable(testnative testnative.c testnativex11.c)
-endif()
-
-add_executable(testoverlay2 testoverlay2.c testyuv_cvt.c)
-add_executable(testplatform testplatform.c)
-add_executable(testpower testpower.c)
-add_executable(testfilesystem testfilesystem.c)
-add_executable(testrendertarget testrendertarget.c)
-add_executable(testscale testscale.c)
-add_executable(testsem testsem.c)
-add_executable(testshader testshader.c)
-add_executable(testshape testshape.c)
-add_executable(testsprite2 testsprite2.c)
-add_executable(testspriteminimal testspriteminimal.c)
-add_executable(teststreaming teststreaming.c)
-add_executable(testtimer testtimer.c)
-add_executable(testver testver.c)
-add_executable(testviewport testviewport.c)
-add_executable(testwm2 testwm2.c)
-add_executable(testyuv testyuv.c testyuv_cvt.c)
-add_executable(torturethread torturethread.c)
-add_executable(testrendercopyex testrendercopyex.c)
-add_executable(testmessage testmessage.c)
-add_executable(testdisplayinfo testdisplayinfo.c)
-add_executable(testqsort testqsort.c)
-add_executable(testbounds testbounds.c)
-add_executable(testcustomcursor testcustomcursor.c)
-add_executable(controllermap controllermap.c)
-add_executable(testvulkan testvulkan.c)
-
-# HACK: Dummy target to cause the resource files to be copied to the build directory.
-# Need to make it an executable so we can use the TARGET_FILE_DIR generator expression.
-# This is needed so they get copied to the correct Debug/Release subdirectory in Xcode.
-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/resources_dummy.c "int main(int argc, const char **argv){ return 1; }\n")
-add_executable(SDL2_test_resoureces ${CMAKE_CURRENT_BINARY_DIR}/resources_dummy.c)
-
-file(GLOB RESOURCE_FILES *.bmp *.wav)
-foreach(RESOURCE_FILE ${RESOURCE_FILES})
-    add_custom_command(TARGET SDL2_test_resoureces POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILE} $<TARGET_FILE_DIR:SDL2_test_resoureces>)
-endforeach(RESOURCE_FILE)
-
-file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-
-# TODO: Might be easier to make all targets depend on the resources...?
-add_dependencies(testscale SDL2_test_resoureces)
-add_dependencies(testrendercopyex SDL2_test_resoureces)
-add_dependencies(controllermap SDL2_test_resoureces)
-add_dependencies(testyuv SDL2_test_resoureces)
-add_dependencies(testgamecontroller SDL2_test_resoureces)
-add_dependencies(testshape SDL2_test_resoureces)
-add_dependencies(testshader SDL2_test_resoureces)
-add_dependencies(testnative SDL2_test_resoureces)
-add_dependencies(testspriteminimal SDL2_test_resoureces)
-add_dependencies(testautomation SDL2_test_resoureces)
-add_dependencies(testcustomcursor SDL2_test_resoureces)
-add_dependencies(testrendertarget SDL2_test_resoureces)
-add_dependencies(testsprite2 SDL2_test_resoureces)
-
-add_dependencies(loopwave SDL2_test_resoureces)
-add_dependencies(loopwavequeue SDL2_test_resoureces)
-add_dependencies(testresample SDL2_test_resoureces)
-add_dependencies(testaudiohotplug SDL2_test_resoureces)
-add_dependencies(testmultiaudio SDL2_test_resoureces)
diff --git a/libs/SDL2/test/testyuv.bmp b/libs/SDL2/test/testyuv.bmp
deleted file mode 100644
index af32034b6..000000000
Binary files a/libs/SDL2/test/testyuv.bmp and /dev/null differ
diff --git a/libs/SDL2/test/testyuv.c b/libs/SDL2/test/testyuv.c
deleted file mode 100644
index f52ab9f72..000000000
--- a/libs/SDL2/test/testyuv.c
+++ /dev/null
@@ -1,455 +0,0 @@
-/*
-  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely.
-*/
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "SDL.h"
-#include "SDL_test_font.h"
-#include "testyuv_cvt.h"
-
-
-/* 422 (YUY2, etc) formats are the largest */
-#define MAX_YUV_SURFACE_SIZE(W, H, P)  (H*4*(W+P+1)/2)
-
-
-/* Return true if the YUV format is packed pixels */
-static SDL_bool is_packed_yuv_format(Uint32 format)
-{
-    return (format == SDL_PIXELFORMAT_YUY2 ||
-            format == SDL_PIXELFORMAT_UYVY ||
-            format == SDL_PIXELFORMAT_YVYU);
-}
-
-/* Create a surface with a good pattern for verifying YUV conversion */
-static SDL_Surface *generate_test_pattern(int pattern_size)
-{
-    SDL_Surface *pattern = SDL_CreateRGBSurfaceWithFormat(0, pattern_size, pattern_size, 0, SDL_PIXELFORMAT_RGB24);
-
-    if (pattern) {
-        int i, x, y;
-        Uint8 *p, c;
-        const int thickness = 2;    /* Important so 2x2 blocks of color are the same, to avoid Cr/Cb interpolation over pixels */
-
-        /* R, G, B in alternating horizontal bands */
-        for (y = 0; y < pattern->h; y += thickness) {
-            for (i = 0; i < thickness; ++i) {
-                p = (Uint8 *)pattern->pixels + (y + i) * pattern->pitch + ((y/thickness) % 3);
-                for (x = 0; x < pattern->w; ++x) {
-                    *p = 0xFF;
-                    p += 3;
-                }
-            }
-        }
-
-        /* Black and white in alternating vertical bands */
-        c = 0xFF;
-        for (x = 1*thickness; x < pattern->w; x += 2*thickness) {
-            for (i = 0; i < thickness; ++i) {
-                p = (Uint8 *)pattern->pixels + (x + i)*3;
-                for (y = 0; y < pattern->h; ++y) {
-                    SDL_memset(p, c, 3);
-                    p += pattern->pitch;
-                }
-            }
-            if (c) {
-                c = 0x00;
-            } else {
-                c = 0xFF;
-            }
-        }
-    }
-    return pattern;
-}
-
-static SDL_bool verify_yuv_data(Uint32 format, const Uint8 *yuv, int yuv_pitch, SDL_Surface *surface)
-{
-    const int tolerance = 20;
-    const int size = (surface->h * surface->pitch);
-    Uint8 *rgb;
-    SDL_bool result = SDL_FALSE;
-
-    rgb = (Uint8 *)SDL_malloc(size);
-    if (!rgb) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory");
-        return SDL_FALSE;
-    }
-
-    if (SDL_ConvertPixels(surface->w, surface->h, format, yuv, yuv_pitch, surface->format->format, rgb, surface->pitch) == 0) {
-        int x, y;
-        result = SDL_TRUE;
-        for (y = 0; y < surface->h; ++y) {
-            const Uint8 *actual = rgb + y * surface->pitch;
-            const Uint8 *expected = (const Uint8 *)surface->pixels + y * surface->pitch;
-            for (x = 0; x < surface->w; ++x) {
-                int deltaR = (int)actual[0] - expected[0];
-                int deltaG = (int)actual[1] - expected[1];
-                int deltaB = (int)actual[2] - expected[2];
-                int distance = (deltaR * deltaR + deltaG * deltaG + deltaB * deltaB);
-                if (distance > tolerance) {
-                    SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Pixel at %d,%d was 0x%.2x,0x%.2x,0x%.2x, expected 0x%.2x,0x%.2x,0x%.2x, distance = %d\n", x, y, actual[0], actual[1], actual[2], expected[0], expected[1], expected[2], distance);
-                    result = SDL_FALSE;
-                }
-                actual += 3;
-                expected += 3;
-            }
-        }
-    } else {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't convert %s to %s: %s\n", SDL_GetPixelFormatName(format), SDL_GetPixelFormatName(surface->format->format), SDL_GetError());
-    }
-    SDL_free(rgb);
-
-    return result;
-}
-
-static int run_automated_tests(int pattern_size, int extra_pitch)
-{
-    const Uint32 formats[] = {
-        SDL_PIXELFORMAT_YV12,
-        SDL_PIXELFORMAT_IYUV,
-        SDL_PIXELFORMAT_NV12,
-        SDL_PIXELFORMAT_NV21,
-        SDL_PIXELFORMAT_YUY2,
-        SDL_PIXELFORMAT_UYVY,
-        SDL_PIXELFORMAT_YVYU
-    };
-    int i, j;
-    SDL_Surface *pattern = generate_test_pattern(pattern_size);
-    const int yuv_len = MAX_YUV_SURFACE_SIZE(pattern->w, pattern->h, extra_pitch);
-    Uint8 *yuv1 = (Uint8 *)SDL_malloc(yuv_len);
-    Uint8 *yuv2 = (Uint8 *)SDL_malloc(yuv_len);
-    int yuv1_pitch, yuv2_pitch;
-    int result = -1;
-    
-    if (!pattern || !yuv1 || !yuv2) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't allocate test surfaces");
-        goto done;
-    }
-
-    /* Verify conversion from YUV formats */
-    for (i = 0; i < SDL_arraysize(formats); ++i) {
-        if (!ConvertRGBtoYUV(formats[i], pattern->pixels, pattern->pitch, yuv1, pattern->w, pattern->h, SDL_GetYUVConversionModeForResolution(pattern->w, pattern->h), 0, 100)) {
-            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "ConvertRGBtoYUV() doesn't support converting to %s\n", SDL_GetPixelFormatName(formats[i]));
-            goto done;
-        }
-        yuv1_pitch = CalculateYUVPitch(formats[i], pattern->w);
-        if (!verify_yuv_data(formats[i], yuv1, yuv1_pitch, pattern)) {
-            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed conversion from %s to RGB\n", SDL_GetPixelFormatName(formats[i]));
-            goto done;
-        }
-    }
-
-    /* Verify conversion to YUV formats */
-    for (i = 0; i < SDL_arraysize(formats); ++i) {
-        yuv1_pitch = CalculateYUVPitch(formats[i], pattern->w) + extra_pitch;
-        if (SDL_ConvertPixels(pattern->w, pattern->h, pattern->format->format, pattern->pixels, pattern->pitch, formats[i], yuv1, yuv1_pitch) < 0) {
-            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't convert %s to %s: %s\n", SDL_GetPixelFormatName(pattern->format->format), SDL_GetPixelFormatName(formats[i]), SDL_GetError());
-            goto done;
-        }
-        if (!verify_yuv_data(formats[i], yuv1, yuv1_pitch, pattern)) {
-            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed conversion from RGB to %s\n", SDL_GetPixelFormatName(formats[i]));
-            goto done;
-        }
-    }
-
-    /* Verify conversion between YUV formats */
-    for (i = 0; i < SDL_arraysize(formats); ++i) {
-        for (j = 0; j < SDL_arraysize(formats); ++j) {
-            yuv1_pitch = CalculateYUVPitch(formats[i], pattern->w) + extra_pitch;
-            yuv2_pitch = CalculateYUVPitch(formats[j], pattern->w) + extra_pitch;
-            if (SDL_ConvertPixels(pattern->w, pattern->h, pattern->format->format, pattern->pixels, pattern->pitch, formats[i], yuv1, yuv1_pitch) < 0) {
-                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't convert %s to %s: %s\n", SDL_GetPixelFormatName(pattern->format->format), SDL_GetPixelFormatName(formats[i]), SDL_GetError());
-                goto done;
-            }
-            if (SDL_ConvertPixels(pattern->w, pattern->h, formats[i], yuv1, yuv1_pitch, formats[j], yuv2, yuv2_pitch) < 0) {
-                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't convert %s to %s: %s\n", SDL_GetPixelFormatName(formats[i]), SDL_GetPixelFormatName(formats[j]), SDL_GetError());
-                goto done;
-            }
-            if (!verify_yuv_data(formats[j], yuv2, yuv2_pitch, pattern)) {
-                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed conversion from %s to %s\n", SDL_GetPixelFormatName(formats[i]), SDL_GetPixelFormatName(formats[j]));
-                goto done;
-            }
-        }
-    }
-
-    /* Verify conversion between YUV formats in-place */
-    for (i = 0; i < SDL_arraysize(formats); ++i) {
-        for (j = 0; j < SDL_arraysize(formats); ++j) {
-            if (is_packed_yuv_format(formats[i]) != is_packed_yuv_format(formats[j])) {
-                /* Can't change plane vs packed pixel layout in-place */
-                continue;
-            }
-
-            yuv1_pitch = CalculateYUVPitch(formats[i], pattern->w) + extra_pitch;
-            yuv2_pitch = CalculateYUVPitch(formats[j], pattern->w) + extra_pitch;
-            if (SDL_ConvertPixels(pattern->w, pattern->h, pattern->format->format, pattern->pixels, pattern->pitch, formats[i], yuv1, yuv1_pitch) < 0) {
-                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't convert %s to %s: %s\n", SDL_GetPixelFormatName(pattern->format->format), SDL_GetPixelFormatName(formats[i]), SDL_GetError());
-                goto done;
-            }
-            if (SDL_ConvertPixels(pattern->w, pattern->h, formats[i], yuv1, yuv1_pitch, formats[j], yuv1, yuv2_pitch) < 0) {
-                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't convert %s to %s: %s\n", SDL_GetPixelFormatName(formats[i]), SDL_GetPixelFormatName(formats[j]), SDL_GetError());
-                goto done;
-            }
-            if (!verify_yuv_data(formats[j], yuv1, yuv2_pitch, pattern)) {
-                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed conversion from %s to %s\n", SDL_GetPixelFormatName(formats[i]), SDL_GetPixelFormatName(formats[j]));
-                goto done;
-            }
-        }
-    }
-
-
-    result = 0;
-
-done:
-    SDL_free(yuv1);
-    SDL_free(yuv2);
-    SDL_FreeSurface(pattern);
-    return result;
-}
-
-int
-main(int argc, char **argv)
-{
-    struct {
-        SDL_bool enable_intrinsics;
-        int pattern_size;
-        int extra_pitch;
-    } automated_test_params[] = {
-        /* Test: even width and height */
-        { SDL_FALSE, 2, 0 },
-        { SDL_FALSE, 4, 0 },
-        /* Test: odd width and height */
-        { SDL_FALSE, 1, 0 },
-        { SDL_FALSE, 3, 0 },
-        /* Test: even width and height, extra pitch */
-        { SDL_FALSE, 2, 3 },
-        { SDL_FALSE, 4, 3 },
-        /* Test: odd width and height, extra pitch */
-        { SDL_FALSE, 1, 3 },
-        { SDL_FALSE, 3, 3 },
-        /* Test: even width and height with intrinsics */
-        { SDL_TRUE, 32, 0 },
-        /* Test: odd width and height with intrinsics */
-        { SDL_TRUE, 33, 0 },
-        { SDL_TRUE, 37, 0 },
-        /* Test: even width and height with intrinsics, extra pitch */
-        { SDL_TRUE, 32, 3 },
-        /* Test: odd width and height with intrinsics, extra pitch */
-        { SDL_TRUE, 33, 3 },
-        { SDL_TRUE, 37, 3 },
-    };
-    int arg = 1;
-    const char *filename;
-    SDL_Surface *original;
-    SDL_Surface *converted;
-    SDL_Window *window;
-    SDL_Renderer *renderer;
-    SDL_Texture *output[3];
-    const char *titles[3] = { "ORIGINAL", "SOFTWARE", "HARDWARE" };
-    char title[128];
-    const char *yuv_name;
-    const char *yuv_mode;
-    Uint32 rgb_format = SDL_PIXELFORMAT_RGBX8888;
-    Uint32 yuv_format = SDL_PIXELFORMAT_YV12;
-    int current = 0;
-    int pitch;
-    Uint8 *raw_yuv;
-    Uint32 then, now, i, iterations = 100;
-    SDL_bool should_run_automated_tests = SDL_FALSE;
-
-    while (argv[arg] && *argv[arg] == '-') {
-        if (SDL_strcmp(argv[arg], "--jpeg") == 0) {
-            SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_JPEG);
-        } else if (SDL_strcmp(argv[arg], "--bt601") == 0) {
-            SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_BT601);
-        } else if (SDL_strcmp(argv[arg], "--bt709") == 0) {
-            SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_BT709);
-        } else if (SDL_strcmp(argv[arg], "--auto") == 0) {
-            SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_AUTOMATIC);
-        } else if (SDL_strcmp(argv[arg], "--yv12") == 0) {
-            yuv_format = SDL_PIXELFORMAT_YV12;
-        } else if (SDL_strcmp(argv[arg], "--iyuv") == 0) {
-            yuv_format = SDL_PIXELFORMAT_IYUV;
-        } else if (SDL_strcmp(argv[arg], "--yuy2") == 0) {
-            yuv_format = SDL_PIXELFORMAT_YUY2;
-        } else if (SDL_strcmp(argv[arg], "--uyvy") == 0) {
-            yuv_format = SDL_PIXELFORMAT_UYVY;
-        } else if (SDL_strcmp(argv[arg], "--yvyu") == 0) {
-            yuv_format = SDL_PIXELFORMAT_YVYU;
-        } else if (SDL_strcmp(argv[arg], "--nv12") == 0) {
-            yuv_format = SDL_PIXELFORMAT_NV12;
-        } else if (SDL_strcmp(argv[arg], "--nv21") == 0) {
-            yuv_format = SDL_PIXELFORMAT_NV21;
-        } else if (SDL_strcmp(argv[arg], "--rgb555") == 0) {
-            rgb_format = SDL_PIXELFORMAT_RGB555;
-        } else if (SDL_strcmp(argv[arg], "--rgb565") == 0) {
-            rgb_format = SDL_PIXELFORMAT_RGB565;
-        } else if (SDL_strcmp(argv[arg], "--rgb24") == 0) {
-            rgb_format = SDL_PIXELFORMAT_RGB24;
-        } else if (SDL_strcmp(argv[arg], "--argb") == 0) {
-            rgb_format = SDL_PIXELFORMAT_ARGB8888;
-        } else if (SDL_strcmp(argv[arg], "--abgr") == 0) {
-            rgb_format = SDL_PIXELFORMAT_ABGR8888;
-        } else if (SDL_strcmp(argv[arg], "--rgba") == 0) {
-            rgb_format = SDL_PIXELFORMAT_RGBA8888;
-        } else if (SDL_strcmp(argv[arg], "--bgra") == 0) {
-            rgb_format = SDL_PIXELFORMAT_BGRA8888;
-        } else if (SDL_strcmp(argv[arg], "--automated") == 0) {
-            should_run_automated_tests = SDL_TRUE;
-        } else {
-            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Usage: %s [--jpeg|--bt601|-bt709|--auto] [--yv12|--iyuv|--yuy2|--uyvy|--yvyu|--nv12|--nv21] [--rgb555|--rgb565|--rgb24|--argb|--abgr|--rgba|--bgra] [image_filename]\n", argv[0]);
-            return 1;
-        }
-        ++arg;
-    }
-
-    /* Run automated tests */
-    if (should_run_automated_tests) {
-        for (i = 0; i < SDL_arraysize(automated_test_params); ++i) {
-            SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "Running automated test, pattern size %d, extra pitch %d, intrinsics %s\n", 
-                automated_test_params[i].pattern_size,
-                automated_test_params[i].extra_pitch,
-                automated_test_params[i].enable_intrinsics ? "enabled" : "disabled");
-            if (run_automated_tests(automated_test_params[i].pattern_size, automated_test_params[i].extra_pitch) < 0) {
-                return 2;
-            }
-        }
-        return 0;
-    }
-
-    if (argv[arg]) {
-        filename = argv[arg];
-    } else {
-        filename = "testyuv.bmp";
-    }
-    original = SDL_ConvertSurfaceFormat(SDL_LoadBMP(filename), SDL_PIXELFORMAT_RGB24, 0);
-    if (!original) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s\n", filename, SDL_GetError());
-        return 3;
-    }
-
-    raw_yuv = SDL_calloc(1, MAX_YUV_SURFACE_SIZE(original->w, original->h, 0));
-    ConvertRGBtoYUV(yuv_format, original->pixels, original->pitch, raw_yuv, original->w, original->h,
-        SDL_GetYUVConversionModeForResolution(original->w, original->h),
-        0, 100);
-    pitch = CalculateYUVPitch(yuv_format, original->w);
-
-    converted = SDL_CreateRGBSurfaceWithFormat(0, original->w, original->h, 0, rgb_format);
-    if (!converted) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create converted surface: %s\n", SDL_GetError());
-        return 3;
-    }
-
-    then = SDL_GetTicks();
-    for ( i = 0; i < iterations; ++i ) {
-        SDL_ConvertPixels(original->w, original->h, yuv_format, raw_yuv, pitch, rgb_format, converted->pixels, converted->pitch);
-    }
-    now = SDL_GetTicks();
-    SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "%d iterations in %d ms, %.2fms each\n", iterations, (now - then), (float)(now - then)/iterations);
-
-    window = SDL_CreateWindow("YUV test",
-                              SDL_WINDOWPOS_UNDEFINED,
-                              SDL_WINDOWPOS_UNDEFINED,
-                              original->w, original->h,
-                              0);
-    if (!window) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create window: %s\n", SDL_GetError());
-        return 4;
-    }
-
-    renderer = SDL_CreateRenderer(window, -1, 0);
-    if (!renderer) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create renderer: %s\n", SDL_GetError());
-        return 4;
-    }
-
-    output[0] = SDL_CreateTextureFromSurface(renderer, original);
-    output[1] = SDL_CreateTextureFromSurface(renderer, converted);
-    output[2] = SDL_CreateTexture(renderer, yuv_format, SDL_TEXTUREACCESS_STREAMING, original->w, original->h);
-    if (!output[0] || !output[1] || !output[2]) {
-        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't set create texture: %s\n", SDL_GetError());
-        return 5;
-    }
-    SDL_UpdateTexture(output[2], NULL, raw_yuv, pitch);
-    
-    yuv_name = SDL_GetPixelFormatName(yuv_format);
-    if (SDL_strncmp(yuv_name, "SDL_PIXELFORMAT_", 16) == 0) {
-        yuv_name += 16;
-    }
-
-    switch (SDL_GetYUVConversionModeForResolution(original->w, original->h)) {
-    case SDL_YUV_CONVERSION_JPEG:
-        yuv_mode = "JPEG";
-        break;
-    case SDL_YUV_CONVERSION_BT601:
-        yuv_mode = "BT.601";
-        break;
-    case SDL_YUV_CONVERSION_BT709:
-        yuv_mode = "BT.709";
-        break;
-    default:
-        yuv_mode = "UNKNOWN";
-        break;
-    }
-
-    { int done = 0;
-        while ( !done )
-        {
-            SDL_Event event;
-            while (SDL_PollEvent(&event) > 0) {
-                if (event.type == SDL_QUIT) {
-                    done = 1;
-                }
-                if (event.type == SDL_KEYDOWN) {
-                    if (event.key.keysym.sym == SDLK_ESCAPE) {
-                        done = 1;
-                    } else if (event.key.keysym.sym == SDLK_LEFT) {
-                        --current;
-                    } else if (event.key.keysym.sym == SDLK_RIGHT) {
-                        ++current;
-                    }
-                }
-                if (event.type == SDL_MOUSEBUTTONDOWN) {
-                    if (event.button.x < (original->w/2)) {
-                        --current;
-                    } else {
-                        ++current;
-                    }
-                }
-            }
-
-            /* Handle wrapping */
-            if (current < 0) {
-                current += SDL_arraysize(output);
-            }
-            if (current >= SDL_arraysize(output)) {
-                current -= SDL_arraysize(output);
-            }
-
-            SDL_RenderClear(renderer);
-            SDL_RenderCopy(renderer, output[current], NULL, NULL);
-            SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
-            if (current == 0) {
-                SDLTest_DrawString(renderer, 4, 4, titles[current]);
-            } else {
-                SDL_snprintf(title, sizeof(title), "%s %s %s", titles[current], yuv_name, yuv_mode);
-                SDLTest_DrawString(renderer, 4, 4, title);
-            }
-            SDL_RenderPresent(renderer);
-            SDL_Delay(10);
-        }
-    }
-    SDL_Quit();
-    return 0;
-}
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/libs/SDL2/test/testyuv_cvt.c b/libs/SDL2/test/testyuv_cvt.c
deleted file mode 100644
index 553a3fa18..000000000
--- a/libs/SDL2/test/testyuv_cvt.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
-  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely.
-*/
-
-#include "SDL.h"
-
-#include "testyuv_cvt.h"
-
-
-static float clip3(float x, float y, float z)
-{
-    return ((z < x) ? x : ((z > y) ? y : z));
-}
-
-static void RGBtoYUV(Uint8 * rgb, int *yuv, SDL_YUV_CONVERSION_MODE mode, int monochrome, int luminance)
-{
-    if (mode == SDL_YUV_CONVERSION_JPEG) {
-        /* Full range YUV */
-        yuv[0] = (int)(0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]);
-        yuv[1] = (int)((rgb[2] - yuv[0]) * 0.565 + 128);
-        yuv[2] = (int)((rgb[0] - yuv[0]) * 0.713 + 128);
-    } else {
-        // This formula is from Microsoft's documentation:
-        // https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx
-        // L = Kr * R + Kb * B + (1 - Kr - Kb) * G
-        // Y =                   floor(2^(M-8) * (219*(L-Z)/S + 16) + 0.5);
-        // U = clip3(0, (2^M)-1, floor(2^(M-8) * (112*(B-L) / ((1-Kb)*S) + 128) + 0.5));
-        // V = clip3(0, (2^M)-1, floor(2^(M-8) * (112*(R-L) / ((1-Kr)*S) + 128) + 0.5));
-        float S, Z, R, G, B, L, Kr, Kb, Y, U, V;
-
-        if (mode == SDL_YUV_CONVERSION_BT709) {
-            /* BT.709 */
-            Kr = 0.2126f;
-            Kb = 0.0722f;
-        } else {
-            /* BT.601 */
-            Kr = 0.299f;
-            Kb = 0.114f;
-        }
-
-        S = 255.0f;
-        Z = 0.0f;
-        R = rgb[0];
-        G = rgb[1];
-        B = rgb[2];
-        L = Kr * R + Kb * B + (1 - Kr - Kb) * G;
-        Y = (Uint8)SDL_floorf((219*(L-Z)/S + 16) + 0.5f);
-        U = (Uint8)clip3(0, 255, SDL_floorf((112.0f*(B-L) / ((1.0f-Kb)*S) + 128) + 0.5f));
-        V = (Uint8)clip3(0, 255, SDL_floorf((112.0f*(R-L) / ((1.0f-Kr)*S) + 128) + 0.5f));
-
-        yuv[0] = (Uint8)Y;
-        yuv[1] = (Uint8)U;
-        yuv[2] = (Uint8)V;
-    }
-
-    if (monochrome) {
-        yuv[1] = 128;
-        yuv[2] = 128;
-    }
-
-    if (luminance != 100) {
-        yuv[0] = yuv[0] * luminance / 100;
-        if (yuv[0] > 255)
-            yuv[0] = 255;
-    }
-}
-
-static void ConvertRGBtoPlanar2x2(Uint32 format, Uint8 *src, int pitch, Uint8 *out, int w, int h, SDL_YUV_CONVERSION_MODE mode, int monochrome, int luminance)
-{
-    int x, y;
-    int yuv[4][3];
-    Uint8 *Y1, *Y2, *U, *V;
-    Uint8 *rgb1, *rgb2;
-    int rgb_row_advance = (pitch - w*3) + pitch;
-    int UV_advance;
-
-    rgb1 = src;
-    rgb2 = src + pitch;
-
-    Y1 = out;
-    Y2 = Y1 + w;
-    switch (format) {
-    case SDL_PIXELFORMAT_YV12:
-        V = (Y1 + h * w);
-        U = V + ((h + 1)/2)*((w + 1)/2);
-        UV_advance = 1;
-        break;
-    case SDL_PIXELFORMAT_IYUV:
-        U = (Y1 + h * w);
-        V = U + ((h + 1)/2)*((w + 1)/2);
-        UV_advance = 1;
-        break;
-    case SDL_PIXELFORMAT_NV12:
-        U = (Y1 + h * w);
-        V = U + 1;
-        UV_advance = 2;
-        break;
-    case SDL_PIXELFORMAT_NV21:
-        V = (Y1 + h * w);
-        U = V + 1;
-        UV_advance = 2;
-        break;
-    default:
-        SDL_assert(!"Unsupported planar YUV format");
-        return;
-    }
-
-    for (y = 0; y < (h - 1); y += 2) {
-        for (x = 0; x < (w - 1); x += 2) {
-            RGBtoYUV(rgb1, yuv[0], mode, monochrome, luminance);
-            rgb1 += 3;
-            *Y1++ = (Uint8)yuv[0][0];
-
-            RGBtoYUV(rgb1, yuv[1], mode, monochrome, luminance);
-            rgb1 += 3;
-            *Y1++ = (Uint8)yuv[1][0];
-
-            RGBtoYUV(rgb2, yuv[2], mode, monochrome, luminance);
-            rgb2 += 3;
-            *Y2++ = (Uint8)yuv[2][0];
-
-            RGBtoYUV(rgb2, yuv[3], mode, monochrome, luminance);
-            rgb2 += 3;
-            *Y2++ = (Uint8)yuv[3][0];
-
-            *U = (Uint8)SDL_floorf((yuv[0][1] + yuv[1][1] + yuv[2][1] + yuv[3][1])/4.0f + 0.5f);
-            U += UV_advance;
-
-            *V = (Uint8)SDL_floorf((yuv[0][2] + yuv[1][2] + yuv[2][2] + yuv[3][2])/4.0f + 0.5f);
-            V += UV_advance;
-        }
-        /* Last column */
-        if (x == (w - 1)) {
-            RGBtoYUV(rgb1, yuv[0], mode, monochrome, luminance);
-            rgb1 += 3;
-            *Y1++ = (Uint8)yuv[0][0];
-
-            RGBtoYUV(rgb2, yuv[2], mode, monochrome, luminance);
-            rgb2 += 3;
-            *Y2++ = (Uint8)yuv[2][0];
-
-            *U = (Uint8)SDL_floorf((yuv[0][1] + yuv[2][1])/2.0f + 0.5f);
-            U += UV_advance;
-
-            *V = (Uint8)SDL_floorf((yuv[0][2] + yuv[2][2])/2.0f + 0.5f);
-            V += UV_advance;
-        }
-        Y1 += w;
-        Y2 += w;
-        rgb1 += rgb_row_advance;
-        rgb2 += rgb_row_advance;
-    }
-    /* Last row */
-    if (y == (h - 1)) {
-        for (x = 0; x < (w - 1); x += 2) {
-            RGBtoYUV(rgb1, yuv[0], mode, monochrome, luminance);
-            rgb1 += 3;
-            *Y1++ = (Uint8)yuv[0][0];
-
-            RGBtoYUV(rgb1, yuv[1], mode, monochrome, luminance);
-            rgb1 += 3;
-            *Y1++ = (Uint8)yuv[1][0];
-
-            *U = (Uint8)SDL_floorf((yuv[0][1] + yuv[1][1])/2.0f + 0.5f);
-            U += UV_advance;
-
-            *V = (Uint8)SDL_floorf((yuv[0][2] + yuv[1][2])/2.0f + 0.5f);
-            V += UV_advance;
-        }
-        /* Last column */
-        if (x == (w - 1)) {
-            RGBtoYUV(rgb1, yuv[0], mode, monochrome, luminance);
-            *Y1++ = (Uint8)yuv[0][0];
-
-            *U = (Uint8)yuv[0][1];
-            U += UV_advance;
-
-            *V = (Uint8)yuv[0][2];
-            V += UV_advance;
-        }
-    }
-}
-
-static void ConvertRGBtoPacked4(Uint32 format, Uint8 *src, int pitch, Uint8 *out, int w, int h, SDL_YUV_CONVERSION_MODE mode, int monochrome, int luminance)
-{
-    int x, y;
-    int yuv[2][3];
-    Uint8 *Y1, *Y2, *U, *V;
-    Uint8 *rgb;
-    int rgb_row_advance = (pitch - w*3);
-
-    rgb = src;
-
-    switch (format) {
-    case SDL_PIXELFORMAT_YUY2:
-        Y1 = out;
-        U = out+1;
-        Y2 = out+2;
-        V = out+3;
-        break;
-    case SDL_PIXELFORMAT_UYVY:
-        U = out;
-        Y1 = out+1;
-        V = out+2;
-        Y2 = out+3;
-        break;
-    case SDL_PIXELFORMAT_YVYU:
-        Y1 = out;
-        V = out+1;
-        Y2 = out+2;
-        U = out+3;
-        break;
-    default:
-        SDL_assert(!"Unsupported packed YUV format");
-        return;
-    }
-
-    for (y = 0; y < h; ++y) {
-        for (x = 0; x < (w - 1); x += 2) {
-            RGBtoYUV(rgb, yuv[0], mode, monochrome, luminance);
-            rgb += 3;
-            *Y1 = (Uint8)yuv[0][0];
-            Y1 += 4;
-
-            RGBtoYUV(rgb, yuv[1], mode, monochrome, luminance);
-            rgb += 3;
-            *Y2 = (Uint8)yuv[1][0];
-            Y2 += 4;
-
-            *U = (Uint8)SDL_floorf((yuv[0][1] + yuv[1][1])/2.0f + 0.5f);
-            U += 4;
-
-            *V = (Uint8)SDL_floorf((yuv[0][2] + yuv[1][2])/2.0f + 0.5f);
-            V += 4;
-        }
-        /* Last column */
-        if (x == (w - 1)) {
-            RGBtoYUV(rgb, yuv[0], mode, monochrome, luminance);
-            rgb += 3;
-            *Y2 = *Y1 = (Uint8)yuv[0][0];
-            Y1 += 4;
-            Y2 += 4;
-
-            *U = (Uint8)yuv[0][1];
-            U += 4;
-
-            *V = (Uint8)yuv[0][2];
-            V += 4;
-        }
-        rgb += rgb_row_advance;
-    }
-}
-
-SDL_bool ConvertRGBtoYUV(Uint32 format, Uint8 *src, int pitch, Uint8 *out, int w, int h, SDL_YUV_CONVERSION_MODE mode, int monochrome, int luminance)
-{
-    switch (format)
-    {
-    case SDL_PIXELFORMAT_YV12:
-    case SDL_PIXELFORMAT_IYUV:
-    case SDL_PIXELFORMAT_NV12:
-    case SDL_PIXELFORMAT_NV21:
-        ConvertRGBtoPlanar2x2(format, src, pitch, out, w, h, mode, monochrome, luminance);
-        return SDL_TRUE;
-    case SDL_PIXELFORMAT_YUY2:
-    case SDL_PIXELFORMAT_UYVY:
-    case SDL_PIXELFORMAT_YVYU:
-        ConvertRGBtoPacked4(format, src, pitch, out, w, h, mode, monochrome, luminance);
-        return SDL_TRUE;
-    default:
-        return SDL_FALSE;
-    }
-}
-
-int CalculateYUVPitch(Uint32 format, int width)
-{
-    switch (format)
-    {
-    case SDL_PIXELFORMAT_YV12:
-    case SDL_PIXELFORMAT_IYUV:
-    case SDL_PIXELFORMAT_NV12:
-    case SDL_PIXELFORMAT_NV21:
-        return width;
-    case SDL_PIXELFORMAT_YUY2:
-    case SDL_PIXELFORMAT_UYVY:
-    case SDL_PIXELFORMAT_YVYU:
-        return 4*((width + 1)/2);
-    default:
-        return 0;
-    }
-}
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/libs/SDL2/test/testyuv_cvt.h b/libs/SDL2/test/testyuv_cvt.h
deleted file mode 100644
index bd845878f..000000000
--- a/libs/SDL2/test/testyuv_cvt.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely.
-*/
-
-/* These functions are designed for testing correctness, not for speed */
-
-extern SDL_bool ConvertRGBtoYUV(Uint32 format, Uint8 *src, int pitch, Uint8 *out, int w, int h, SDL_YUV_CONVERSION_MODE mode, int monochrome, int luminance);
-extern int CalculateYUVPitch(Uint32 format, int width);