From 8e8d718c7e621f259e3971f043e921eb727c1b9d Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:31:01 -0700 Subject: [PATCH] Make sure to recreate stored pipelines on resetting D3D11 device Fixes crashes whenever a reset ends up occurring due to a lost device --- src/BizHawk.Bizware.Graphics/D3D11/D3D11Pipeline.cs | 2 +- src/BizHawk.Bizware.Graphics/D3D11/D3D11Resources.cs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/BizHawk.Bizware.Graphics/D3D11/D3D11Pipeline.cs b/src/BizHawk.Bizware.Graphics/D3D11/D3D11Pipeline.cs index b41766a4b8..db9cacca52 100644 --- a/src/BizHawk.Bizware.Graphics/D3D11/D3D11Pipeline.cs +++ b/src/BizHawk.Bizware.Graphics/D3D11/D3D11Pipeline.cs @@ -47,7 +47,7 @@ namespace BizHawk.Bizware.Graphics { public IntPtr VSPendingBuffer, PSPendingBuffer; public int VSBufferSize, PSBufferSize; - public bool VSBufferDirty, PSBufferDirty; + public bool VSBufferDirty, PSBufferDirty; } public readonly D3D11PendingBuffer[] PendingBuffers = new D3D11PendingBuffer[ID3D11DeviceContext.CommonShaderConstantBufferSlotCount]; diff --git a/src/BizHawk.Bizware.Graphics/D3D11/D3D11Resources.cs b/src/BizHawk.Bizware.Graphics/D3D11/D3D11Resources.cs index 168673172f..5927f95f55 100644 --- a/src/BizHawk.Bizware.Graphics/D3D11/D3D11Resources.cs +++ b/src/BizHawk.Bizware.Graphics/D3D11/D3D11Resources.cs @@ -114,6 +114,11 @@ namespace BizHawk.Bizware.Graphics RasterizerState = Device.CreateRasterizerState(rd); + foreach (var pipeline in Pipelines) + { + pipeline.CreatePipeline(); + } + foreach (var tex2d in Textures) { tex2d.CreateTexture();