
Basic infrastructure to collect Function properties in Metadata Analysis - Add a `SmallVector` of entry properties to the metadata information. - Add a structure to represent function properties. Currently `numthreads` and shader kind properties of shader entry functions are represented.
37 lines
1002 B
LLVM
37 lines
1002 B
LLVM
; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
|
|
target triple = "dxil-pc-shadermodel6.8-library"
|
|
|
|
; CHECK: Shader Model Version : 6.8
|
|
; CHECK-NEXT: DXIL Version : 1.8
|
|
; CHECK-NEXT: Target Shader Stage : library
|
|
; CHECK-NEXT: Validator Version : 0
|
|
; CHECK-NEXT: entry_as
|
|
; CHECK-NEXT: Function Shader Stage : amplification
|
|
; CHECK-NEXT: NumThreads: 0,0,0
|
|
; CHECK-NEXT: entry_ms
|
|
; CHECK-NEXT: Function Shader Stage : mesh
|
|
; CHECK-NEXT: NumThreads: 0,0,0
|
|
; CHECK-NEXT: entry_cs
|
|
; CHECK-NEXT: Function Shader Stage : compute
|
|
; CHECK-NEXT: NumThreads: 1,2,1
|
|
; CHECK-EMPTY:
|
|
|
|
define void @entry_as() #0 {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
define i32 @entry_ms(i32 %a) #1 {
|
|
entry:
|
|
ret i32 %a
|
|
}
|
|
|
|
define float @entry_cs(float %f) #3 {
|
|
entry:
|
|
ret float %f
|
|
}
|
|
|
|
attributes #0 = { noinline nounwind "hlsl.shader"="amplification" }
|
|
attributes #1 = { noinline nounwind "hlsl.shader"="mesh" }
|
|
attributes #3 = { noinline nounwind "hlsl.numthreads"="1,2,1" "hlsl.shader"="compute" }
|