From ec4f8ce239a6cf032961276bd582738933a255cd Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 19 Jan 2026 17:45:18 +0100 Subject: [PATCH] Optimize `RenderTargetWriteMask` on depth pass for transparency and terrain materials --- Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp | 1 + Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp | 1 + Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp b/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp index d8d986163..f3924f431 100644 --- a/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/ForwardMaterialShader.cpp @@ -185,6 +185,7 @@ bool ForwardMaterialShader::Load() psDesc.DepthWriteEnable = true; psDesc.DepthEnable = true; psDesc.DepthFunc = ComparisonFunc::Less; + psDesc.BlendMode.RenderTargetWriteMask = BlendingMode::ColorWrite::None; psDesc.HS = nullptr; psDesc.DS = nullptr; psDesc.VS = _shader->GetVS("VS"); diff --git a/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp b/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp index a2c45a6ee..b0ad6217c 100644 --- a/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/ParticleMaterialShader.cpp @@ -253,6 +253,7 @@ bool ParticleMaterialShader::Load() psDesc = GPUPipelineState::Description::Default; psDesc.CullMode = CullMode::TwoSided; psDesc.DepthClipEnable = false; + psDesc.BlendMode.RenderTargetWriteMask = BlendingMode::ColorWrite::None; psDesc.PS = _shader->GetPS("PS_Depth"); psDesc.VS = vsSprite; _cacheSprite.Depth.Init(psDesc); diff --git a/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp b/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp index b6b455f20..8a28ab168 100644 --- a/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp +++ b/Source/Engine/Graphics/Materials/TerrainMaterialShader.cpp @@ -191,6 +191,7 @@ bool TerrainMaterialShader::Load() psDesc.DepthWriteEnable = true; psDesc.DepthEnable = true; psDesc.DepthFunc = ComparisonFunc::Less; + psDesc.BlendMode.RenderTargetWriteMask = BlendingMode::ColorWrite::None; psDesc.HS = nullptr; psDesc.DS = nullptr; psDesc.PS = nullptr;