Welcome to mirror list, hosted at ThFree Co, Russian Federation.

mesh-shader-plain-builtin-outputs.spv14.asm.vk.nocompat.mesh « mesh « asm « shaders-no-opt - github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 7b38001d8d4454433be996d015c7ac91d478470b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
; SPIR-V
; Version: 1.4
; Generator: Unknown(30017); 21022
; Bound: 89
; Schema: 0
               OpCapability Shader
               OpCapability Geometry
               OpCapability ShaderViewportIndexLayerEXT
               OpCapability MeshShadingEXT
               OpExtension "SPV_EXT_mesh_shader"
               OpExtension "SPV_EXT_shader_viewport_index_layer"
               OpMemoryModel Logical GLSL450
               OpEntryPoint MeshEXT %main "main" %SV_Position %B %SV_CullPrimitive %SV_RenderTargetArrayIndex %SV_PrimitiveID %C %indices %32 %gl_LocalInvocationIndex %38
               OpExecutionMode %main OutputVertices 24
               OpExecutionMode %main OutputPrimitivesNV 8
               OpExecutionMode %main OutputTrianglesNV
               OpExecutionMode %main LocalSize 2 3 4
               OpName %main "main"
               OpName %SV_Position "SV_Position"
               OpName %B "B"
               OpName %SV_CullPrimitive "SV_CullPrimitive"
               OpName %SV_RenderTargetArrayIndex "SV_RenderTargetArrayIndex"
               OpName %SV_PrimitiveID "SV_PrimitiveID"
               OpName %C "C"
               OpName %indices "indices"
               OpName %_ ""
               OpDecorate %SV_Position BuiltIn Position
               OpDecorate %B Location 1
               OpDecorate %SV_CullPrimitive BuiltIn CullPrimitiveEXT
               OpDecorate %SV_CullPrimitive PerPrimitiveNV
               OpDecorate %SV_RenderTargetArrayIndex BuiltIn Layer
               OpDecorate %SV_RenderTargetArrayIndex PerPrimitiveNV
               OpDecorate %SV_PrimitiveID BuiltIn PrimitiveId
               OpDecorate %SV_PrimitiveID PerPrimitiveNV
               OpDecorate %C Location 3
               OpDecorate %C PerPrimitiveNV
               OpDecorate %indices BuiltIn PrimitiveTriangleIndicesEXT
               OpDecorate %gl_LocalInvocationIndex BuiltIn LocalInvocationIndex
       %void = OpTypeVoid
          %2 = OpTypeFunction %void
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
       %uint = OpTypeInt 32 0
    %uint_24 = OpConstant %uint 24
%_arr_v4float_uint_24 = OpTypeArray %v4float %uint_24
%_ptr_Output__arr_v4float_uint_24 = OpTypePointer Output %_arr_v4float_uint_24
%SV_Position = OpVariable %_ptr_Output__arr_v4float_uint_24 Output
          %B = OpVariable %_ptr_Output__arr_v4float_uint_24 Output
       %bool = OpTypeBool
     %uint_8 = OpConstant %uint 8
%_arr_bool_uint_8 = OpTypeArray %bool %uint_8
%_ptr_Output__arr_bool_uint_8 = OpTypePointer Output %_arr_bool_uint_8
%SV_CullPrimitive = OpVariable %_ptr_Output__arr_bool_uint_8 Output
%_arr_uint_uint_8 = OpTypeArray %uint %uint_8
%_ptr_Output__arr_uint_uint_8 = OpTypePointer Output %_arr_uint_uint_8
%SV_RenderTargetArrayIndex = OpVariable %_ptr_Output__arr_uint_uint_8 Output
%SV_PrimitiveID = OpVariable %_ptr_Output__arr_uint_uint_8 Output
%_arr_v4float_uint_8 = OpTypeArray %v4float %uint_8
%_ptr_Output__arr_v4float_uint_8 = OpTypePointer Output %_arr_v4float_uint_8
          %C = OpVariable %_ptr_Output__arr_v4float_uint_8 Output
     %v3uint = OpTypeVector %uint 3
%_arr_v3uint_uint_8 = OpTypeArray %v3uint %uint_8
%_ptr_Output__arr_v3uint_uint_8 = OpTypePointer Output %_arr_v3uint_uint_8
    %indices = OpVariable %_ptr_Output__arr_v3uint_uint_8 Output
    %uint_64 = OpConstant %uint 64
%_arr_float_uint_64 = OpTypeArray %float %uint_64
%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
         %32 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%gl_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input
          %_ = OpTypeStruct %float
%_ptr_TaskPayloadWorkgroupEXT__ = OpTypePointer TaskPayloadWorkgroupEXT %_
         %38 = OpVariable %_ptr_TaskPayloadWorkgroupEXT__ TaskPayloadWorkgroupEXT
%_ptr_Workgroup_float = OpTypePointer Workgroup %float
     %uint_2 = OpConstant %uint 2
   %uint_264 = OpConstant %uint 264
%_ptr_Output_float = OpTypePointer Output %float
     %uint_0 = OpConstant %uint 0
     %uint_1 = OpConstant %uint 1
     %uint_3 = OpConstant %uint 3
%_ptr_TaskPayloadWorkgroupEXT_float = OpTypePointer TaskPayloadWorkgroupEXT %float
%_ptr_Output_v3uint = OpTypePointer Output %v3uint
%_ptr_Output_bool = OpTypePointer Output %bool
%_ptr_Output_uint = OpTypePointer Output %uint
       %main = OpFunction %void None %2
          %4 = OpLabel
               OpBranch %85
         %85 = OpLabel
         %35 = OpLoad %uint %gl_LocalInvocationIndex
         %39 = OpConvertUToF %float %35
         %41 = OpAccessChain %_ptr_Workgroup_float %32 %35
               OpStore %41 %39
               OpControlBarrier %uint_2 %uint_2 %uint_264
               OpSetMeshOutputsEXT %uint_24 %uint_8
         %44 = OpLoad %float %41
         %46 = OpAccessChain %_ptr_Output_float %SV_Position %35 %uint_0
               OpStore %46 %44
         %48 = OpAccessChain %_ptr_Output_float %SV_Position %35 %uint_1
               OpStore %48 %44
         %50 = OpAccessChain %_ptr_Output_float %SV_Position %35 %uint_2
               OpStore %50 %44
         %51 = OpAccessChain %_ptr_Output_float %SV_Position %35 %uint_3
               OpStore %51 %44
         %53 = OpBitwiseXor %uint %35 %uint_1
         %54 = OpAccessChain %_ptr_Workgroup_float %32 %53
         %55 = OpLoad %float %54
         %57 = OpInBoundsAccessChain %_ptr_TaskPayloadWorkgroupEXT_float %38 %uint_0
         %58 = OpLoad %float %57
         %59 = OpFAdd %float %58 %55
         %60 = OpAccessChain %_ptr_Output_float %B %35 %uint_0
               OpStore %60 %59
         %61 = OpAccessChain %_ptr_Output_float %B %35 %uint_1
               OpStore %61 %59
         %62 = OpAccessChain %_ptr_Output_float %B %35 %uint_2
               OpStore %62 %59
         %63 = OpAccessChain %_ptr_Output_float %B %35 %uint_3
               OpStore %63 %59
         %64 = OpULessThan %bool %35 %uint_8
               OpSelectionMerge %87 None
               OpBranchConditional %64 %86 %87
         %86 = OpLabel
         %65 = OpIMul %uint %35 %uint_3
         %66 = OpIAdd %uint %65 %uint_1
         %67 = OpIAdd %uint %65 %uint_2
         %68 = OpCompositeConstruct %v3uint %65 %66 %67
         %70 = OpAccessChain %_ptr_Output_v3uint %indices %35
               OpStore %70 %68
         %71 = OpBitwiseAnd %uint %35 %uint_1
         %72 = OpINotEqual %bool %71 %uint_0
         %74 = OpAccessChain %_ptr_Output_bool %SV_CullPrimitive %35
               OpStore %74 %72
         %76 = OpAccessChain %_ptr_Output_uint %SV_PrimitiveID %35
               OpStore %76 %35
         %77 = OpAccessChain %_ptr_Output_uint %SV_RenderTargetArrayIndex %35
               OpStore %77 %35
         %78 = OpBitwiseXor %uint %35 %uint_2
         %79 = OpAccessChain %_ptr_Workgroup_float %32 %78
         %80 = OpLoad %float %79
         %81 = OpAccessChain %_ptr_Output_float %C %35 %uint_0
               OpStore %81 %80
         %82 = OpAccessChain %_ptr_Output_float %C %35 %uint_1
               OpStore %82 %80
         %83 = OpAccessChain %_ptr_Output_float %C %35 %uint_2
               OpStore %83 %80
         %84 = OpAccessChain %_ptr_Output_float %C %35 %uint_3
               OpStore %84 %80
               OpBranch %87
         %87 = OpLabel
               OpReturn
               OpFunctionEnd