
Implements https://github.com/llvm/wg-hlsl/blob/main/proposals/0026-symbol-visibility.md. The change is to stop using the `hlsl.export` attribute. Instead, symbols with "program linkage" in HLSL will have export linkage with default visibility, and symbols with "external linkage" in HLSL will have export linkage with hidden visibility.
16 lines
583 B
HLSL
16 lines
583 B
HLSL
// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
|
|
// RUN: spirv-unknown-vulkan1.3-compute %s -emit-llvm -O3 -o - | FileCheck %s
|
|
|
|
[[vk::ext_builtin_input(/* WorkgroupId */ 26)]]
|
|
static const uint3 groupid;
|
|
// CHECK: @_ZL7groupid = external hidden local_unnamed_addr addrspace(7) externally_initialized constant <3 x i32>, align 16, !spirv.Decorations [[META0:![0-9]+]]
|
|
|
|
RWStructuredBuffer<int> output : register(u1, space0);
|
|
|
|
[numthreads(1, 1, 1)]
|
|
void main() {
|
|
output[0] = groupid;
|
|
}
|
|
// CHECK: [[META0]] = !{[[META1:![0-9]+]]}
|
|
// CHECK: [[META1]] = !{i32 11, i32 26}
|