From b7498aeb5d21c8a0eaba87548864a27a3a17412d Mon Sep 17 00:00:00 2001 From: "Matias N. Goldberg" Date: Sat, 16 Sep 2023 19:25:44 -0300 Subject: [PATCH] Fix massive validation errors when enabling TAA + MSAA TAA + MSAA would make Godot request unnecessary flags for an MSAA velocity texture. flags that were not even actually needed. This was causing: 1. Unsupported GPUs to fail completely (e.g. Intel Arc 770) 2. Wrong codepaths to be followed (causing validation errors, possibly crashes or glitches) 3. Unnecessary performance impact in all GPUs. See https://github.com/godotengine/godot/issues/71929#issuecomment-1722274359 (cherry picked from commit 4de0ed4adf6cad8722caf814c47a9c865078a2a0) --- .../renderer_rd/storage_rd/render_scene_buffers_rd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp index 609fb2afe74..eac90773556 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp @@ -532,7 +532,7 @@ void RenderSceneBuffersRD::ensure_velocity() { uint32_t usage_bits = RD::TEXTURE_USAGE_COLOR_ATTACHMENT_BIT | RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT; if (msaa_3d != RS::VIEWPORT_MSAA_DISABLED) { - uint32_t msaa_usage_bits = usage_bits | RD::TEXTURE_USAGE_CAN_COPY_FROM_BIT; + uint32_t msaa_usage_bits = RD::TEXTURE_USAGE_COLOR_ATTACHMENT_BIT | RD::TEXTURE_USAGE_CAN_COPY_FROM_BIT; usage_bits |= RD::TEXTURE_USAGE_CAN_COPY_TO_BIT; const RD::TextureSamples ts[RS::VIEWPORT_MSAA_MAX] = {