1
0
Fork 0

Merge pull request #114180 from BastiaanOlij/fix_pcvr_msaa2d

Skip MSAA2D when OpenXR is used
This commit is contained in:
Rémi Verschelde 2025-12-21 10:41:12 +01:00
commit 93737b0d95
No known key found for this signature in database
GPG Key ID: C3336907360768E1
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);
}
}