From 87a78828120c8b5fa49e518c1d17f617398e4372 Mon Sep 17 00:00:00 2001 From: WinterSnowfall Date: Fri, 4 Oct 2024 09:35:49 +0300 Subject: [PATCH] [d3d8] Automatically capture state on state block creation --- src/d3d8/d3d8_device.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/d3d8/d3d8_device.cpp b/src/d3d8/d3d8_device.cpp index 457902fa2..ef170f7c9 100644 --- a/src/d3d8/d3d8_device.cpp +++ b/src/d3d8/d3d8_device.cpp @@ -1089,10 +1089,13 @@ namespace dxvk { if (likely(SUCCEEDED(res))) { m_token++; - m_stateBlocks.emplace(std::piecewise_construct, - std::forward_as_tuple(m_token), - std::forward_as_tuple(this, Type, pStateBlock9.ref())); + auto stateBlockIterPair = m_stateBlocks.emplace(std::piecewise_construct, + std::forward_as_tuple(m_token), + std::forward_as_tuple(this, Type, pStateBlock9.ref())); *pToken = m_token; + + // D3D8 state blocks automatically capture state on creation. + stateBlockIterPair.first->second.Capture(); } return res;