diff --git a/util/test/demos/d3d12/d3d12_subgroup_zoo.cpp b/util/test/demos/d3d12/d3d12_subgroup_zoo.cpp index e27bf58af..b4acf17fe 100644 --- a/util/test/demos/d3d12/d3d12_subgroup_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_subgroup_zoo.cpp @@ -356,6 +356,13 @@ void main(uint3 inTid : SV_DispatchThreadID) data.z = WavePrefixSum(data.x); data.w = WavePrefixProduct(1 + data.y); } + else + { + data.x = WavePrefixCountBits(id > 23); + data.y = WavePrefixCountBits(id < 1); + data.z = WavePrefixSum(data.x); + data.w = WavePrefixSum(data.y); + } } else if(IsTest(13)) { diff --git a/util/test/demos/vk/vk_subgroup_zoo.cpp b/util/test/demos/vk/vk_subgroup_zoo.cpp index ba99808f5..b48064ee4 100644 --- a/util/test/demos/vk/vk_subgroup_zoo.cpp +++ b/util/test/demos/vk/vk_subgroup_zoo.cpp @@ -336,6 +336,15 @@ void main() data.z = subgroupExclusiveAdd(data.x); data.w = subgroupExclusiveMul(1 + data.y); } + else + { + uvec4 bits = subgroupBallot(id > 23); + data.x = subgroupBallotExclusiveBitCount(bits); + bits = subgroupBallot(id < 1); + data.y = subgroupBallotExclusiveBitCount(bits); + data.z = subgroupExclusiveAdd(data.x); + data.w = subgroupExclusiveAdd(data.y); + } } else if(IsTest(13)) {