From 7d186f7d2c7c63b137fd76159e78f414f1b3a8fb Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 20 Jan 2019 20:06:14 +0100 Subject: [PATCH] Revert PR #8043 --- configuration.c | 2 +- gfx/drivers/d3d10.c | 2 +- gfx/drivers/d3d11.c | 2 +- gfx/drivers/d3d12.c | 2 +- gfx/drivers/d3d8.c | 2 +- gfx/drivers/d3d9.c | 2 +- gfx/drivers/gdi_gfx.c | 2 +- gfx/drivers/gl.c | 35 +++++++---------------------------- gfx/drivers/vulkan.c | 2 +- gfx/video_driver.c | 6 +----- gfx/video_driver.h | 2 +- gfx/video_thread_wrapper.c | 4 ++-- menu/menu_setting.c | 2 +- 13 files changed, 20 insertions(+), 45 deletions(-) diff --git a/configuration.c b/configuration.c index 9880f7cf44..3eff180dd7 100644 --- a/configuration.c +++ b/configuration.c @@ -1378,7 +1378,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, SETTING_BOOL("video_scale_integer", &settings->bools.video_scale_integer, true, scale_integer, false); SETTING_BOOL("video_smooth", &settings->bools.video_smooth, true, video_smooth, false); SETTING_BOOL("video_force_aspect", &settings->bools.video_force_aspect, true, force_aspect, false); - SETTING_BOOL("video_threaded", &settings->bools.video_threaded, true, video_threaded, false); + SETTING_BOOL("video_threaded", video_driver_get_threaded(), true, video_threaded, false); SETTING_BOOL("video_shared_context", &settings->bools.video_shared_context, true, video_shared_context, false); SETTING_BOOL("auto_screenshot_filename", &settings->bools.auto_screenshot_filename, true, auto_screenshot_filename, false); SETTING_BOOL("video_force_srgb_disable", &settings->bools.video_force_srgb_disable, true, false, false); diff --git a/gfx/drivers/d3d10.c b/gfx/drivers/d3d10.c index a465b9a754..b5dc33d0e3 100644 --- a/gfx/drivers/d3d10.c +++ b/gfx/drivers/d3d10.c @@ -1580,7 +1580,7 @@ static uintptr_t d3d10_gfx_load_texture( return (uintptr_t)texture; } -static void d3d10_gfx_unload_texture(void* data, uintptr_t handle, bool threaded) +static void d3d10_gfx_unload_texture(void* data, uintptr_t handle) { d3d10_texture_t* texture = (d3d10_texture_t*)handle; diff --git a/gfx/drivers/d3d11.c b/gfx/drivers/d3d11.c index f01a09eead..6e0850b712 100644 --- a/gfx/drivers/d3d11.c +++ b/gfx/drivers/d3d11.c @@ -1640,7 +1640,7 @@ static uintptr_t d3d11_gfx_load_texture( return (uintptr_t)texture; } -static void d3d11_gfx_unload_texture(void* data, uintptr_t handle, bool threaded) +static void d3d11_gfx_unload_texture(void* data, uintptr_t handle) { d3d11_texture_t* texture = (d3d11_texture_t*)handle; diff --git a/gfx/drivers/d3d12.c b/gfx/drivers/d3d12.c index 658dcaaff9..2251a428d4 100644 --- a/gfx/drivers/d3d12.c +++ b/gfx/drivers/d3d12.c @@ -1759,7 +1759,7 @@ static uintptr_t d3d12_gfx_load_texture( return (uintptr_t)texture; } -static void d3d12_gfx_unload_texture(void* data, uintptr_t handle, bool threaded) +static void d3d12_gfx_unload_texture(void* data, uintptr_t handle) { d3d12_texture_t* texture = (d3d12_texture_t*)handle; diff --git a/gfx/drivers/d3d8.c b/gfx/drivers/d3d8.c index 33c0bd8023..21830cd500 100644 --- a/gfx/drivers/d3d8.c +++ b/gfx/drivers/d3d8.c @@ -1818,7 +1818,7 @@ static uintptr_t d3d8_load_texture(void *video_data, void *data, return id; } -static void d3d8_unload_texture(void *data, uintptr_t id, bool threaded) +static void d3d8_unload_texture(void *data, uintptr_t id) { LPDIRECT3DTEXTURE8 texid; if (!id) diff --git a/gfx/drivers/d3d9.c b/gfx/drivers/d3d9.c index b19a0b1b19..2d5af2a9d1 100644 --- a/gfx/drivers/d3d9.c +++ b/gfx/drivers/d3d9.c @@ -1989,7 +1989,7 @@ static uintptr_t d3d9_load_texture(void *video_data, void *data, return id; } -static void d3d9_unload_texture(void *data, uintptr_t id, bool threaded) +static void d3d9_unload_texture(void *data, uintptr_t id) { LPDIRECT3DTEXTURE9 texid; if (!id) diff --git a/gfx/drivers/gdi_gfx.c b/gfx/drivers/gdi_gfx.c index 70d4f8e31c..034a6db400 100644 --- a/gfx/drivers/gdi_gfx.c +++ b/gfx/drivers/gdi_gfx.c @@ -610,7 +610,7 @@ static uintptr_t gdi_load_texture(void *video_data, void *data, return (uintptr_t)texture; } -static void gdi_unload_texture(void *data, uintptr_t handle, bool threaded) +static void gdi_unload_texture(void *data, uintptr_t handle) { struct gdi_texture *texture = (struct gdi_texture*)handle; diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index a7abdfecca..c37dfe8819 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -2496,12 +2496,6 @@ static void video_texture_load_gl( ); } -static void video_texture_unload_gl( - uintptr_t *id) -{ - glDeleteTextures(1, (GLuint*)id); -} - #ifdef HAVE_THREADS static int video_texture_load_wrap_gl_mipmap(void *data) { @@ -2524,20 +2518,13 @@ static int video_texture_load_wrap_gl(void *data) TEXTURE_FILTER_LINEAR, &id); return (int)id; } - -static int video_texture_unload_wrap_gl(void *data) -{ - if (!data) - return 0; - video_texture_unload_gl((uintptr_t*)data); - return 0; -} #endif static uintptr_t gl_load_texture(void *video_data, void *data, bool threaded, enum texture_filter_type filter_type) { uintptr_t id = 0; + #ifdef HAVE_THREADS if (threaded) { @@ -2552,8 +2539,7 @@ static uintptr_t gl_load_texture(void *video_data, void *data, default: break; } - id=video_thread_texture_load(data, func); - return id; + return video_thread_texture_load(data, func); } #endif @@ -2561,21 +2547,14 @@ static uintptr_t gl_load_texture(void *video_data, void *data, return id; } -static void gl_unload_texture(void *video_data, uintptr_t data, bool threaded) +static void gl_unload_texture(void *data, uintptr_t id) { - if (!data) + GLuint glid; + if (!id) return; -#ifdef HAVE_THREADS - if (threaded) - { - custom_command_method_t func = video_texture_unload_wrap_gl; - video_thread_texture_load((void *)&data, func); - return; - } -#endif - - video_texture_unload_gl(&data); + glid = (GLuint)id; + glDeleteTextures(1, &glid); } static void gl_set_coords(void *handle_data, void *shader_data, diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index 2408f2f9d1..483ee8ae09 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -2334,7 +2334,7 @@ static uintptr_t vulkan_load_texture(void *video_data, void *data, return (uintptr_t)texture; } -static void vulkan_unload_texture(void *data, uintptr_t handle, bool threaded) +static void vulkan_unload_texture(void *data, uintptr_t handle) { vk_t *vk = (vk_t*)data; struct vk_texture *texture = (struct vk_texture*)handle; diff --git a/gfx/video_driver.c b/gfx/video_driver.c index f3d9cc119b..3d29a3c182 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -147,7 +147,6 @@ static bool video_driver_crt_switching_active = false; static struct retro_system_av_info video_driver_av_info; - static enum retro_pixel_format video_driver_pix_fmt = RETRO_PIXEL_FORMAT_0RGB1555; static const void *frame_cache_data = NULL; @@ -1051,9 +1050,6 @@ static bool video_driver_init_internal(bool *video_is_threaded) video_driver_find_driver(); #ifdef HAVE_THREADS - /* Set the driver to threaded based on the settings configuration */ - video_driver_threaded = settings->bools.video_threaded; - /* Check video_driver_threaded and video_driver_hw-context to determine if the video driver is threaded */ video.is_threaded = video_driver_is_threaded_internal(); *video_is_threaded = video.is_threaded; @@ -2729,7 +2725,7 @@ bool video_driver_texture_unload(uintptr_t *id) if (!video_driver_poke || !video_driver_poke->unload_texture) return false; - video_driver_poke->unload_texture(video_driver_data, *id, video_driver_is_threaded_internal()); + video_driver_poke->unload_texture(video_driver_data, *id); *id = 0; return true; } diff --git a/gfx/video_driver.h b/gfx/video_driver.h index 905fef9817..eea9ef14e4 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -710,7 +710,7 @@ typedef struct video_poke_interface const void *mat_data); uintptr_t (*load_texture)(void *video_data, void *data, bool threaded, enum texture_filter_type filter_type); - void (*unload_texture)(void *data, uintptr_t id, bool threaded); + void (*unload_texture)(void *data, uintptr_t id); void (*set_video_mode)(void *data, unsigned width, unsigned height, bool fullscreen); float (*get_refresh_rate)(void *data); diff --git a/gfx/video_thread_wrapper.c b/gfx/video_thread_wrapper.c index f29099c80f..1093deae0a 100644 --- a/gfx/video_thread_wrapper.c +++ b/gfx/video_thread_wrapper.c @@ -1198,7 +1198,7 @@ static uintptr_t thread_load_texture(void *video_data, void *data, return thr->poke->load_texture(thr->driver_data, data, threaded, filter_type); } -static void thread_unload_texture(void *video_data, uintptr_t id, bool threaded) +static void thread_unload_texture(void *video_data, uintptr_t id) { thread_video_t *thr = (thread_video_t*)video_data; @@ -1206,7 +1206,7 @@ static void thread_unload_texture(void *video_data, uintptr_t id, bool threaded) return; if (thr->poke && thr->poke->unload_texture) - thr->poke->unload_texture(thr->driver_data, id, threaded); + thr->poke->unload_texture(thr->driver_data, id); } static void thread_apply_state_changes(void *data) diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 622ffc6b96..d3c6cbf54c 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5850,7 +5850,7 @@ static bool setting_append_list( #if defined(HAVE_THREADS) CONFIG_BOOL( list, list_info, - &settings->bools.video_threaded, + video_driver_get_threaded(), MENU_ENUM_LABEL_VIDEO_THREADED, MENU_ENUM_LABEL_VALUE_VIDEO_THREADED, video_threaded,