mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Merge pull request #110627 from clayjohn/RD-intel-mac-sky-check
Move check for sky cubemap array back into the SkyRD initializer
This commit is contained in:
commit
62273fa10b
3 changed files with 7 additions and 17 deletions
|
@ -727,6 +727,12 @@ SkyRD::SkyRD() {
|
||||||
roughness_layers = GLOBAL_GET("rendering/reflections/sky_reflections/roughness_layers");
|
roughness_layers = GLOBAL_GET("rendering/reflections/sky_reflections/roughness_layers");
|
||||||
sky_ggx_samples_quality = GLOBAL_GET("rendering/reflections/sky_reflections/ggx_samples");
|
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");
|
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() {
|
void SkyRD::init() {
|
||||||
|
@ -952,15 +958,6 @@ void SkyRD::set_texture_format(RD::DataFormat p_texture_format) {
|
||||||
texture_format = 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() {
|
SkyRD::~SkyRD() {
|
||||||
// cleanup anything created in init...
|
// cleanup anything created in init...
|
||||||
RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton();
|
RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton();
|
||||||
|
|
|
@ -281,9 +281,7 @@ public:
|
||||||
|
|
||||||
uint32_t sky_ggx_samples_quality;
|
uint32_t sky_ggx_samples_quality;
|
||||||
bool sky_use_cubemap_array;
|
bool sky_use_cubemap_array;
|
||||||
#if defined(MACOS_ENABLED) && defined(__x86_64__)
|
|
||||||
void check_cubemap_array();
|
|
||||||
#endif
|
|
||||||
Sky *dirty_sky_list = nullptr;
|
Sky *dirty_sky_list = nullptr;
|
||||||
mutable RID_Owner<Sky, true> sky_owner;
|
mutable RID_Owner<Sky, true> sky_owner;
|
||||||
int roughness_layers;
|
int roughness_layers;
|
||||||
|
|
|
@ -159,11 +159,6 @@ void RendererCompositorRD::initialize() {
|
||||||
|
|
||||||
blit.sampler = RD::get_singleton()->sampler_create(RD::SamplerState());
|
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;
|
uint64_t RendererCompositorRD::frame = 1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue