From: Conor McCarthy Subject: [PATCH vkd3d v2 8/9] vkd3d-shader: Skip second-order extended operand if present. Message-Id: <20210823152328.33784-8-cmccarthy@codeweavers.com> Date: Tue, 24 Aug 2021 01:23:27 +1000 In-Reply-To: <20210823152328.33784-1-cmccarthy@codeweavers.com> References: <20210823152328.33784-1-cmccarthy@codeweavers.com> Signed-off-by: Conor McCarthy --- libs/vkd3d-shader/dxbc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index 156b81a3..4fa5213b 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -1241,7 +1241,14 @@ static bool shader_sm4_read_param(struct vkd3d_sm4_data *priv, const DWORD **ptr FIXME("Unhandled extended operand type %#x.\n", type); } - m &= ~VKD3D_SM4_REGISTER_NON_UNIFORM_MASK & (~0u << VKD3D_SM4_REGISTER_NON_UNIFORM_SHIFT); + if (m & VKD3D_SM4_EXTENDED_OPERAND) + { + FIXME("Skipping second-order extended operand.\n"); + *ptr += *ptr < end; + } + + m &= ~VKD3D_SM4_EXTENDED_OPERAND & ~VKD3D_SM4_REGISTER_NON_UNIFORM_MASK + & (~0u << VKD3D_SM4_REGISTER_NON_UNIFORM_SHIFT); if (m) FIXME("Skipping modifier 0x%08x.\n", m); } -- 2.32.0