HLSL: pass tessellation execution modes through to SPIR-V
The SPIR-V generator had assumed tessellation modes such as primitive type and vertex order would only appear in tess eval (domain) shaders. SPIR-V allows either, and HLSL allows and possibly requires them to be in the hull shader. This change: 1. Passes them through for either tessellation stage, and, 2. Does not set up defaults in the domain stage for HLSl compilation, to avoid conflicting definitions.
This commit is contained in:
parent
e752f463c5
commit
e741249b72
12 changed files with 476 additions and 13 deletions
|
|
@ -1,6 +1,8 @@
|
|||
hlsl.hull.ctrlpt-1.tesc
|
||||
Shader version: 450
|
||||
vertices = 3
|
||||
vertex spacing = fractional_odd_spacing
|
||||
triangle order = cw
|
||||
0:? Sequence
|
||||
0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
||||
0:27 Function Parameters:
|
||||
|
|
@ -200,6 +202,8 @@ Linked tessellation control stage:
|
|||
|
||||
Shader version: 450
|
||||
vertices = 3
|
||||
vertex spacing = fractional_odd_spacing
|
||||
triangle order = cw
|
||||
0:? Sequence
|
||||
0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
|
||||
0:27 Function Parameters:
|
||||
|
|
@ -402,6 +406,9 @@ vertices = 3
|
|||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationControl 4 "main" 41 45 48 94 108 126
|
||||
ExecutionMode 4 OutputVertices 3
|
||||
ExecutionMode 4 Triangles
|
||||
ExecutionMode 4 SpacingFractionalOdd
|
||||
ExecutionMode 4 VertexOrderCw
|
||||
Name 4 "main"
|
||||
Name 8 "hs_in_t"
|
||||
MemberName 8(hs_in_t) 0 "val"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue