1 /* 2 ** Copyright (c) 2014-2016 The Khronos Group Inc. 3 ** 4 ** Permission is hereby granted, free of charge, to any person obtaining a copy 5 ** of this software and/or associated documentation files (the "Materials"), 6 ** to deal in the Materials without restriction, including without limitation 7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 ** and/or sell copies of the Materials, and to permit persons to whom the 9 ** Materials are furnished to do so, subject to the following conditions: 10 ** 11 ** The above copyright notice and this permission notice shall be included in 12 ** all copies or substantial portions of the Materials. 13 ** 14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS 15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND 16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 17 ** 18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS 24 ** IN THE MATERIALS. 25 */ 26 27 #ifndef GLSLextAMD_H 28 #define GLSLextAMD_H 29 30 enum BuiltIn; 31 enum Capability; 32 enum Decoration; 33 enum Op; 34 35 static const int GLSLextAMDVersion = 100; 36 static const int GLSLextAMDRevision = 6; 37 38 // SPV_AMD_shader_ballot 39 static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; 40 41 enum ShaderBallotAMD { 42 ShaderBallotBadAMD = 0, // Don't use 43 44 SwizzleInvocationsAMD = 1, 45 SwizzleInvocationsMaskedAMD = 2, 46 WriteInvocationAMD = 3, 47 MbcntAMD = 4, 48 49 ShaderBallotCountAMD 50 }; 51 52 // SPV_AMD_shader_trinary_minmax 53 static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax"; 54 55 enum ShaderTrinaryMinMaxAMD { 56 ShaderTrinaryMinMaxBadAMD = 0, // Don't use 57 58 FMin3AMD = 1, 59 UMin3AMD = 2, 60 SMin3AMD = 3, 61 FMax3AMD = 4, 62 UMax3AMD = 5, 63 SMax3AMD = 6, 64 FMid3AMD = 7, 65 UMid3AMD = 8, 66 SMid3AMD = 9, 67 68 ShaderTrinaryMinMaxCountAMD 69 }; 70 71 // SPV_AMD_shader_explicit_vertex_parameter 72 static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; 73 74 enum ShaderExplicitVertexParameterAMD { 75 ShaderExplicitVertexParameterBadAMD = 0, // Don't use 76 77 InterpolateAtVertexAMD = 1, 78 79 ShaderExplicitVertexParameterCountAMD 80 }; 81 82 // SPV_AMD_gcn_shader 83 static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader"; 84 85 enum GcnShaderAMD { 86 GcnShaderBadAMD = 0, // Don't use 87 88 CubeFaceIndexAMD = 1, 89 CubeFaceCoordAMD = 2, 90 TimeAMD = 3, 91 92 GcnShaderCountAMD 93 }; 94 95 // SPV_AMD_gpu_shader_half_float 96 static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; 97 98 // SPV_AMD_texture_gather_bias_lod 99 static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod"; 100 101 // SPV_AMD_gpu_shader_int16 102 static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16"; 103 104 // SPV_AMD_shader_image_load_store_lod 105 static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod"; 106 107 // SPV_AMD_shader_fragment_mask 108 static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask"; 109 110 #endif // #ifndef GLSLextAMD_H 111