From 2cc96907e4152291e0b6bca78a0bfbc69ddb8839 Mon Sep 17 00:00:00 2001 From: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> Date: Fri, 14 Jun 2024 01:29:35 -0400 Subject: Implement for metal `SV_GroupIndex` (#4385) * Implement for metal `SV_GroupIndex` 1. If we don't have `sv_GroupThreadId` available we create one using `SV_GroupIndex`s location data. 2. We emit code emulating `sv_GroupThreadId` from the same logic that CUDA/CPP uses. * address most review comments Addressed all but two: [1](https://github.com/shader-slang/slang/pull/4385#discussion_r1639058473) and [2](https://github.com/shader-slang/slang/pull/4385#issuecomment-2166934855) I want to enable tests and be sure there is no bugs using CI before I redesign the code so I have a working fallback. * address comment, enable tests enable now functioning tests due to `SV_GroupIndex` working with metal * syntax error with groupThreadID search did `= param` instead of `= i.param` * add `sv_groupid` for test + test fixes * disable test that won't work regardless --- tests/language-feature/higher-order-functions/simple.slang | 2 +- tests/language-feature/swizzles/matrix-swizzle-write-array.slang | 2 +- tests/language-feature/swizzles/matrix-swizzle-write-single.slang | 2 +- tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang | 2 +- tests/language-feature/swizzles/matrix-swizzle-write.slang | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'tests/language-feature') diff --git a/tests/language-feature/higher-order-functions/simple.slang b/tests/language-feature/higher-order-functions/simple.slang index 8a3544b91..13fc16aa5 100644 --- a/tests/language-feature/higher-order-functions/simple.slang +++ b/tests/language-feature/higher-order-functions/simple.slang @@ -1,7 +1,7 @@ //TEST(compute, vulkan):COMPARE_COMPUTE_EX():-vk -compute -shaderobj -output-using-type //TEST(compute):COMPARE_COMPUTE_EX():-slang -compute -shaderobj -output-using-type //TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj -output-using-type -//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl +//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer RWStructuredBuffer outputBuffer; diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-array.slang b/tests/language-feature/swizzles/matrix-swizzle-write-array.slang index e9510de06..616a19b19 100644 --- a/tests/language-feature/swizzles/matrix-swizzle-write-array.slang +++ b/tests/language-feature/swizzles/matrix-swizzle-write-array.slang @@ -1,6 +1,6 @@ //TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type //TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type -//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl +//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type // Test that matrix swizzle writes work correctly // Matrix swizzles can either be one or zero indexed diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-single.slang b/tests/language-feature/swizzles/matrix-swizzle-write-single.slang index d8bb11ea5..34d54ac55 100644 --- a/tests/language-feature/swizzles/matrix-swizzle-write-single.slang +++ b/tests/language-feature/swizzles/matrix-swizzle-write-single.slang @@ -1,6 +1,6 @@ //TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type //TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type -//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl +//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type // Test that writes to single matrix elements with swizzles work diff --git a/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang b/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang index b73b14249..f1ad7bc6a 100644 --- a/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang +++ b/tests/language-feature/swizzles/matrix-swizzle-write-swizzle.slang @@ -1,6 +1,6 @@ //TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type //TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type -//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl +//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type // Test that writing to swizzles of matrix swizzles works correctly diff --git a/tests/language-feature/swizzles/matrix-swizzle-write.slang b/tests/language-feature/swizzles/matrix-swizzle-write.slang index d467d33db..6ccb4c29c 100644 --- a/tests/language-feature/swizzles/matrix-swizzle-write.slang +++ b/tests/language-feature/swizzles/matrix-swizzle-write.slang @@ -1,6 +1,6 @@ //TEST(compute):COMPARE_COMPUTE: -compute -shaderobj -output-using-type //TEST(compute, vulkan):COMPARE_COMPUTE: -vk -compute -shaderobj -output-using-type -//DISABLE_TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl +//TEST(compute):COMPARE_COMPUTE:-slang -shaderobj -mtl -output-using-type // Test that matrix swizzle writes work correctly // Matrix swizzles can either be one or zero indexed -- cgit v1.2.3