Просмотр исходного кода

Bugfix: Properly transition Vulkan images to a read-only layout if they were bound as a shader attachment in a previous render pass

BearishSun 8 лет назад
Родитель
Сommit
0f50d4e94e
1 измененных файлов с 9 добавлено и 1 удалено
  1. 9 1
      Source/BansheeVulkanRenderAPI/BsVulkanCommandBuffer.cpp

+ 9 - 1
Source/BansheeVulkanRenderAPI/BsVulkanCommandBuffer.cpp

@@ -2217,7 +2217,15 @@ namespace bs { namespace ct
 						resetRenderPass = true;
 				}
 				else
-					resetRenderPass = false;
+				{
+					// Subresource has been bound as shader input, and it wasn't bound as a FB attachment this render pass.
+					// However is could have been bound in a previous pass, so check the layouts and force a layout
+					// transition if required.
+					if (subresourceInfo.currentLayout != subresourceInfo.requiredLayout)
+						resetRenderPass = true;
+					else
+						resetRenderPass = false;
+				}
 			}
 		}