1
0
Fork 0

Skip MSAA2D when OpenXR is used

This commit is contained in:
Bastiaan Olij 2025-12-19 15:43:34 +11:00
parent 64cb7e721c
commit f270f0a5bd
1 changed files with 8 additions and 4 deletions

View File

@ -3493,12 +3493,16 @@ void TextureStorage::update_decal_buffer(const PagedArray<RID> &p_decals, const
/* RENDER TARGET API */
RID TextureStorage::RenderTarget::get_framebuffer() {
// Note that if we're using an overridden color buffer, we're likely cycling through a texture chain.
// this is where our framebuffer cache comes in clutch..
// We can't resolve into our overridden buffer as it won't be marked as a resolve buffer.
// This is only applicable when OpenXR is used and 2D rendering is skipped.
if (msaa != RS::VIEWPORT_MSAA_DISABLED) {
return FramebufferCacheRD::get_singleton()->get_cache_multiview(view_count, color_multisample, overridden.color.is_valid() ? overridden.color : color);
if (msaa != RS::VIEWPORT_MSAA_DISABLED && overridden.color.is_null()) {
// Render into our MSAA buffer and resolve into our color buffer.
return FramebufferCacheRD::get_singleton()->get_cache_multiview(view_count, color_multisample, color);
} else {
// Note that if we're using an overridden color buffer, we're likely cycling through a texture chain.
// this is where our framebuffer cache comes in clutch..
return FramebufferCacheRD::get_singleton()->get_cache_multiview(view_count, overridden.color.is_valid() ? overridden.color : color);
}
}