Signed-off-by: Conor McCarthy cmccarthy@codeweavers.com --- 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); }