Home | History | Annotate | Download | only in spirv
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <registry>
      3     <!--
      4     Copyright (c) 2015 The Khronos Group Inc.
      5 
      6     Permission is hereby granted, free of charge, to any person obtaining a
      7     copy of this software and/or associated documentation files (the
      8     "Materials"), to deal in the Materials without restriction, including
      9     without limitation the rights to use, copy, modify, merge, publish,
     10     distribute, sublicense, and/or sell copies of the Materials, and to
     11     permit persons to whom the Materials are furnished to do so, subject to
     12     the following conditions:
     13 
     14     The above copyright notice and this permission notice shall be included
     15     in all copies or substantial portions of the Materials.
     16 
     17     THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     18     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     20     IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
     21     CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
     22     TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
     23     MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
     24     -->
     25     <!--
     26     This file, spir-v.xml, is the SPIR-V Tool ID and Opcode registry. The
     27     canonical version of the registry, together with related schema and
     28     documentation, can be found in the Khronos Registry at
     29         http://www.khronos.org/registry/spir-v/
     30     -->
     31 
     32     <!-- SECTION: SPIR-V Tool ID Definitions  -->
     33 
     34     <!-- A SPIR-V Generator Magic Number is a 32 bit word: The high order 16
     35          bits are a tool ID, which should be unique across all SPIR-V
     36          generators. The low order 16 bits are reserved for use as a tool
     37          version number, or any other purpose the tool supplier chooses.
     38          Only the tool IDs are reserved with Khronos.
     39 
     40          Add new tool ID reservations contiguously with the first available
     41          number (the "start" attribute of the <unused> tag below), and
     42          modify that <unused> tag accordingly. Please add a vendor/tool
     43          supplier name in a 'vendor="name"' attribute; a tool name in a
     44          'tool="name"' attribute; and a contact person/address in a
     45          'comment' attribute. Remember that this value is the high 16 bits
     46          of a 32-bit word.
     47 
     48          Note: a single vendor/tool supplier may have multiple tool IDs
     49          reserved for different SPIR-V generators -->
     50 
     51     <ids type="vendor" start="0" end="0xFFFF" comment="SPIR-V Tool IDs">
     52         <id value="0"   vendor="Khronos"    comment="Reserved by Khronos"/>
     53         <id value="1"   vendor="LunarG"     comment="Contact TBD"/>
     54         <id value="2"   vendor="Valve"      comment="Contact TBD"/>
     55         <id value="3"   vendor="Codeplay"   comment="Contact Neil Henning, neil (a] codeplay.com"/>
     56         <id value="4"   vendor="NVIDIA"     comment="Contact Kerch Holt, kholt (a] nvidia.com"/>
     57         <id value="5"   vendor="ARM"        comment="Contact Alexander Galazin, alexander.galazin (a] arm.com"/>
     58         <id value="6"   vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, yaxun.liu (a] amd.com"/>
     59         <id value="7"   vendor="Khronos" tool="SPIR-V Tools Assembler" comment="Contact David Neto, dneto (a] google.com"/>
     60         <id value="8"   vendor="Khronos" tool="Glslang Reference Front End" comment="Contact John Kessenich, johnkessenich (a] google.com"/>
     61         <id value="9"   vendor="Qualcomm"   comment="Contact weifengz (a] qti.qualcomm.com"/>
     62         <id value="10"  vendor="AMD"        comment="Contact Daniel Rakos, daniel.rakos (a] amd.com"/>
     63         <id value="11"  vendor="Intel"      comment="Contact Alexey, alexey.bader (a] intel.com"/>
     64         <id value="12"  vendor="Imagination" comment="Contact James Jones"/>
     65             <unused start="13" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
     66     </ids>
     67 
     68     <!-- SECTION: SPIR-V Opcodes and Enumerants -->
     69     <!-- Reserve new ranges for vendors in contiguous blocks of 64
     70          preceding the "Future use" block below, and modify that block
     71          accordingly.
     72 
     73          Each vendor determines the use of values in their own ranges.
     74          Vendors are not required to disclose those uses.  If the use of a
     75          value is included in an extension that is adopted by a Khronos
     76          extension or specification, then that value's use may be permanently
     77          fixed as if originally reserved in a Khronos range.
     78 
     79          The SPIR Working Group strongly recommends:
     80          - Each value is used for only one purpose.
     81          - All values in a range should be used before allocating a new range.
     82            For example, to avoid unused gaps in ranges, it is customary for
     83            several extensions to use values from the same range.
     84 
     85          The Id type "enum" is a synonym for "opcode".
     86 
     87          Note that SPIR-V restricts opcode values to 16 bits.
     88          -->
     89 
     90     <!-- Reserved opcode & enumerant blocks -->
     91     <ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
     92     <ids type="opcode" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
     93     <ids type="opcode" start="4160" end="4415" vendor="ARM"/>
     94     <ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil (a] codeplay.com"/>
     95     <ids type="opcode" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz (a] qti.qualcomm.com"/>
     96     <ids type="opcode" start="4992" end="5247" vendor="AMD"/>
     97     <ids type="opcode" start="5248" end="5503" vendor="NVIDIA"/>
     98     <ids type="opcode" start="5504" end="5567" vendor="Imagination"/>
     99     <!-- Opcodes & enumerants reservable for future use. To get a block, allocate
    100          multiples of 64 starting at the lowest available point in this
    101          block and add a corresponding <ids> tag immediately above. Make
    102          sure to fill in the vendor attribute, and preferably add a contact
    103          person/address in a comment attribute. -->
    104 
    105     <!-- Example new block: <ids type="opcode" start="5504" end="5504+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
    106 
    107     <ids type="opcode" start="5504" end="4294967295" comment="Opcode range reservable for future use by vendors"/>
    108 
    109 </registry>
    110