From 0a64abe891a3c0d1379c2c23c0f968dba643a324 Mon Sep 17 00:00:00 2001 From: univeous Date: Sun, 16 Jul 2023 10:19:11 +0900 Subject: [PATCH] Fix crash when calling get_video_adapter_* in a thread co-authored-by: Clay John --- .../rendering/rendering_server_default.cpp | 12 ------- servers/rendering/rendering_server_default.h | 31 ++++++++++--------- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 65bdb94c9f61..ff6bf3a6ba7e 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -258,22 +258,10 @@ uint64_t RenderingServerDefault::get_rendering_info(RenderingInfo p_info) { return RSG::utilities->get_rendering_info(p_info); } -String RenderingServerDefault::get_video_adapter_name() const { - return RSG::utilities->get_video_adapter_name(); -} - -String RenderingServerDefault::get_video_adapter_vendor() const { - return RSG::utilities->get_video_adapter_vendor(); -} - RenderingDevice::DeviceType RenderingServerDefault::get_video_adapter_type() const { return RSG::utilities->get_video_adapter_type(); } -String RenderingServerDefault::get_video_adapter_api_version() const { - return RSG::utilities->get_video_adapter_api_version(); -} - void RenderingServerDefault::set_frame_profiling_enabled(bool p_enable) { RSG::utilities->capturing_timestamps = p_enable; } diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 797fe73ba037..340eb7394b21 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -945,10 +945,27 @@ class RenderingServerDefault : public RenderingServer { FUNC0(global_shader_parameters_clear) #undef server_name +#undef ServerName + /* STATUS INFORMATION */ +#define ServerName RendererUtilities +#define server_name RSG::utilities + FUNC0RC(String, get_video_adapter_name) + FUNC0RC(String, get_video_adapter_vendor) + FUNC0RC(String, get_video_adapter_api_version) +#undef server_name #undef ServerName #undef WRITE_ACTION #undef SYNC_DEBUG + virtual uint64_t get_rendering_info(RenderingInfo p_info) override; + virtual RenderingDevice::DeviceType get_video_adapter_type() const override; + + virtual void set_frame_profiling_enabled(bool p_enable) override; + virtual Vector get_frame_profile() override; + virtual uint64_t get_frame_profile_frame() override; + + virtual RID get_test_cube() override; + /* FREE */ virtual void free(RID p_rid) override { @@ -970,20 +987,6 @@ class RenderingServerDefault : public RenderingServer { virtual void init() override; virtual void finish() override; - /* STATUS INFORMATION */ - - virtual uint64_t get_rendering_info(RenderingInfo p_info) override; - virtual String get_video_adapter_name() const override; - virtual String get_video_adapter_vendor() const override; - virtual RenderingDevice::DeviceType get_video_adapter_type() const override; - virtual String get_video_adapter_api_version() const override; - - virtual void set_frame_profiling_enabled(bool p_enable) override; - virtual Vector get_frame_profile() override; - virtual uint64_t get_frame_profile_frame() override; - - virtual RID get_test_cube() override; - /* TESTING */ virtual double get_frame_setup_time_cpu() const override;