Skip to content

Commit 9b33a29

Browse files
committed
hlsl_generator: ignore instructions with kernel capability
Signed-off-by: Ali Cheraghi <[email protected]>
1 parent 2146029 commit 9b33a29

File tree

2 files changed

+2
-33
lines changed

2 files changed

+2
-33
lines changed

tools/hlsl_generator/gen.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,8 @@ def processInst(writer: io.TextIOWrapper, instruction, options: InstOptions):
185185

186186
if "capabilities" in instruction and len(instruction["capabilities"]) > 0:
187187
for cap in instruction["capabilities"]:
188-
if cap == "Shader" or cap == "Kernel": continue
188+
if cap == "Kernel" and len(instruction["capabilities"]) == 1: return
189+
if cap == "Shader": continue
189190
caps.append(cap)
190191

191192
if options.shape == Shape.PTR_TEMPLATE:

tools/hlsl_generator/out.hlsl

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -650,14 +650,6 @@ template<typename T>
650650
[[vk::ext_instruction(spv::OpStore)]]
651651
void store(pointer_t<spv::StorageClassPhysicalStorageBuffer, T> pointer, T object);
652652

653-
template<typename T, typename P>
654-
[[vk::ext_instruction(spv::OpGenericPtrMemSemantics)]]
655-
enable_if_t<is_spirv_type_v<P>, T> genericPtrMemSemantics(P pointer);
656-
657-
template<typename T>
658-
[[vk::ext_instruction(spv::OpGenericPtrMemSemantics)]]
659-
T genericPtrMemSemantics(pointer_t<spv::StorageClassPhysicalStorageBuffer, T> pointer);
660-
661653
template<typename T>
662654
[[vk::ext_capability(spv::CapabilityBitInstructions)]]
663655
[[vk::ext_instruction(spv::OpBitFieldInsert)]]
@@ -726,14 +718,6 @@ template<typename T, typename P>
726718
[[vk::ext_instruction(spv::OpAtomicCompareExchange)]]
727719
enable_if_t<is_spirv_type_v<P>, T> atomicCompareExchange(P pointer, uint32_t memoryScope, uint32_t equal, uint32_t unequal, T value, T comparator);
728720

729-
template<typename T>
730-
[[vk::ext_instruction(spv::OpAtomicCompareExchangeWeak)]]
731-
T atomicCompareExchangeWeak([[vk::ext_reference]] T pointer, uint32_t memoryScope, uint32_t equal, uint32_t unequal, T value, T comparator);
732-
733-
template<typename T, typename P>
734-
[[vk::ext_instruction(spv::OpAtomicCompareExchangeWeak)]]
735-
enable_if_t<is_spirv_type_v<P>, T> atomicCompareExchangeWeak(P pointer, uint32_t memoryScope, uint32_t equal, uint32_t unequal, T value, T comparator);
736-
737721
template<typename T>
738722
[[vk::ext_instruction(spv::OpAtomicIIncrement)]]
739723
enable_if_t<(is_signed_v<T> || is_unsigned_v<T>), T> atomicIIncrement([[vk::ext_reference]] T pointer, uint32_t memoryScope, uint32_t semantics);
@@ -846,22 +830,6 @@ template<typename T, typename P>
846830
[[vk::ext_instruction(spv::OpAtomicXor)]]
847831
enable_if_t<is_spirv_type_v<P>, T> atomicXor(P pointer, uint32_t memoryScope, uint32_t semantics, T value);
848832

849-
template<typename T>
850-
[[vk::ext_instruction(spv::OpAtomicFlagTestAndSet)]]
851-
T atomicFlagTestAndSet([[vk::ext_reference]] T pointer, uint32_t memoryScope, uint32_t semantics);
852-
853-
template<typename T, typename P>
854-
[[vk::ext_instruction(spv::OpAtomicFlagTestAndSet)]]
855-
enable_if_t<is_spirv_type_v<P>, T> atomicFlagTestAndSet(P pointer, uint32_t memoryScope, uint32_t semantics);
856-
857-
template<typename T>
858-
[[vk::ext_instruction(spv::OpAtomicFlagClear)]]
859-
void atomicFlagClear([[vk::ext_reference]] T pointer, uint32_t memoryScope, uint32_t semantics);
860-
861-
template<typename P>
862-
[[vk::ext_instruction(spv::OpAtomicFlagClear)]]
863-
enable_if_t<is_spirv_type_v<P>, void> atomicFlagClear(P pointer, uint32_t memoryScope, uint32_t semantics);
864-
865833
[[vk::ext_capability(spv::CapabilityGroupNonUniform)]]
866834
[[vk::ext_instruction(spv::OpGroupNonUniformElect)]]
867835
bool groupNonUniformElect(uint32_t executionScope);

0 commit comments

Comments
 (0)