• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2018-2020 NVIDIA Corporation
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_EXT_mesh_shader.adoc[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2022-01-20
11*Interactions and External Dependencies*::
12  - This extension requires
13    {spirv}/EXT/SPV_EXT_mesh_shader.html[`SPV_EXT_mesh_shader`]
14  - This extension provides API support for
15    https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_mesh_shader.txt[`GLSL_EXT_mesh_shader`]
16  - Interacts with Vulkan 1.1
17  - Interacts with `apiext:VK_KHR_multiview`
18  - Interacts with `apiext:VK_KHR_fragment_shading_rate`
19*Contributors*::
20  - Christoph Kubisch, NVIDIA
21  - Pat Brown, NVIDIA
22  - Jeff Bolz, NVIDIA
23  - Daniel Koch, NVIDIA
24  - Piers Daniell, NVIDIA
25  - Pierre Boudier, NVIDIA
26  - Patrick Mours, NVIDIA
27  - David Zhao Akeley, NVIDIA
28  - Kedarnath Thangudu, NVIDIA
29  - Timur Kristóf, Valve
30  - Hans-Kristian Arntzen, Valve
31  - Philip Rebohle, Valve
32  - Mike Blumenkrantz, Valve
33  - Slawomir Grajewski, Intel
34  - Michal Pietrasiuk, Intel
35  - Mariusz Merecki, Intel
36  - Tom Olson, ARM
37  - Jan-Harald Fredriksen, ARM
38  - Sandeep Kakarlapudi, ARM
39  - Ruihao Zhang, QUALCOMM
40  - Ricardo Garcia, Igalia, S.L.
41  - Tobias Hector, AMD
42  - Stu Smith, AMD
43
44
45=== Description
46
47This extension provides a new mechanism allowing applications to generate
48collections of geometric primitives via programmable mesh shading.
49It is an alternative to the existing programmable primitive shading
50pipeline, which relied on generating input primitives by a fixed function
51assembler as well as fixed function vertex fetch.
52
53This extension also adds support for the following SPIR-V extension in
54Vulkan:
55
56  * {spirv}/EXT/SPV_EXT_mesh_shader.html[`SPV_EXT_mesh_shader`]
57
58include::{generated}/interfaces/VK_EXT_mesh_shader.adoc[]
59
60
61=== New or Modified Built-In Variables
62
63  * <<interfaces-builtin-variables-cullprimitive,CullPrimitiveEXT>>
64  * <<interfaces-builtin-variables-primitivepointindices,PrimitivePointIndicesEXT>>
65  * <<interfaces-builtin-variables-primitivelineindices,PrimitiveLineIndicesEXT>>
66  * <<interfaces-builtin-variables-primitivetriangleindices,PrimitiveTriangleIndicesEXT>>
67  * (modified)code:Position
68  * (modified)code:PointSize
69  * (modified)code:ClipDistance
70  * (modified)code:CullDistance
71  * (modified)code:PrimitiveId
72  * (modified)code:Layer
73  * (modified)code:ViewportIndex
74  * (modified)code:NumWorkgroups
75  * (modified)code:WorkgroupSize
76  * (modified)code:WorkgroupId
77  * (modified)code:LocalInvocationId
78  * (modified)code:GlobalInvocationId
79  * (modified)code:LocalInvocationIndex
80  * (modified)code:NumSubgroups
81  * (modified)code:SubgroupId
82  * (modified)code:DrawIndex
83  * (modified)code:PrimitiveShadingRateKHR
84  * (modified)code:ViewIndex
85
86
87=== New SPIR-V Capability
88
89  * <<spirvenv-capabilities-table-MeshShadingEXT, code:MeshShadingEXT>>
90
91=== Version History
92
93  * Revision 1, 2022-03-08 (Christoph Kubisch, Daniel Koch, Patrick Mours)
94  ** Initial revision
95