From ab16cbe29859057e7d4e80cde5393e231778c259 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Fri, 24 Apr 2020 13:08:22 +0200 Subject: [PATCH] Fix missing texture update --- src/rendering/polyrenderer/backend/poly_renderstate.cpp | 2 ++ src/rendering/vulkan/renderer/vk_renderstate.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/rendering/polyrenderer/backend/poly_renderstate.cpp b/src/rendering/polyrenderer/backend/poly_renderstate.cpp index f81587a5a..5b56af5c1 100644 --- a/src/rendering/polyrenderer/backend/poly_renderstate.cpp +++ b/src/rendering/polyrenderer/backend/poly_renderstate.cpp @@ -314,6 +314,8 @@ void PolyRenderState::ApplyMaterial() { mTempTM = mMaterial.mMaterial->Source()->isHardwareCanvas() ? TM_OPAQUE : TM_NORMAL; + if (mMaterial.mMaterial->Source()->isHardwareCanvas()) static_cast(mMaterial.mMaterial->Source()->GetTexture())->NeedUpdate(); + MaterialLayerInfo* layer; auto base = static_cast(mMaterial.mMaterial->GetLayer(0, mMaterial.mTranslation, &layer)); if (base) diff --git a/src/rendering/vulkan/renderer/vk_renderstate.cpp b/src/rendering/vulkan/renderer/vk_renderstate.cpp index 9f63054ae..721c56861 100644 --- a/src/rendering/vulkan/renderer/vk_renderstate.cpp +++ b/src/rendering/vulkan/renderer/vk_renderstate.cpp @@ -434,6 +434,8 @@ void VkRenderState::ApplyMaterial() auto fb = GetVulkanFrameBuffer(); auto passManager = fb->GetRenderPassManager(); + if (mMaterial.mMaterial && mMaterial.mMaterial->Source()->isHardwareCanvas()) static_cast(mMaterial.mMaterial->Source()->GetTexture())->NeedUpdate(); + VulkanDescriptorSet* descriptorset = mMaterial.mMaterial ? static_cast(mMaterial.mMaterial)->GetDescriptorSet(mMaterial) : passManager->GetNullTextureDescriptorSet(); mCommandBuffer->bindDescriptorSet(VK_PIPELINE_BIND_POINT_GRAPHICS, passManager->GetPipelineLayout(mPipelineKey.NumTextureLayers), 1, descriptorset);