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