diff --git a/src/swrenderer/drawers/r_thread.cpp b/src/swrenderer/drawers/r_thread.cpp index 1dea2b356..d629a23f2 100644 --- a/src/swrenderer/drawers/r_thread.cpp +++ b/src/swrenderer/drawers/r_thread.cpp @@ -114,7 +114,7 @@ void DrawerCommandQueue::Finish() // Do one thread ourselves: - DrawerThread thread; + static DrawerThread thread; thread.core = 0; thread.num_cores = (int)(queue->threads.size() + 1); diff --git a/src/swrenderer/drawers/r_thread.h b/src/swrenderer/drawers/r_thread.h index c3e818abb..38d803d4a 100644 --- a/src/swrenderer/drawers/r_thread.h +++ b/src/swrenderer/drawers/r_thread.h @@ -202,17 +202,7 @@ public: if (queue->threaded_render == 0 || !r_multithreaded) { T command(std::forward(args)...); - VectoredTryCatch(&command, - [](void *data) - { - T *c = (T*)data; - c->Execute(&Instance()->single_core_thread); - }, - [](void *data, const char *reason, bool fatal) - { - T *c = (T*)data; - ReportDrawerError(c, false, reason, fatal); - }); + command.Execute(&Instance()->single_core_thread); } else {