From 0983ab1f3993cda4e4b67a7c0007843aeae789ac Mon Sep 17 00:00:00 2001 From: WinterSnowfall Date: Fri, 10 Jan 2025 22:12:21 +0200 Subject: [PATCH] [d3d8] Don't forward D3DRS_LINEPATTERN changes to d3d9 --- src/d3d8/d3d8_device.cpp | 15 +++++++-------- src/d3d8/d3d8_device.h | 2 ++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/d3d8/d3d8_device.cpp b/src/d3d8/d3d8_device.cpp index 201678d36..64198e353 100644 --- a/src/d3d8/d3d8_device.cpp +++ b/src/d3d8/d3d8_device.cpp @@ -1588,12 +1588,11 @@ namespace dxvk { default: break; - // TODO: D3DRS_LINEPATTERN - vkCmdSetLineRasterizationModeEXT - case D3DRS_LINEPATTERN: { - [[maybe_unused]] - D3DLINEPATTERN pattern = bit::cast(Value); - stateChange = false; - } break; + // TODO: Implement D3DRS_LINEPATTERN - vkCmdSetLineRasterizationModeEXT + case D3DRS_LINEPATTERN: + Logger::warn("D3D8Device::SetRenderState: Unimplemented render state D3DRS_LINEPATTERN"); + m_linePattern = bit::cast(Value); + return D3D_OK; // Not supported by D3D8. case D3DRS_ZVISIBLE: @@ -1653,9 +1652,9 @@ namespace dxvk { default: break; - // TODO: D3DRS_LINEPATTERN case D3DRS_LINEPATTERN: - break; + *pValue = bit::cast(m_linePattern); + return D3D_OK; // Not supported by D3D8. case D3DRS_ZVISIBLE: diff --git a/src/d3d8/d3d8_device.h b/src/d3d8/d3d8_device.h index b5cce0d86..181e513c4 100644 --- a/src/d3d8/d3d8_device.h +++ b/src/d3d8/d3d8_device.h @@ -426,6 +426,8 @@ namespace dxvk { D3DPRESENT_PARAMETERS m_presentParams; + D3DLINEPATTERN m_linePattern = {}; + D3D8StateBlock* m_recorder = nullptr; DWORD m_recorderToken = 0; DWORD m_token = 0;