vkd3d-shader/dxil: Emit 16-bit raw TGSMs as minimum precision.

This commit is contained in:
Giovanni Mascellani
2025-05-29 19:03:53 +02:00
committed by Henri Verbeet
parent 7c0da1747a
commit 5e1c8056ae
Notes: Henri Verbeet 2025-06-18 15:59:59 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1568
2 changed files with 13 additions and 10 deletions

View File

@@ -3720,7 +3720,10 @@ static void sm6_parser_declare_tgsm_raw(struct sm6_parser *sm6, const struct sm6
dst->structure_stride = 0; dst->structure_stride = 0;
sm6_register_from_value(&ins->declaration.tgsm_raw.reg.reg, dst, sm6); sm6_register_from_value(&ins->declaration.tgsm_raw.reg.reg, dst, sm6);
ins->declaration.tgsm_raw.alignment = alignment; ins->declaration.tgsm_raw.alignment = alignment;
byte_count = elem_type->u.width / 8u; byte_count = elem_type->u.width / CHAR_BIT;
/* Convert minimum precision types to their 32-bit equivalent. */
if (byte_count == 2)
byte_count = 4;
if (byte_count != 4) if (byte_count != 4)
{ {
FIXME("Unsupported byte count %u.\n", byte_count); FIXME("Unsupported byte count %u.\n", byte_count);

View File

@@ -305,15 +305,15 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID)
} }
[test] [test]
todo dispatch 2 1 1 todo(sm<6) dispatch 2 1 1
todo probe uav 0 (0) u32(0x14321) probe uav 0 (0) u32(0x14321)
todo probe uav 0 (1) u32(0x14321) probe uav 0 (1) u32(0x14321)
todo probe uav 0 (2) u32(0x14321) probe uav 0 (2) u32(0x14321)
todo probe uav 0 (3) u32(0x14321) probe uav 0 (3) u32(0x14321)
todo probe uav 0 (4) u32(0x24321) probe uav 0 (4) u32(0x24321)
todo probe uav 0 (5) u32(0x24321) probe uav 0 (5) u32(0x24321)
todo probe uav 0 (6) u32(0x24321) probe uav 0 (6) u32(0x24321)
todo probe uav 0 (7) u32(0x24321) probe uav 0 (7) u32(0x24321)
[require] [require]
shader model >= 6.2 shader model >= 6.2