From a4d916f03310901d6c35cae73de1dbd86cd899f7 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Mon, 7 Apr 2025 11:57:34 +0100 Subject: [PATCH] Add VK_Workgroup_Zoo unit tests for subgroup Scan and Prefix ops subgroupBallotExclusiveBitCount() subgroupExclusiveAdd() subgroupExclusiveMul() --- util/test/demos/vk/vk_subgroup_zoo.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/util/test/demos/vk/vk_subgroup_zoo.cpp b/util/test/demos/vk/vk_subgroup_zoo.cpp index c043077e9..6c13b6d04 100644 --- a/util/test/demos/vk/vk_subgroup_zoo.cpp +++ b/util/test/demos/vk/vk_subgroup_zoo.cpp @@ -324,6 +324,19 @@ void main() data.w = subgroupShuffle(data.x, 2+id%3); } } + else if(IsTest(12)) + { + // Scan and Prefix functions : unit tests + if (id >= 2 && id <= 20) + { + uvec4 bits = subgroupBallot(id > 4); + data.x = subgroupBallotExclusiveBitCount(bits); + bits = subgroupBallot(id > 10); + data.y = subgroupBallotExclusiveBitCount(bits); + data.z = subgroupExclusiveAdd(data.x); + data.w = subgroupExclusiveMul(1 + data.y); + } + } SetOuput(data); }