Avoid reading from sky pointer when rendering background without sky
(cherry picked from commit da7540f3f19ad7c05acd5f3632ed349a0db75032)
This commit is contained in:
@@ -1500,13 +1500,15 @@ void SkyRD::draw_sky(RD::DrawListID p_draw_list, Ref<RenderSceneBuffersRD> p_ren
|
|||||||
PipelineCacheRD *pipeline = &shader_data->pipelines[sky_scene_state.view_count > 1 ? SKY_VERSION_BACKGROUND_MULTIVIEW : SKY_VERSION_BACKGROUND];
|
PipelineCacheRD *pipeline = &shader_data->pipelines[sky_scene_state.view_count > 1 ? SKY_VERSION_BACKGROUND_MULTIVIEW : SKY_VERSION_BACKGROUND];
|
||||||
|
|
||||||
RID texture_uniform_set;
|
RID texture_uniform_set;
|
||||||
|
float border_size = 0.0;
|
||||||
if (sky) {
|
if (sky) {
|
||||||
texture_uniform_set = sky->get_textures(SKY_TEXTURE_SET_BACKGROUND, sky_shader.default_shader_rd, p_render_buffers);
|
texture_uniform_set = sky->get_textures(SKY_TEXTURE_SET_BACKGROUND, sky_shader.default_shader_rd, p_render_buffers);
|
||||||
|
border_size = sky->uv_border_size;
|
||||||
} else {
|
} else {
|
||||||
texture_uniform_set = sky_scene_state.fog_only_texture_uniform_set;
|
texture_uniform_set = sky_scene_state.fog_only_texture_uniform_set;
|
||||||
}
|
}
|
||||||
|
|
||||||
_render_sky(p_draw_list, p_time, p_fb, pipeline, material->uniform_set, texture_uniform_set, projection, sky_transform, sky_scene_state.cam_transform.origin, p_luminance_multiplier, p_brightness_multiplier, sky->uv_border_size);
|
_render_sky(p_draw_list, p_time, p_fb, pipeline, material->uniform_set, texture_uniform_set, projection, sky_transform, sky_scene_state.cam_transform.origin, p_luminance_multiplier, p_brightness_multiplier, border_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkyRD::invalidate_sky(Sky *p_sky) {
|
void SkyRD::invalidate_sky(Sky *p_sky) {
|
||||||
|
|||||||
Reference in New Issue
Block a user