From f55f669d1badc94eb4eabf77a22a5994acca7a89 Mon Sep 17 00:00:00 2001 From: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> Date: Thu, 25 Sep 2025 10:06:29 -0700 Subject: 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 --- tests/cooperative-vector/matrix-mul-bias-mut.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-bias-packed-mut.slang | 5 ++++- tests/cooperative-vector/matrix-mul-bias-packed.slang | 5 ++++- tests/cooperative-vector/matrix-mul-bias-rw-packed.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-bias-rw.slang | 7 +++++-- .../matrix-mul-bias-rwbyteaddress-packed.slang | 7 +++++-- .../matrix-mul-bias-structuredbuffer-packed.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-bias.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-byteaddress.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-mut.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-packed-mut.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-packed.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-rw-packed.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-rw.slang | 7 +++++-- tests/cooperative-vector/matrix-mul-rwbyteaddress-packed.slang | 7 +++++-- .../cooperative-vector/matrix-mul-structuredbuffer-packed.slang | 9 ++++++--- tests/cooperative-vector/matrix-mul.slang | 7 +++++-- tests/cooperative-vector/outer-product-structuredbuffer.slang | 3 +-- tests/cooperative-vector/outer-product.slang | 3 +-- tests/expected-failure-github.txt | 7 +++---- 20 files changed, 89 insertions(+), 41 deletions(-) (limited to 'tests') diff --git a/tests/cooperative-vector/matrix-mul-bias-mut.slang b/tests/cooperative-vector/matrix-mul-bias-mut.slang index b7cdf8190..8b91dee38 100644 --- a/tests/cooperative-vector/matrix-mul-bias-mut.slang +++ b/tests/cooperative-vector/matrix-mul-bias-mut.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -28,6 +27,10 @@ ByteAddressBuffer bias; [numthreads(1, 1, 1)] void computeMain() { + // 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. + CoopVec vec = coopVecLoad<4, int8_t>(input); var result = CoopVec(8000); result.matMulAddAccum( diff --git a/tests/cooperative-vector/matrix-mul-bias-packed-mut.slang b/tests/cooperative-vector/matrix-mul-bias-packed-mut.slang index 0aeac358f..f25a774ed 100644 --- a/tests/cooperative-vector/matrix-mul-bias-packed-mut.slang +++ b/tests/cooperative-vector/matrix-mul-bias-packed-mut.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 -emit-spirv-directly //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type @@ -26,6 +25,10 @@ ByteAddressBuffer bias; [numthreads(1, 1, 1)] void computeMain() { + // 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); var result = CoopVec(8000); result.matMulAddAccumPacked( diff --git a/tests/cooperative-vector/matrix-mul-bias-packed.slang b/tests/cooperative-vector/matrix-mul-bias-packed.slang index 92219005d..5f6377ab6 100644 --- a/tests/cooperative-vector/matrix-mul-bias-packed.slang +++ b/tests/cooperative-vector/matrix-mul-bias-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 -emit-spirv-directly //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type @@ -26,6 +25,10 @@ ByteAddressBuffer bias; [numthreads(1, 1, 1)] void computeMain() { + // 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 = coopVecMatMulAddPacked( vec, diff --git a/tests/cooperative-vector/matrix-mul-bias-rw-packed.slang b/tests/cooperative-vector/matrix-mul-bias-rw-packed.slang index be4a3e0d9..083a819cd 100644 --- a/tests/cooperative-vector/matrix-mul-bias-rw-packed.slang +++ b/tests/cooperative-vector/matrix-mul-bias-rw-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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type @@ -28,7 +27,11 @@ RWByteAddressBuffer bias; [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); CoopVec result = coopVecMatMulAddPacked( vec, CoopVecComponentType::SignedInt8Packed, diff --git a/tests/cooperative-vector/matrix-mul-bias-rw.slang b/tests/cooperative-vector/matrix-mul-bias-rw.slang index 453a5020c..3a551dd11 100644 --- a/tests/cooperative-vector/matrix-mul-bias-rw.slang +++ b/tests/cooperative-vector/matrix-mul-bias-rw.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -28,6 +27,10 @@ RWByteAddressBuffer bias; [numthreads(1, 1, 1)] void computeMain() { + // 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. + CoopVec vec = coopVecLoad<4, int8_t>(input); CoopVec result = coopVecMatMulAdd( vec, diff --git a/tests/cooperative-vector/matrix-mul-bias-rwbyteaddress-packed.slang b/tests/cooperative-vector/matrix-mul-bias-rwbyteaddress-packed.slang index c78d7b5a3..c08c80b69 100644 --- a/tests/cooperative-vector/matrix-mul-bias-rwbyteaddress-packed.slang +++ b/tests/cooperative-vector/matrix-mul-bias-rwbyteaddress-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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type @@ -28,7 +27,11 @@ RWByteAddressBuffer bias; [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); CoopVec result = coopVecMatMulAddPacked( vec, CoopVecComponentType::SignedInt8Packed, diff --git a/tests/cooperative-vector/matrix-mul-bias-structuredbuffer-packed.slang b/tests/cooperative-vector/matrix-mul-bias-structuredbuffer-packed.slang index ad3110348..ddf0cae98 100644 --- a/tests/cooperative-vector/matrix-mul-bias-structuredbuffer-packed.slang +++ b/tests/cooperative-vector/matrix-mul-bias-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 outputBuffer; //TEST_INPUT:ubuffer(data=[67305985], stride=4),name=input //[1 2 3 4] -StructuredBuffer input; +StructuredBuffer 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] @@ -28,6 +27,10 @@ StructuredBuffer bias; [numthreads(1, 1, 1)] void computeMain() { + // 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>(input); let result = coopVecMatMulAddPacked( vec, diff --git a/tests/cooperative-vector/matrix-mul-bias.slang b/tests/cooperative-vector/matrix-mul-bias.slang index 453e87f30..6ef85fc01 100644 --- a/tests/cooperative-vector/matrix-mul-bias.slang +++ b/tests/cooperative-vector/matrix-mul-bias.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -28,6 +27,10 @@ ByteAddressBuffer bias; [numthreads(1, 1, 1)] void computeMain() { + // 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. + CoopVec vec = coopVecLoad<4, int8_t>(input); let result = coopVecMatMulAdd( vec, diff --git a/tests/cooperative-vector/matrix-mul-byteaddress.slang b/tests/cooperative-vector/matrix-mul-byteaddress.slang index 28666767f..3bb73a2d7 100644 --- a/tests/cooperative-vector/matrix-mul-byteaddress.slang +++ b/tests/cooperative-vector/matrix-mul-byteaddress.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -24,6 +23,10 @@ ByteAddressBuffer matrix; [numthreads(1, 1, 1)] void computeMain() { + // 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. + CoopVec vec = coopVecLoad<4, int8_t>(input); let result = coopVecMatMul( vec, diff --git a/tests/cooperative-vector/matrix-mul-mut.slang b/tests/cooperative-vector/matrix-mul-mut.slang index ff40d1e72..06b09bc95 100644 --- a/tests/cooperative-vector/matrix-mul-mut.slang +++ b/tests/cooperative-vector/matrix-mul-mut.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -24,6 +23,10 @@ ByteAddressBuffer matrix; [numthreads(1, 1, 1)] void computeMain() { + // 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<4, int8_t>(input); var result = CoopVec(1); result.matMulAccum( diff --git a/tests/cooperative-vector/matrix-mul-packed-mut.slang b/tests/cooperative-vector/matrix-mul-packed-mut.slang index 765d678c5..f3a85ae94 100644 --- a/tests/cooperative-vector/matrix-mul-packed-mut.slang +++ b/tests/cooperative-vector/matrix-mul-packed-mut.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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type //Test(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. @@ -22,7 +21,11 @@ ByteAddressBuffer 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); var result = CoopVec(1); result.matMulAccumPacked( vec, diff --git a/tests/cooperative-vector/matrix-mul-packed.slang b/tests/cooperative-vector/matrix-mul-packed.slang index f1983cf30..b6d6e9fef 100644 --- a/tests/cooperative-vector/matrix-mul-packed.slang +++ b/tests/cooperative-vector/matrix-mul-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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type //Test(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. @@ -22,7 +21,11 @@ ByteAddressBuffer 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( vec, CoopVecComponentType::SignedInt8Packed, diff --git a/tests/cooperative-vector/matrix-mul-rw-packed.slang b/tests/cooperative-vector/matrix-mul-rw-packed.slang index d439c8d37..c5d67ae84 100644 --- a/tests/cooperative-vector/matrix-mul-rw-packed.slang +++ b/tests/cooperative-vector/matrix-mul-rw-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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type @@ -24,7 +23,11 @@ RWByteAddressBuffer 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); CoopVec result = coopVecMatMulPacked( vec, CoopVecComponentType::SignedInt8Packed, diff --git a/tests/cooperative-vector/matrix-mul-rw.slang b/tests/cooperative-vector/matrix-mul-rw.slang index 488e83047..3f64cbeaf 100644 --- a/tests/cooperative-vector/matrix-mul-rw.slang +++ b/tests/cooperative-vector/matrix-mul-rw.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -24,6 +23,10 @@ RWByteAddressBuffer matrix; [numthreads(1, 1, 1)] void computeMain() { + // 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. + CoopVec vec = coopVecLoad<4, int8_t>(input); CoopVec result = coopVecMatMul( vec, diff --git a/tests/cooperative-vector/matrix-mul-rwbyteaddress-packed.slang b/tests/cooperative-vector/matrix-mul-rwbyteaddress-packed.slang index d439c8d37..c5d67ae84 100644 --- a/tests/cooperative-vector/matrix-mul-rwbyteaddress-packed.slang +++ b/tests/cooperative-vector/matrix-mul-rwbyteaddress-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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type @@ -24,7 +23,11 @@ RWByteAddressBuffer 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); CoopVec result = coopVecMatMulPacked( vec, CoopVecComponentType::SignedInt8Packed, 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 outputBuffer; //TEST_INPUT:ubuffer(data=[67305985], stride=4),name=input //[1 2 3 4] -StructuredBuffer input; +StructuredBuffer 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 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( vec, CoopVecComponentType::SignedInt8Packed, diff --git a/tests/cooperative-vector/matrix-mul.slang b/tests/cooperative-vector/matrix-mul.slang index b8d27fc3d..31dd52776 100644 --- a/tests/cooperative-vector/matrix-mul.slang +++ b/tests/cooperative-vector/matrix-mul.slang @@ -1,8 +1,7 @@ -// 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 //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-cpu -output-using-type -// Disabled because HLSL doesn't support int8 +// Disabled because HLSL doesn't support int8 //DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-dx12 -render-feature cooperative-vector -dx12-experimental -output-using-type -profile cs_6_9 -Xslang... -Xdxc -Vd -X. // CHECK: type: int32_t @@ -24,6 +23,10 @@ ByteAddressBuffer matrix; [numthreads(1, 1, 1)] void computeMain() { + // 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<4, int8_t>(input); let result = coopVecMatMul( vec, diff --git a/tests/cooperative-vector/outer-product-structuredbuffer.slang b/tests/cooperative-vector/outer-product-structuredbuffer.slang index a2a408c9e..6cd534796 100644 --- a/tests/cooperative-vector/outer-product-structuredbuffer.slang +++ b/tests/cooperative-vector/outer-product-structuredbuffer.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 into structured buffers @@ -64,7 +63,7 @@ void computeMain() output, 0, 32, - CoopVecMatrixLayout::RowMajor, + CoopVecMatrixLayout::TrainingOptimal, CoopVecComponentType::Float16, ); } diff --git a/tests/cooperative-vector/outer-product.slang b/tests/cooperative-vector/outer-product.slang index db11a319c..c872ffb9a 100644 --- a/tests/cooperative-vector/outer-product.slang +++ b/tests/cooperative-vector/outer-product.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 // HLSL doesn't support the training operations @@ -65,7 +64,7 @@ void computeMain() output, 0, 32, - CoopVecMatrixLayout::RowMajor, + CoopVecMatrixLayout::TrainingOptimal, CoopVecComponentType::Float16, ); diff --git a/tests/expected-failure-github.txt b/tests/expected-failure-github.txt index 6346a4f1f..6c2600beb 100644 --- a/tests/expected-failure-github.txt +++ b/tests/expected-failure-github.txt @@ -1,3 +1,5 @@ +# CoopVec tests failures are due to a bug in old VulkanSDK version 1.4.313.0 or below. +# When we upgrade VulkanSDK version on all CI machines, they should be removed from this list. tests/cooperative-vector/matrix-mul-bias-mut.slang (vk) tests/cooperative-vector/matrix-mul-bias-packed-mut.slang (vk) tests/cooperative-vector/matrix-mul-bias-packed.slang (vk) @@ -15,10 +17,7 @@ tests/cooperative-vector/matrix-mul-rw.slang (vk) tests/cooperative-vector/matrix-mul-rwbyteaddress-packed.slang (vk) tests/cooperative-vector/matrix-mul-structuredbuffer-packed.slang (vk) tests/cooperative-vector/matrix-mul.slang (vk) -tests/cooperative-vector/outer-product-structuredbuffer.slang (vk) -tests/cooperative-vector/outer-product.slang (vk) -tests/cooperative-vector/reduce-sum-accumulate-structuredbuffer.slang.3 syn (cuda) -tests/cooperative-vector/reduce-sum-accumulate.slang.3 syn (cuda) + tests/language-feature/saturated-cooperation/simple.slang (vk) tests/language-feature/saturated-cooperation/fuse3.slang (vk) tests/language-feature/saturated-cooperation/fuse-product.slang (vk) -- cgit v1.2.3