diff --git a/servers/rendering/renderer_rd/environment/sky.cpp b/servers/rendering/renderer_rd/environment/sky.cpp index 268b11b9bfa..069c6f4f914 100644 --- a/servers/rendering/renderer_rd/environment/sky.cpp +++ b/servers/rendering/renderer_rd/environment/sky.cpp @@ -727,6 +727,12 @@ SkyRD::SkyRD() { roughness_layers = GLOBAL_GET("rendering/reflections/sky_reflections/roughness_layers"); sky_ggx_samples_quality = GLOBAL_GET("rendering/reflections/sky_reflections/ggx_samples"); sky_use_cubemap_array = GLOBAL_GET("rendering/reflections/sky_reflections/texture_array_reflections"); +#if defined(MACOS_ENABLED) && defined(__x86_64__) + if (OS::get_singleton()->get_current_rendering_driver_name() == "vulkan" && RenderingDevice::get_singleton()->get_device_name().contains("Intel")) { + // Disable texture array reflections on macOS on Intel GPUs due to driver bugs. + sky_use_cubemap_array = false; + } +#endif } void SkyRD::init() { @@ -952,15 +958,6 @@ void SkyRD::set_texture_format(RD::DataFormat p_texture_format) { texture_format = p_texture_format; } -#if defined(MACOS_ENABLED) && defined(__x86_64__) -void SkyRD::check_cubemap_array() { - if (OS::get_singleton()->get_current_rendering_driver_name() == "vulkan" && RenderingServer::get_singleton()->get_video_adapter_name().contains("Intel")) { - // Disable texture array reflections on macOS on Intel GPUs due to driver bugs. - sky_use_cubemap_array = false; - } -} -#endif - SkyRD::~SkyRD() { // cleanup anything created in init... RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton(); diff --git a/servers/rendering/renderer_rd/environment/sky.h b/servers/rendering/renderer_rd/environment/sky.h index 94566431389..6c5dcb11aad 100644 --- a/servers/rendering/renderer_rd/environment/sky.h +++ b/servers/rendering/renderer_rd/environment/sky.h @@ -281,9 +281,7 @@ public: uint32_t sky_ggx_samples_quality; bool sky_use_cubemap_array; -#if defined(MACOS_ENABLED) && defined(__x86_64__) - void check_cubemap_array(); -#endif + Sky *dirty_sky_list = nullptr; mutable RID_Owner sky_owner; int roughness_layers; diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp index 8642d71789c..385122decac 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp @@ -159,11 +159,6 @@ void RendererCompositorRD::initialize() { blit.sampler = RD::get_singleton()->sampler_create(RD::SamplerState()); } -#if defined(MACOS_ENABLED) && defined(__x86_64__) - if (scene) { - scene->get_sky()->check_cubemap_array(); - } -#endif } uint64_t RendererCompositorRD::frame = 1;