diff options
| author | Jay Kwak <82421531+jkwak-work@users.noreply.github.com> | 2025-09-25 10:06:29 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-25 17:06:29 +0000 |
| commit | f55f669d1badc94eb4eabf77a22a5994acca7a89 (patch) | |
| tree | db43b05492ddb64aea3b99f3f090228b76e30646 /tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang | |
| parent | 2e0fe3d0608c4de239fd6cd2ecdf0322951855f5 (diff) | |
Fix VVL errors on coopvec tests (#8541)
It appears that the inputType of the coopvec-mat-mul cannot be signed
int32.
It could be floating types or signed int32.
Changing the tests to use uint32 instead of int32.
The spec guarantees the following combinations and the rest should be
queried at the runtime if it is supported by the HW.
https://registry.khronos.org/vulkan/specs/latest/man/html/VkCooperativeVectorPropertiesNV.html#_description
inputType | inputInterpretation | matrixInterpretation |
biasInterpretation | resultType
-- | -- | -- | -- | --
FLOAT16 | FLOAT16 | FLOAT16 | FLOAT16 | FLOAT16
UINT32 | SINT8_PACKED | SINT8 | SINT32 | SINT32
SINT8 | SINT8 | SINT8 | SINT32 | SINT32
FLOAT32 | SINT8 | SINT8 | SINT32 | SINT32
FLOAT16 | FLOAT_E4M3 | FLOAT_E4M3 | FLOAT16 | FLOAT16
FLOAT16 | FLOAT_E5M2 | FLOAT_E5M2 | FLOAT16 | FLOAT16
Diffstat (limited to 'tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang')
| -rw-r--r-- | tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang b/tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang index 5beb4d395..304b2c23a 100644 --- a/tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang +++ b/tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang @@ -1,4 +1,3 @@ -// Fails because VVL 1.4.313.0 has a bug that sees int32_t as uint32_t in validation layers, issue #7715 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -render-feature cooperative-vector -output-using-type // These platforms don't support these operations from structured buffers @@ -16,7 +15,7 @@ RWStructuredBuffer<int32_t> outputBuffer; //TEST_INPUT:ubuffer(data=[67305985], stride=4),name=input //[1 2 3 4] -StructuredBuffer<int32_t> input; +StructuredBuffer<uint32_t> input; //TEST_INPUT:ubuffer(data=[67305985 134678021 202050057 269422093], stride=4),name=matrix //[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] @@ -25,7 +24,11 @@ StructuredBuffer<uint8_t> matrix; [numthreads(1, 1, 1)] void computeMain() { - let vec = coopVecLoad<1, int32_t>(input); + // Expected to fail with Vulkan 1.4.313.0 or below due to a bug in the VVL + // The VVL incorrectly reports that the result type in the following command is `VK_COMPONENT_TYPE_UINT32_KHR`. + // Tracking the issue in github #7715. + + let vec = coopVecLoad<1, uint32_t>(input); let result = coopVecMatMulPacked<int32_t, 4>( vec, CoopVecComponentType::SignedInt8Packed, |
