15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_shader_subgroup_partitioned 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_shader_subgroup_partitioned 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Daniel Koch, NVIDIA Corportation 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Jeff Bolz, NVIDIA 165bd8deadSopenharmony_ci Pyarelal Knowles, NVIDIA 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciStatus 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci Complete 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciVersion 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci Last Modified: 2019-07-26 255bd8deadSopenharmony_ci Revision: 1 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ciNumber 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ci OpenGL Extension #544 305bd8deadSopenharmony_ci OpenGL ES Extension #322 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ciDependencies 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci This extension is written against the OpenGL 4.6 Specification 355bd8deadSopenharmony_ci (Core Profile), dated July 30, 2017. 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci This extension requires OpenGL 4.3 or OpenGL ES 3.1. 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci This extension requires the KHR_shader_subgroup API and GLSL extensions. 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci This extension interacts with ARB_gl_spirv and OpenGL 4.6. 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci This extension interacts with ARB_spirv_extensions and OpenGL 4.6. 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci This extension interacts with OpenGL ES 3.x. 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci This extension requires SPV_NV_shader_subgroup_partitioned when SPIR-V is 485bd8deadSopenharmony_ci supported in OpenGL. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ciOverview 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci This extension enables support for the NV_shader_subgroup_partitioned 535bd8deadSopenharmony_ci shading language extension in OpenGL and OpenGL ES. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci This extension adds a new SUBGROUP_FEATURE_PARTITIONED_BIT_NV feature bit 565bd8deadSopenharmony_ci that is returned by queryies for SUBGROUP_SUPPORTED_FEATURES_KHR. 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci In OpenGL implementations supporting SPIR-V, this extension enables 595bd8deadSopenharmony_ci support for the SPV_NV_shader_subgroup_partitioned extension. 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci In OpenGL ES implementations, this extension does NOT add support for 625bd8deadSopenharmony_ci SPIR-V or for any of the built-in shading language functions (8.18) 635bd8deadSopenharmony_ci that have genDType (double) prototypes. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ciNew Procedures and Functions 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci None 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ciNew Tokens 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Returned as bitfield in the <data> argument when GetIntegerv 725bd8deadSopenharmony_ci is queried with a <pname> of SUBGROUP_SUPPORTED_FEATURES_KHR: 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ciModifications to the OpenGL 4.6 Specification (Core Profile) 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ciModifications to Chapter SG, "Subgroups" (as added by KHR_shader_subgroups) 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci (add a new subsection to SG.1, "Subgroup Operations") 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci SG.1.9 Partitioned Subgroup Operations 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci The partitioned subgroup operations allow a subgroup to partition 865bd8deadSopenharmony_ci its invocations into disjoint subsets and to perform scan and reduction 875bd8deadSopenharmony_ci operations among invocations belonging to the same subset. The partitions 885bd8deadSopenharmony_ci for partitioned subgroup operations are specified by a ballot operand and 895bd8deadSopenharmony_ci can be computed at runtime. The operations supported are add, mul, min, 905bd8deadSopenharmony_ci max, and, or, xor. 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci (Add a new bullet point to the list in SG.2.3, "Subgroup Supported 935bd8deadSopenharmony_ci Operations") 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ci * SUBGROUP_FEATURE_PARTITIONED_BIT_NV indicates the GL supports shaders 965bd8deadSopenharmony_ci with the NV_shader_subgroup_partitioned extension enabled. See SG.1.9. 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciModifications to Appendix C of the OpenGL 4.6 (Core Profile) Specification 995bd8deadSopenharmony_ci(The OpenGL SPIR-V Execution Environment) 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci Additions to section C.3 (Valid SPIR-V Capabilities): 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci Add the following rows to Table C.2 (Valid SPIR-V Capabilities): 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci GroupNonUniformPartitionedNV (if SUBGROUP_FEATURE_PARTITIONED_BIT_NV is supported) 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ciModifications to the OpenGL Shading Language Specification, Version 4.60 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci See the separate KHR_shader_subgroup GLSL document. 1105bd8deadSopenharmony_ci https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GL_NV_shader_subgroup_partitioned.txt 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ciDependencies on ARB_gl_spirv and OpenGL 4.6 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ci If ARB_gl_spirv or OpenGL 4.6 are not supported, ignore all 1155bd8deadSopenharmony_ci references to SPIR-V functionality. 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ciDependencies on ARB_spirv_extensions and OpenGL 4.6 1185bd8deadSopenharmony_ci 1195bd8deadSopenharmony_ci If ARB_spirv_extensions or OpenGL 4.6 are not supported, ignore 1205bd8deadSopenharmony_ci references to the ability to advertise additional SPIR-V extensions. 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ciDependencies on OpenGL ES 3.x 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci If implemented in OpenGL ES, ignore all references to SPIR-V and to 1255bd8deadSopenharmony_ci GLSL built-in functions which utilize the genDType (double) types. 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci None 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ciErrors 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci None 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ciNew State 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci None 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ciNew Implementation Dependent State 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ci None 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ciIssues 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci 1. What should we name this extension? 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci DISCUSSION. We will use the same name as the GLSL extension. 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ci RESOLVED: Use NV_shader_subgroup_partitioned. 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ci 2. Should SPV_NV_shader_subgroup_partitioned be advertised in the 1525bd8deadSopenharmony_ci list of extensions enumerated by the SPIR_V_EXTENSIONS query? 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci RESOLVED: Yes. There is no spec language for this because it 1555bd8deadSopenharmony_ci is just expected when this extension is supported (on an implementation 1565bd8deadSopenharmony_ci that supports SPIR-V). 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ciRevision History 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci Rev. Date Author Changes 1615bd8deadSopenharmony_ci ---- ----------- -------- ------------------------------------------- 1625bd8deadSopenharmony_ci 1 2019-07-27 dgkoch Internal revisions. 1635bd8deadSopenharmony_ci 164