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