Move check for sky cubemap array back into the SkyRD initializer so it is set before being used.

Previously it was moved out of this function becuase we relied on RenderingServer::get_video_adapter_name which wasn't available yet.

However, that was unnecessary since it is just a wrapper around RenderingDevice::get_device_name() which is available.
This commit is contained in:
clayjohn 2025-09-17 11:30:35 -07:00
parent adb2ec043e
commit fc951855ed
3 changed files with 7 additions and 17 deletions

View file

@ -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();

View file

@ -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, true> sky_owner;
int roughness_layers;

View file

@ -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;