Merge pull request #23434 from vnen/visual-thread-fix

Fix initialization of visual server in all platforms
This commit is contained in:
Rémi Verschelde 2018-11-01 16:41:01 +01:00 committed by GitHub
commit 18d06b971b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 26 additions and 25 deletions

View file

@ -39,7 +39,7 @@
#include "file_access_android.h" #include "file_access_android.h"
#include "main/main.h" #include "main/main.h"
#include "servers/visual/visual_server_raster.h" #include "servers/visual/visual_server_raster.h"
//#include "servers/visual/visual_server_wrap_mt.h" #include "servers/visual/visual_server_wrap_mt.h"
#ifdef ANDROID_NATIVE_ACTIVITY #ifdef ANDROID_NATIVE_ACTIVITY
#include "dir_access_android.h" #include "dir_access_android.h"
@ -182,11 +182,12 @@ Error OS_Android::initialize(const VideoMode &p_desired, int p_video_driver, int
video_driver_index = p_video_driver; video_driver_index = p_video_driver;
visual_server = memnew(VisualServerRaster); if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
/* if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, false)); visual_server = memnew(VisualServerWrapMT(visual_server, false));
};*/ } else {
visual_server = memnew(VisualServerRaster);
}
visual_server->init(); visual_server->init();
// visual_server->cursor_set_visible(false, 0); // visual_server->cursor_set_visible(false, 0);

View file

@ -117,17 +117,16 @@ Error OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p
#endif #endif
visual_server = memnew(VisualServerRaster()); // FIXME: Reimplement threaded rendering? Or remove?
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, false));
} else {
visual_server = memnew(VisualServerRaster);
}
ERR_FAIL_COND_V(!visual_server, ERR_UNAVAILABLE); ERR_FAIL_COND_V(!visual_server, ERR_UNAVAILABLE);
// TODO: enable multithreaded VS
/*
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD));
}
*/
video_driver_index = p_video_driver; video_driver_index = p_video_driver;
input = memnew(InputDefault); input = memnew(InputDefault);

View file

@ -34,7 +34,7 @@
#include "drivers/gles3/rasterizer_gles3.h" #include "drivers/gles3/rasterizer_gles3.h"
#include "servers/visual/visual_server_raster.h" #include "servers/visual/visual_server_raster.h"
//#include "servers/visual/visual_server_wrap_mt.h" #include "servers/visual/visual_server_wrap_mt.h"
#include "main/main.h" #include "main/main.h"
@ -107,13 +107,12 @@ Error OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p
RasterizerGLES3::register_config(); RasterizerGLES3::register_config();
RasterizerGLES3::make_current(); RasterizerGLES3::make_current();
visual_server = memnew(VisualServerRaster()); // FIXME: Reimplement threaded rendering? Or remove?
/*
FIXME: Reimplement threaded rendering? Or remove?
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, false)); visual_server = memnew(VisualServerWrapMT(visual_server, false));
}; } else {
*/ visual_server = memnew(VisualServerRaster);
}
visual_server->init(); visual_server->init();
//visual_server->cursor_set_visible(false, 0); //visual_server->cursor_set_visible(false, 0);

View file

@ -1383,10 +1383,11 @@ Error OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_a
video_driver_index = p_video_driver; video_driver_index = p_video_driver;
visual_server = memnew(VisualServerRaster);
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD)); visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD));
} else {
visual_server = memnew(VisualServerRaster);
} }
visual_server->init(); visual_server->init();

View file

@ -294,14 +294,13 @@ Error OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
set_video_mode(vm); set_video_mode(vm);
visual_server = memnew(VisualServerRaster);
// FIXME: Reimplement threaded rendering? Or remove? // FIXME: Reimplement threaded rendering? Or remove?
/*
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD)); visual_server = memnew(VisualServerWrapMT(visual_server, false));
} else {
visual_server = memnew(VisualServerRaster);
} }
*/
visual_server->init(); visual_server->init();
input = memnew(InputDefault); input = memnew(InputDefault);

View file

@ -1332,10 +1332,11 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
gl_context->set_use_vsync(video_mode.use_vsync); gl_context->set_use_vsync(video_mode.use_vsync);
#endif #endif
visual_server = memnew(VisualServerRaster);
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD)); visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD));
} else {
visual_server = memnew(VisualServerRaster);
} }
/* /*

View file

@ -342,11 +342,12 @@ Error OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_a
context_gl->set_use_vsync(current_videomode.use_vsync); context_gl->set_use_vsync(current_videomode.use_vsync);
#endif #endif
visual_server = memnew(VisualServerRaster);
if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {
visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD)); visual_server = memnew(VisualServerWrapMT(visual_server, get_render_thread_mode() == RENDER_SEPARATE_THREAD));
} else {
visual_server = memnew(VisualServerRaster);
} }
if (current_videomode.maximized) { if (current_videomode.maximized) {
current_videomode.maximized = false; current_videomode.maximized = false;