From 6bf1a69f3093d8f15e8219b9fd430d0a3985301a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Saffran?= Date: Thu, 26 Mar 2026 10:42:40 -0700 Subject: [PATCH 1/5] remove xfail --- test/Feature/StructuredBuffer/inc_counter_array.test | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/Feature/StructuredBuffer/inc_counter_array.test b/test/Feature/StructuredBuffer/inc_counter_array.test index f189eda83..ef83e2b4b 100644 --- a/test/Feature/StructuredBuffer/inc_counter_array.test +++ b/test/Feature/StructuredBuffer/inc_counter_array.test @@ -48,13 +48,6 @@ DescriptorSets: # Unimplemented https://github.com/llvm/offload-test-suite/issues/305 # XFAIL: Metal -# Intel has an issue with counters in resource arrays -# Bug https://github.com/llvm/offload-test-suite/issues/376 -# XFAIL: Intel - -# Bug https://github.com/llvm/offload-test-suite/issues/337 -# XFAIL: AMD - # RUN: split-file %s %t # RUN: %dxc_target -T cs_6_0 -Fo %t.o %t/source.hlsl # RUN: %offloader %t/pipeline.yaml %t.o | FileCheck %s %if DirectX %{ --check-prefixes=CHECK,DX-CHECK %} From 05db9b966ecd440308fa116e83fb0db8db67f9ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Saffran?= Date: Thu, 26 Mar 2026 19:47:58 -0700 Subject: [PATCH 2/5] test s-perron test suggestion --- .../StructuredBuffer/inc_counter_array.test | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/test/Feature/StructuredBuffer/inc_counter_array.test b/test/Feature/StructuredBuffer/inc_counter_array.test index ef83e2b4b..c6592275c 100644 --- a/test/Feature/StructuredBuffer/inc_counter_array.test +++ b/test/Feature/StructuredBuffer/inc_counter_array.test @@ -8,9 +8,21 @@ RWStructuredBuffer Out[4] : register(u0); [numthreads(4,1,1)] void main(uint GI : SV_GroupIndex) { for (int i = 0; i < GI; i++) - Out[NonUniformResourceIndex(GI)].IncrementCounter(); - - Out[NonUniformResourceIndex(GI)][0] = Out[NonUniformResourceIndex(GI)].IncrementCounter(); + Out[i].IncrementCounter(); + switch(GI) { + case 0: + Out[0][0] = Out[0].IncrementCounter(); + break; + case 1: + Out[1][0] = Out[1].IncrementCounter(); + break; + case 2: + Out[2][0] = Out[2].IncrementCounter(); + break; + case 3: + Out[3][0] = Out[3].IncrementCounter(); + break; + } } //--- pipeline.yaml From a1ca0b73f3d393ae4a0b59d416b3872346d87292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Saffran?= Date: Mon, 30 Mar 2026 11:05:01 -0700 Subject: [PATCH 3/5] work arround for loop bug --- test/Feature/StructuredBuffer/inc_counter_array.test | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/Feature/StructuredBuffer/inc_counter_array.test b/test/Feature/StructuredBuffer/inc_counter_array.test index c6592275c..d9ed99b59 100644 --- a/test/Feature/StructuredBuffer/inc_counter_array.test +++ b/test/Feature/StructuredBuffer/inc_counter_array.test @@ -7,8 +7,11 @@ RWStructuredBuffer Out[4] : register(u0); [numthreads(4,1,1)] void main(uint GI : SV_GroupIndex) { - for (int i = 0; i < GI; i++) - Out[i].IncrementCounter(); + Out[0].IncrementCounter(); + Out[1].IncrementCounter(); + Out[2].IncrementCounter(); + Out[3].IncrementCounter(); + switch(GI) { case 0: Out[0][0] = Out[0].IncrementCounter(); From 07a35980bbce1c6b725cf149d32ed04f313f41ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Saffran?= Date: Mon, 30 Mar 2026 15:33:26 -0700 Subject: [PATCH 4/5] test simplified version of test --- test/Feature/StructuredBuffer/inc_counter_array.test | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/Feature/StructuredBuffer/inc_counter_array.test b/test/Feature/StructuredBuffer/inc_counter_array.test index d9ed99b59..acd4a17d1 100644 --- a/test/Feature/StructuredBuffer/inc_counter_array.test +++ b/test/Feature/StructuredBuffer/inc_counter_array.test @@ -7,22 +7,24 @@ RWStructuredBuffer Out[4] : register(u0); [numthreads(4,1,1)] void main(uint GI : SV_GroupIndex) { - Out[0].IncrementCounter(); - Out[1].IncrementCounter(); - Out[2].IncrementCounter(); - Out[3].IncrementCounter(); switch(GI) { case 0: - Out[0][0] = Out[0].IncrementCounter(); + Out[0].IncrementCounter(); break; case 1: + Out[1][0] = Out[1].IncrementCounter(); Out[1][0] = Out[1].IncrementCounter(); break; case 2: + Out[2][0] = Out[2].IncrementCounter(); + Out[2][0] = Out[2].IncrementCounter(); Out[2][0] = Out[2].IncrementCounter(); break; case 3: + Out[3][0] = Out[3].IncrementCounter(); + Out[3][0] = Out[3].IncrementCounter(); + Out[3][0] = Out[3].IncrementCounter(); Out[3][0] = Out[3].IncrementCounter(); break; } From 0bc3d9ba9105ad396a98855fea709a596850c901 Mon Sep 17 00:00:00 2001 From: Joao Saffran Date: Tue, 31 Mar 2026 13:47:05 -0700 Subject: [PATCH 5/5] test main code --- test/Feature/CBuffer/vectors-64bit.test | 10 ++------ .../StructuredBuffer/inc_counter_array.test | 24 ++++--------------- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/test/Feature/CBuffer/vectors-64bit.test b/test/Feature/CBuffer/vectors-64bit.test index 59324acdc..1cd4532e3 100644 --- a/test/Feature/CBuffer/vectors-64bit.test +++ b/test/Feature/CBuffer/vectors-64bit.test @@ -34,11 +34,11 @@ Buffers: Format: Hex64 Data: [ 0x3ff0000000000000, 0x4000000000000000, - 0x4008000000000000, 0x5A5A5A5A5A5A5A5A, + 0x4008000000000012, 0x5A5A5A5A5A5A5A5A, 0x0000000000000001, 0x0000000000001111, 0x0000000000002222, 0x5A5A5A5A5A5A5A5A, 0x000000000000000A, 0x000000000000000B, - 0x000000000000000C, 0x5A5A5A5A5A5A5A5A, + 0x000000000000000C, 0x5A5A5A5A5A5A5A5B, ] - Name: Out Format: Hex64 @@ -65,12 +65,6 @@ DescriptorSets: # REQUIRES: Double, Int64 -# Bug: https://github.com/llvm/offload-test-suite/issues/471 -# XFAIL: Vulkan && Intel - -# Unimplemented https://github.com/llvm/llvm-project/issues/186465 -# XFAIL: Clang && Vulkan - # RUN: split-file %s %t # RUN: %dxc_target -fvk-use-dx-layout -T cs_6_5 -Fo %t.o %t/source.hlsl # RUN: %offloader %t/pipeline.yaml %t.o | FileCheck %s diff --git a/test/Feature/StructuredBuffer/inc_counter_array.test b/test/Feature/StructuredBuffer/inc_counter_array.test index acd4a17d1..d5c6ee6c7 100644 --- a/test/Feature/StructuredBuffer/inc_counter_array.test +++ b/test/Feature/StructuredBuffer/inc_counter_array.test @@ -7,27 +7,10 @@ RWStructuredBuffer Out[4] : register(u0); [numthreads(4,1,1)] void main(uint GI : SV_GroupIndex) { + for (int i = 0; i < GI; i++) + Out[NonUniformResourceIndex(GI)].IncrementCounter(); - switch(GI) { - case 0: - Out[0].IncrementCounter(); - break; - case 1: - Out[1][0] = Out[1].IncrementCounter(); - Out[1][0] = Out[1].IncrementCounter(); - break; - case 2: - Out[2][0] = Out[2].IncrementCounter(); - Out[2][0] = Out[2].IncrementCounter(); - Out[2][0] = Out[2].IncrementCounter(); - break; - case 3: - Out[3][0] = Out[3].IncrementCounter(); - Out[3][0] = Out[3].IncrementCounter(); - Out[3][0] = Out[3].IncrementCounter(); - Out[3][0] = Out[3].IncrementCounter(); - break; - } + Out[NonUniformResourceIndex(GI)][0] = Out[NonUniformResourceIndex(GI)].IncrementCounter(); } //--- pipeline.yaml @@ -65,6 +48,7 @@ DescriptorSets: # Unimplemented https://github.com/llvm/offload-test-suite/issues/305 # XFAIL: Metal + # RUN: split-file %s %t # RUN: %dxc_target -T cs_6_0 -Fo %t.o %t/source.hlsl # RUN: %offloader %t/pipeline.yaml %t.o | FileCheck %s %if DirectX %{ --check-prefixes=CHECK,DX-CHECK %}