diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 02e72b289..5a8df3dd9 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -4098,6 +4098,8 @@ static enum vkd3d_shader_register_type register_type_from_dxil_semantic_kind( switch (sysval_semantic) { + case VKD3D_SHADER_SV_PRIMITIVE_ID: + return VKD3DSPR_PRIMID; /* VSIR does not use an I/O register for SV_SampleIndex, but its * signature element has a register index of UINT_MAX and it is * convenient to return a valid register type here to handle it. */ diff --git a/tests/hlsl/primitive-id.shader_test b/tests/hlsl/primitive-id.shader_test index 225159c05..7f8d8176a 100644 --- a/tests/hlsl/primitive-id.shader_test +++ b/tests/hlsl/primitive-id.shader_test @@ -67,7 +67,7 @@ float4 main(struct ps_data ps_input) : SV_Target } [test] -todo(glsl | sm>=6) bug(mvk) draw point list 1 +todo(glsl) bug(mvk) draw point list 1 probe rtv 0 (320, 190) f32(0.0, 0.0, 0.0, 0.0) probe rtv 0 (255, 240) f32(0.0, 0.0, 0.0, 0.0) probe rtv 0 (319, 241) f32(0.0, 0.0, 1.0, 1.0)