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 30enum BuiltIn; 31enum Capability; 32enum Decoration; 33enum Op; 34 35static const int GLSLextAMDVersion = 100; 36static const int GLSLextAMDRevision = 6; 37 38// SPV_AMD_shader_ballot 39static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; 40 41enum 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 53static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax"; 54 55enum 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 72static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; 73 74enum ShaderExplicitVertexParameterAMD { 75 ShaderExplicitVertexParameterBadAMD = 0, // Don't use 76 77 InterpolateAtVertexAMD = 1, 78 79 ShaderExplicitVertexParameterCountAMD 80}; 81 82// SPV_AMD_gcn_shader 83static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader"; 84 85enum 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 96static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; 97 98// SPV_AMD_texture_gather_bias_lod 99static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod"; 100 101// SPV_AMD_gpu_shader_int16 102static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16"; 103 104// SPV_AMD_shader_image_load_store_lod 105static 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 108static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask"; 109 110#endif // #ifndef GLSLextAMD_H 111