diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 8f10a9fe5..9385ac733 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -579,6 +579,15 @@ ShaderReflection *VulkanReplay::GetShader(ResourceId id) void VulkanReplay::SavePipelineState() { VULKANNOTIMP("SavePipelineState"); + + create_array_uninit(m_D3D11PipelineState.m_OM.RenderTargets, 1); + + ResourceId id; + VkImage fakeBBIm = VK_NULL_HANDLE; + VkDeviceMemory fakeBBMem = VK_NULL_HANDLE; + m_pDriver->GetFakeBB(id, fakeBBIm, fakeBBMem); + + m_D3D11PipelineState.m_OM.RenderTargets[0].Resource = id; } void VulkanReplay::FillCBufferVariables(ResourceId shader, uint32_t cbufSlot, vector &outvars, const vector &data) diff --git a/renderdoc/driver/vulkan/vk_replay.h b/renderdoc/driver/vulkan/vk_replay.h index be1a79ca6..fd1f1e7b9 100644 --- a/renderdoc/driver/vulkan/vk_replay.h +++ b/renderdoc/driver/vulkan/vk_replay.h @@ -80,7 +80,7 @@ class VulkanReplay : public IReplayDriver vector GetDebugMessages(); void SavePipelineState(); - D3D11PipelineState GetD3D11PipelineState() { return D3D11PipelineState(); } + D3D11PipelineState GetD3D11PipelineState() { return m_D3D11PipelineState; } GLPipelineState GetGLPipelineState() { return GLPipelineState(); } void FreeTargetResource(ResourceId id); @@ -185,6 +185,8 @@ class VulkanReplay : public IReplayDriver VkImageMemoryBarrier stenciltrans; }; + D3D11PipelineState m_D3D11PipelineState; + map m_OutputWindows; uint64_t m_OutputWinID; uint64_t m_ActiveWinID;