From 381260a4932af19a962a6f4bbffbd0db36ec828c Mon Sep 17 00:00:00 2001 From: vlj Date: Fri, 5 Jun 2015 21:36:56 +0200 Subject: [PATCH] d3d12: Check IALayout equality in pipeline state --- rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h b/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h index 854e095038..003a5335fc 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h +++ b/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h @@ -21,7 +21,23 @@ struct D3D12PipelineProperties bool operator==(const D3D12PipelineProperties &in) const { - // TODO: blend and IASet equality + if (IASet.size() != in.IASet.size()) + return false; + for (unsigned i = 0; i < IASet.size(); i++) + { + const D3D12_INPUT_ELEMENT_DESC &a = IASet[i], &b = in.IASet[i]; + if (a.AlignedByteOffset != b.AlignedByteOffset) + return false; + if (a.Format != b.Format) + return false; + if (a.InputSlot != b.InputSlot) + return false; + if (a.InstanceDataStepRate != b.InstanceDataStepRate) + return false; + if (a.SemanticIndex != b.SemanticIndex) + return false; + } + // TODO: blend return Topology == in.Topology && DepthStencilFormat == in.DepthStencilFormat && numMRT == in.numMRT && depthEnabled == in.depthEnabled; } };