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 static const int GLSLextAMDVersion = 100; 31 static const int GLSLextAMDRevision = 7; 32 33 // SPV_AMD_shader_ballot 34 static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; 35 36 enum ShaderBallotAMD { 37 ShaderBallotBadAMD = 0, // Don't use 38 39 SwizzleInvocationsAMD = 1, 40 SwizzleInvocationsMaskedAMD = 2, 41 WriteInvocationAMD = 3, 42 MbcntAMD = 4, 43 44 ShaderBallotCountAMD 45 }; 46 47 // SPV_AMD_shader_trinary_minmax 48 static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax"; 49 50 enum ShaderTrinaryMinMaxAMD { 51 ShaderTrinaryMinMaxBadAMD = 0, // Don't use 52 53 FMin3AMD = 1, 54 UMin3AMD = 2, 55 SMin3AMD = 3, 56 FMax3AMD = 4, 57 UMax3AMD = 5, 58 SMax3AMD = 6, 59 FMid3AMD = 7, 60 UMid3AMD = 8, 61 SMid3AMD = 9, 62 63 ShaderTrinaryMinMaxCountAMD 64 }; 65 66 // SPV_AMD_shader_explicit_vertex_parameter 67 static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; 68 69 enum ShaderExplicitVertexParameterAMD { 70 ShaderExplicitVertexParameterBadAMD = 0, // Don't use 71 72 InterpolateAtVertexAMD = 1, 73 74 ShaderExplicitVertexParameterCountAMD 75 }; 76 77 // SPV_AMD_gcn_shader 78 static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader"; 79 80 enum GcnShaderAMD { 81 GcnShaderBadAMD = 0, // Don't use 82 83 CubeFaceIndexAMD = 1, 84 CubeFaceCoordAMD = 2, 85 TimeAMD = 3, 86 87 GcnShaderCountAMD 88 }; 89 90 // SPV_AMD_gpu_shader_half_float 91 static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; 92 93 // SPV_AMD_texture_gather_bias_lod 94 static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod"; 95 96 // SPV_AMD_gpu_shader_int16 97 static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16"; 98 99 // SPV_AMD_shader_image_load_store_lod 100 static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod"; 101 102 // SPV_AMD_shader_fragment_mask 103 static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask"; 104 105 // SPV_AMD_gpu_shader_half_float_fetch 106 static const char* const E_SPV_AMD_gpu_shader_half_float_fetch = "SPV_AMD_gpu_shader_half_float_fetch"; 107 108 #endif // #ifndef GLSLextAMD_H 109