Update Vulkan headers. Hack around another validation check (which I beleive to be bugged).
This commit is contained in:
parent
aa964ea2e5
commit
a2b49fd0e0
16 changed files with 1642 additions and 1042 deletions
|
@ -168,7 +168,7 @@ VulkanContext::~VulkanContext() {
|
||||||
void TransitionToPresent(VkCommandBuffer cmd, VkImage image) {
|
void TransitionToPresent(VkCommandBuffer cmd, VkImage image) {
|
||||||
VkImageMemoryBarrier prePresentBarrier = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER };
|
VkImageMemoryBarrier prePresentBarrier = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER };
|
||||||
prePresentBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
prePresentBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
||||||
prePresentBarrier.dstAccessMask = 0;
|
prePresentBarrier.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT;
|
||||||
prePresentBarrier.oldLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
prePresentBarrier.oldLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
||||||
prePresentBarrier.newLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
|
prePresentBarrier.newLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
|
||||||
prePresentBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
prePresentBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||||
|
@ -185,7 +185,7 @@ void TransitionToPresent(VkCommandBuffer cmd, VkImage image) {
|
||||||
|
|
||||||
void TransitionFromPresent(VkCommandBuffer cmd, VkImage image) {
|
void TransitionFromPresent(VkCommandBuffer cmd, VkImage image) {
|
||||||
VkImageMemoryBarrier prePresentBarrier = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER };
|
VkImageMemoryBarrier prePresentBarrier = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER };
|
||||||
prePresentBarrier.srcAccessMask = 0;
|
prePresentBarrier.srcAccessMask = VK_ACCESS_MEMORY_READ_BIT;
|
||||||
prePresentBarrier.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
prePresentBarrier.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
||||||
prePresentBarrier.oldLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
|
prePresentBarrier.oldLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
|
||||||
prePresentBarrier.newLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
prePresentBarrier.newLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
|
||||||
|
@ -1282,39 +1282,43 @@ void TransitionImageLayout(VkCommandBuffer cmd, VkImage image, VkImageAspectFlag
|
||||||
image_memory_barrier.subresourceRange.levelCount = 1;
|
image_memory_barrier.subresourceRange.levelCount = 1;
|
||||||
image_memory_barrier.subresourceRange.layerCount = 1;
|
image_memory_barrier.subresourceRange.layerCount = 1;
|
||||||
if (old_image_layout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) {
|
if (old_image_layout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) {
|
||||||
image_memory_barrier.srcAccessMask = VK_ACCESS_MEMORY_READ_BIT;
|
image_memory_barrier.srcAccessMask |= VK_ACCESS_MEMORY_READ_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_image_layout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
|
if (old_image_layout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
|
||||||
image_memory_barrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
image_memory_barrier.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) {
|
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) {
|
||||||
if (old_image_layout == VK_IMAGE_LAYOUT_PREINITIALIZED) {
|
if (old_image_layout == VK_IMAGE_LAYOUT_PREINITIALIZED) {
|
||||||
image_memory_barrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT;
|
image_memory_barrier.srcAccessMask |= VK_ACCESS_HOST_WRITE_BIT;
|
||||||
}
|
}
|
||||||
image_memory_barrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
|
image_memory_barrier.dstAccessMask |= VK_ACCESS_TRANSFER_READ_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) {
|
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) {
|
||||||
/* Make sure anything that was copying from this image has completed */
|
/* Make sure anything that was copying from this image has completed */
|
||||||
image_memory_barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
|
image_memory_barrier.dstAccessMask |= VK_ACCESS_TRANSFER_WRITE_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new_image_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) {
|
if (new_image_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) {
|
||||||
/* Make sure any Copy or CPU writes to image are flushed */
|
/* Make sure any Copy or CPU writes to image are flushed */
|
||||||
if (old_image_layout != VK_IMAGE_LAYOUT_UNDEFINED) {
|
if (old_image_layout != VK_IMAGE_LAYOUT_UNDEFINED) {
|
||||||
image_memory_barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
|
image_memory_barrier.srcAccessMask |= VK_ACCESS_TRANSFER_WRITE_BIT;
|
||||||
}
|
}
|
||||||
image_memory_barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
|
image_memory_barrier.dstAccessMask |= VK_ACCESS_SHADER_READ_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new_image_layout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
|
if (new_image_layout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
|
||||||
image_memory_barrier.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
|
image_memory_barrier.dstAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new_image_layout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) {
|
if (new_image_layout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) {
|
||||||
image_memory_barrier.dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
|
image_memory_barrier.dstAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (new_image_layout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) {
|
||||||
|
image_memory_barrier.dstAccessMask |= VK_ACCESS_MEMORY_READ_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
|
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
#include "GPU/Vulkan/ShaderManagerVulkan.h"
|
#include "GPU/Vulkan/ShaderManagerVulkan.h"
|
||||||
#include "GPU/Vulkan/VulkanUtil.h"
|
#include "GPU/Vulkan/VulkanUtil.h"
|
||||||
|
|
||||||
const VkFormat framebufFormat = VK_FORMAT_R8G8B8A8_UNORM;
|
const VkFormat framebufFormat = VK_FORMAT_B8G8R8A8_UNORM;
|
||||||
|
|
||||||
static const char tex_fs[] = R"(#version 400
|
static const char tex_fs[] = R"(#version 400
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
|
|
@ -131,8 +131,9 @@ static VkBool32 VKAPI_CALL Vulkan_Dbg(VkDebugReportFlagsEXT msgFlags, VkDebugRep
|
||||||
return false;
|
return false;
|
||||||
if (msgCode == 7 && startsWith(pMsg, "You cannot transition the layout"))
|
if (msgCode == 7 && startsWith(pMsg, "You cannot transition the layout"))
|
||||||
return false;
|
return false;
|
||||||
//if (msgCode == 43 && startsWith(pMsg, "At Draw time the active render"))
|
// This seems like a bogus result when submitting two command buffers in one go, one creating the image, the other one using it.
|
||||||
// return false;
|
if (msgCode == 6 && startsWith(pMsg, "Cannot submit cmd buffer using image"))
|
||||||
|
return false;
|
||||||
if (msgCode == 44 && startsWith(pMsg, "At Draw time the active render"))
|
if (msgCode == 44 && startsWith(pMsg, "At Draw time the active render"))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#define GLSLstd450_H
|
#define GLSLstd450_H
|
||||||
|
|
||||||
static const int GLSLstd450Version = 100;
|
static const int GLSLstd450Version = 100;
|
||||||
static const int GLSLstd450Revision = 1;
|
static const int GLSLstd450Revision = 3;
|
||||||
|
|
||||||
enum GLSLstd450 {
|
enum GLSLstd450 {
|
||||||
GLSLstd450Bad = 0, // Don't use
|
GLSLstd450Bad = 0, // Don't use
|
||||||
|
|
|
@ -2,24 +2,17 @@
|
||||||
* Copyright (c) 2015-2016 Valve Corporation
|
* Copyright (c) 2015-2016 Valve Corporation
|
||||||
* Copyright (c) 2015-2016 LunarG, Inc.
|
* Copyright (c) 2015-2016 LunarG, Inc.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* of this software and/or associated documentation files (the "Materials"), to
|
* you may not use this file except in compliance with the License.
|
||||||
* deal in the Materials without restriction, including without limitation the
|
* You may obtain a copy of the License at
|
||||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
* sell copies of the Materials, and to permit persons to whom the Materials are
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
*
|
||||||
* The above copyright notice(s) and this permission notice shall be included in
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* all copies or substantial portions of the Materials.
|
|
||||||
*
|
*
|
||||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
*
|
* See the License for the specific language governing permissions and
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
* limitations under the License.
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
*
|
*
|
||||||
* Author: Cody Northrop <cody@lunarg.com>
|
* Author: Cody Northrop <cody@lunarg.com>
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -50,12 +50,12 @@
|
||||||
|
|
||||||
typedef unsigned int SpvId;
|
typedef unsigned int SpvId;
|
||||||
|
|
||||||
#define SPV_VERSION 0x10000
|
#define SPV_VERSION 0x10100
|
||||||
#define SPV_REVISION 3
|
#define SPV_REVISION 4
|
||||||
|
|
||||||
static const unsigned int SpvMagicNumber = 0x07230203;
|
static const unsigned int SpvMagicNumber = 0x07230203;
|
||||||
static const unsigned int SpvVersion = 0x00010000;
|
static const unsigned int SpvVersion = 0x00010100;
|
||||||
static const unsigned int SpvRevision = 3;
|
static const unsigned int SpvRevision = 4;
|
||||||
static const unsigned int SpvOpCodeMask = 0xffff;
|
static const unsigned int SpvOpCodeMask = 0xffff;
|
||||||
static const unsigned int SpvWordCountShift = 16;
|
static const unsigned int SpvWordCountShift = 16;
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@ typedef enum SpvSourceLanguage_ {
|
||||||
SpvSourceLanguageGLSL = 2,
|
SpvSourceLanguageGLSL = 2,
|
||||||
SpvSourceLanguageOpenCL_C = 3,
|
SpvSourceLanguageOpenCL_C = 3,
|
||||||
SpvSourceLanguageOpenCL_CPP = 4,
|
SpvSourceLanguageOpenCL_CPP = 4,
|
||||||
|
SpvSourceLanguageMax = 0x7fffffff,
|
||||||
} SpvSourceLanguage;
|
} SpvSourceLanguage;
|
||||||
|
|
||||||
typedef enum SpvExecutionModel_ {
|
typedef enum SpvExecutionModel_ {
|
||||||
|
@ -75,18 +76,21 @@ typedef enum SpvExecutionModel_ {
|
||||||
SpvExecutionModelFragment = 4,
|
SpvExecutionModelFragment = 4,
|
||||||
SpvExecutionModelGLCompute = 5,
|
SpvExecutionModelGLCompute = 5,
|
||||||
SpvExecutionModelKernel = 6,
|
SpvExecutionModelKernel = 6,
|
||||||
|
SpvExecutionModelMax = 0x7fffffff,
|
||||||
} SpvExecutionModel;
|
} SpvExecutionModel;
|
||||||
|
|
||||||
typedef enum SpvAddressingModel_ {
|
typedef enum SpvAddressingModel_ {
|
||||||
SpvAddressingModelLogical = 0,
|
SpvAddressingModelLogical = 0,
|
||||||
SpvAddressingModelPhysical32 = 1,
|
SpvAddressingModelPhysical32 = 1,
|
||||||
SpvAddressingModelPhysical64 = 2,
|
SpvAddressingModelPhysical64 = 2,
|
||||||
|
SpvAddressingModelMax = 0x7fffffff,
|
||||||
} SpvAddressingModel;
|
} SpvAddressingModel;
|
||||||
|
|
||||||
typedef enum SpvMemoryModel_ {
|
typedef enum SpvMemoryModel_ {
|
||||||
SpvMemoryModelSimple = 0,
|
SpvMemoryModelSimple = 0,
|
||||||
SpvMemoryModelGLSL450 = 1,
|
SpvMemoryModelGLSL450 = 1,
|
||||||
SpvMemoryModelOpenCL = 2,
|
SpvMemoryModelOpenCL = 2,
|
||||||
|
SpvMemoryModelMax = 0x7fffffff,
|
||||||
} SpvMemoryModel;
|
} SpvMemoryModel;
|
||||||
|
|
||||||
typedef enum SpvExecutionMode_ {
|
typedef enum SpvExecutionMode_ {
|
||||||
|
@ -121,6 +125,11 @@ typedef enum SpvExecutionMode_ {
|
||||||
SpvExecutionModeOutputTriangleStrip = 29,
|
SpvExecutionModeOutputTriangleStrip = 29,
|
||||||
SpvExecutionModeVecTypeHint = 30,
|
SpvExecutionModeVecTypeHint = 30,
|
||||||
SpvExecutionModeContractionOff = 31,
|
SpvExecutionModeContractionOff = 31,
|
||||||
|
SpvExecutionModeInitializer = 33,
|
||||||
|
SpvExecutionModeFinalizer = 34,
|
||||||
|
SpvExecutionModeSubgroupSize = 35,
|
||||||
|
SpvExecutionModeSubgroupsPerWorkgroup = 36,
|
||||||
|
SpvExecutionModeMax = 0x7fffffff,
|
||||||
} SpvExecutionMode;
|
} SpvExecutionMode;
|
||||||
|
|
||||||
typedef enum SpvStorageClass_ {
|
typedef enum SpvStorageClass_ {
|
||||||
|
@ -136,6 +145,7 @@ typedef enum SpvStorageClass_ {
|
||||||
SpvStorageClassPushConstant = 9,
|
SpvStorageClassPushConstant = 9,
|
||||||
SpvStorageClassAtomicCounter = 10,
|
SpvStorageClassAtomicCounter = 10,
|
||||||
SpvStorageClassImage = 11,
|
SpvStorageClassImage = 11,
|
||||||
|
SpvStorageClassMax = 0x7fffffff,
|
||||||
} SpvStorageClass;
|
} SpvStorageClass;
|
||||||
|
|
||||||
typedef enum SpvDim_ {
|
typedef enum SpvDim_ {
|
||||||
|
@ -146,6 +156,7 @@ typedef enum SpvDim_ {
|
||||||
SpvDimRect = 4,
|
SpvDimRect = 4,
|
||||||
SpvDimBuffer = 5,
|
SpvDimBuffer = 5,
|
||||||
SpvDimSubpassData = 6,
|
SpvDimSubpassData = 6,
|
||||||
|
SpvDimMax = 0x7fffffff,
|
||||||
} SpvDim;
|
} SpvDim;
|
||||||
|
|
||||||
typedef enum SpvSamplerAddressingMode_ {
|
typedef enum SpvSamplerAddressingMode_ {
|
||||||
|
@ -154,11 +165,13 @@ typedef enum SpvSamplerAddressingMode_ {
|
||||||
SpvSamplerAddressingModeClamp = 2,
|
SpvSamplerAddressingModeClamp = 2,
|
||||||
SpvSamplerAddressingModeRepeat = 3,
|
SpvSamplerAddressingModeRepeat = 3,
|
||||||
SpvSamplerAddressingModeRepeatMirrored = 4,
|
SpvSamplerAddressingModeRepeatMirrored = 4,
|
||||||
|
SpvSamplerAddressingModeMax = 0x7fffffff,
|
||||||
} SpvSamplerAddressingMode;
|
} SpvSamplerAddressingMode;
|
||||||
|
|
||||||
typedef enum SpvSamplerFilterMode_ {
|
typedef enum SpvSamplerFilterMode_ {
|
||||||
SpvSamplerFilterModeNearest = 0,
|
SpvSamplerFilterModeNearest = 0,
|
||||||
SpvSamplerFilterModeLinear = 1,
|
SpvSamplerFilterModeLinear = 1,
|
||||||
|
SpvSamplerFilterModeMax = 0x7fffffff,
|
||||||
} SpvSamplerFilterMode;
|
} SpvSamplerFilterMode;
|
||||||
|
|
||||||
typedef enum SpvImageFormat_ {
|
typedef enum SpvImageFormat_ {
|
||||||
|
@ -202,6 +215,7 @@ typedef enum SpvImageFormat_ {
|
||||||
SpvImageFormatRg8ui = 37,
|
SpvImageFormatRg8ui = 37,
|
||||||
SpvImageFormatR16ui = 38,
|
SpvImageFormatR16ui = 38,
|
||||||
SpvImageFormatR8ui = 39,
|
SpvImageFormatR8ui = 39,
|
||||||
|
SpvImageFormatMax = 0x7fffffff,
|
||||||
} SpvImageFormat;
|
} SpvImageFormat;
|
||||||
|
|
||||||
typedef enum SpvImageChannelOrder_ {
|
typedef enum SpvImageChannelOrder_ {
|
||||||
|
@ -224,6 +238,8 @@ typedef enum SpvImageChannelOrder_ {
|
||||||
SpvImageChannelOrdersRGBx = 16,
|
SpvImageChannelOrdersRGBx = 16,
|
||||||
SpvImageChannelOrdersRGBA = 17,
|
SpvImageChannelOrdersRGBA = 17,
|
||||||
SpvImageChannelOrdersBGRA = 18,
|
SpvImageChannelOrdersBGRA = 18,
|
||||||
|
SpvImageChannelOrderABGR = 19,
|
||||||
|
SpvImageChannelOrderMax = 0x7fffffff,
|
||||||
} SpvImageChannelOrder;
|
} SpvImageChannelOrder;
|
||||||
|
|
||||||
typedef enum SpvImageChannelDataType_ {
|
typedef enum SpvImageChannelDataType_ {
|
||||||
|
@ -244,6 +260,7 @@ typedef enum SpvImageChannelDataType_ {
|
||||||
SpvImageChannelDataTypeFloat = 14,
|
SpvImageChannelDataTypeFloat = 14,
|
||||||
SpvImageChannelDataTypeUnormInt24 = 15,
|
SpvImageChannelDataTypeUnormInt24 = 15,
|
||||||
SpvImageChannelDataTypeUnormInt101010_2 = 16,
|
SpvImageChannelDataTypeUnormInt101010_2 = 16,
|
||||||
|
SpvImageChannelDataTypeMax = 0x7fffffff,
|
||||||
} SpvImageChannelDataType;
|
} SpvImageChannelDataType;
|
||||||
|
|
||||||
typedef enum SpvImageOperandsShift_ {
|
typedef enum SpvImageOperandsShift_ {
|
||||||
|
@ -255,6 +272,7 @@ typedef enum SpvImageOperandsShift_ {
|
||||||
SpvImageOperandsConstOffsetsShift = 5,
|
SpvImageOperandsConstOffsetsShift = 5,
|
||||||
SpvImageOperandsSampleShift = 6,
|
SpvImageOperandsSampleShift = 6,
|
||||||
SpvImageOperandsMinLodShift = 7,
|
SpvImageOperandsMinLodShift = 7,
|
||||||
|
SpvImageOperandsMax = 0x7fffffff,
|
||||||
} SpvImageOperandsShift;
|
} SpvImageOperandsShift;
|
||||||
|
|
||||||
typedef enum SpvImageOperandsMask_ {
|
typedef enum SpvImageOperandsMask_ {
|
||||||
|
@ -275,6 +293,7 @@ typedef enum SpvFPFastMathModeShift_ {
|
||||||
SpvFPFastMathModeNSZShift = 2,
|
SpvFPFastMathModeNSZShift = 2,
|
||||||
SpvFPFastMathModeAllowRecipShift = 3,
|
SpvFPFastMathModeAllowRecipShift = 3,
|
||||||
SpvFPFastMathModeFastShift = 4,
|
SpvFPFastMathModeFastShift = 4,
|
||||||
|
SpvFPFastMathModeMax = 0x7fffffff,
|
||||||
} SpvFPFastMathModeShift;
|
} SpvFPFastMathModeShift;
|
||||||
|
|
||||||
typedef enum SpvFPFastMathModeMask_ {
|
typedef enum SpvFPFastMathModeMask_ {
|
||||||
|
@ -291,17 +310,20 @@ typedef enum SpvFPRoundingMode_ {
|
||||||
SpvFPRoundingModeRTZ = 1,
|
SpvFPRoundingModeRTZ = 1,
|
||||||
SpvFPRoundingModeRTP = 2,
|
SpvFPRoundingModeRTP = 2,
|
||||||
SpvFPRoundingModeRTN = 3,
|
SpvFPRoundingModeRTN = 3,
|
||||||
|
SpvFPRoundingModeMax = 0x7fffffff,
|
||||||
} SpvFPRoundingMode;
|
} SpvFPRoundingMode;
|
||||||
|
|
||||||
typedef enum SpvLinkageType_ {
|
typedef enum SpvLinkageType_ {
|
||||||
SpvLinkageTypeExport = 0,
|
SpvLinkageTypeExport = 0,
|
||||||
SpvLinkageTypeImport = 1,
|
SpvLinkageTypeImport = 1,
|
||||||
|
SpvLinkageTypeMax = 0x7fffffff,
|
||||||
} SpvLinkageType;
|
} SpvLinkageType;
|
||||||
|
|
||||||
typedef enum SpvAccessQualifier_ {
|
typedef enum SpvAccessQualifier_ {
|
||||||
SpvAccessQualifierReadOnly = 0,
|
SpvAccessQualifierReadOnly = 0,
|
||||||
SpvAccessQualifierWriteOnly = 1,
|
SpvAccessQualifierWriteOnly = 1,
|
||||||
SpvAccessQualifierReadWrite = 2,
|
SpvAccessQualifierReadWrite = 2,
|
||||||
|
SpvAccessQualifierMax = 0x7fffffff,
|
||||||
} SpvAccessQualifier;
|
} SpvAccessQualifier;
|
||||||
|
|
||||||
typedef enum SpvFunctionParameterAttribute_ {
|
typedef enum SpvFunctionParameterAttribute_ {
|
||||||
|
@ -313,6 +335,7 @@ typedef enum SpvFunctionParameterAttribute_ {
|
||||||
SpvFunctionParameterAttributeNoCapture = 5,
|
SpvFunctionParameterAttributeNoCapture = 5,
|
||||||
SpvFunctionParameterAttributeNoWrite = 6,
|
SpvFunctionParameterAttributeNoWrite = 6,
|
||||||
SpvFunctionParameterAttributeNoReadWrite = 7,
|
SpvFunctionParameterAttributeNoReadWrite = 7,
|
||||||
|
SpvFunctionParameterAttributeMax = 0x7fffffff,
|
||||||
} SpvFunctionParameterAttribute;
|
} SpvFunctionParameterAttribute;
|
||||||
|
|
||||||
typedef enum SpvDecoration_ {
|
typedef enum SpvDecoration_ {
|
||||||
|
@ -359,6 +382,8 @@ typedef enum SpvDecoration_ {
|
||||||
SpvDecorationNoContraction = 42,
|
SpvDecorationNoContraction = 42,
|
||||||
SpvDecorationInputAttachmentIndex = 43,
|
SpvDecorationInputAttachmentIndex = 43,
|
||||||
SpvDecorationAlignment = 44,
|
SpvDecorationAlignment = 44,
|
||||||
|
SpvDecorationMaxByteOffset = 45,
|
||||||
|
SpvDecorationMax = 0x7fffffff,
|
||||||
} SpvDecoration;
|
} SpvDecoration;
|
||||||
|
|
||||||
typedef enum SpvBuiltIn_ {
|
typedef enum SpvBuiltIn_ {
|
||||||
|
@ -403,11 +428,21 @@ typedef enum SpvBuiltIn_ {
|
||||||
SpvBuiltInSubgroupLocalInvocationId = 41,
|
SpvBuiltInSubgroupLocalInvocationId = 41,
|
||||||
SpvBuiltInVertexIndex = 42,
|
SpvBuiltInVertexIndex = 42,
|
||||||
SpvBuiltInInstanceIndex = 43,
|
SpvBuiltInInstanceIndex = 43,
|
||||||
|
SpvBuiltInSubgroupEqMaskKHR = 4416,
|
||||||
|
SpvBuiltInSubgroupGeMaskKHR = 4417,
|
||||||
|
SpvBuiltInSubgroupGtMaskKHR = 4418,
|
||||||
|
SpvBuiltInSubgroupLeMaskKHR = 4419,
|
||||||
|
SpvBuiltInSubgroupLtMaskKHR = 4420,
|
||||||
|
SpvBuiltInBaseVertex = 4424,
|
||||||
|
SpvBuiltInBaseInstance = 4425,
|
||||||
|
SpvBuiltInDrawIndex = 4426,
|
||||||
|
SpvBuiltInMax = 0x7fffffff,
|
||||||
} SpvBuiltIn;
|
} SpvBuiltIn;
|
||||||
|
|
||||||
typedef enum SpvSelectionControlShift_ {
|
typedef enum SpvSelectionControlShift_ {
|
||||||
SpvSelectionControlFlattenShift = 0,
|
SpvSelectionControlFlattenShift = 0,
|
||||||
SpvSelectionControlDontFlattenShift = 1,
|
SpvSelectionControlDontFlattenShift = 1,
|
||||||
|
SpvSelectionControlMax = 0x7fffffff,
|
||||||
} SpvSelectionControlShift;
|
} SpvSelectionControlShift;
|
||||||
|
|
||||||
typedef enum SpvSelectionControlMask_ {
|
typedef enum SpvSelectionControlMask_ {
|
||||||
|
@ -419,12 +454,17 @@ typedef enum SpvSelectionControlMask_ {
|
||||||
typedef enum SpvLoopControlShift_ {
|
typedef enum SpvLoopControlShift_ {
|
||||||
SpvLoopControlUnrollShift = 0,
|
SpvLoopControlUnrollShift = 0,
|
||||||
SpvLoopControlDontUnrollShift = 1,
|
SpvLoopControlDontUnrollShift = 1,
|
||||||
|
SpvLoopControlDependencyInfiniteShift = 2,
|
||||||
|
SpvLoopControlDependencyLengthShift = 3,
|
||||||
|
SpvLoopControlMax = 0x7fffffff,
|
||||||
} SpvLoopControlShift;
|
} SpvLoopControlShift;
|
||||||
|
|
||||||
typedef enum SpvLoopControlMask_ {
|
typedef enum SpvLoopControlMask_ {
|
||||||
SpvLoopControlMaskNone = 0,
|
SpvLoopControlMaskNone = 0,
|
||||||
SpvLoopControlUnrollMask = 0x00000001,
|
SpvLoopControlUnrollMask = 0x00000001,
|
||||||
SpvLoopControlDontUnrollMask = 0x00000002,
|
SpvLoopControlDontUnrollMask = 0x00000002,
|
||||||
|
SpvLoopControlDependencyInfiniteMask = 0x00000004,
|
||||||
|
SpvLoopControlDependencyLengthMask = 0x00000008,
|
||||||
} SpvLoopControlMask;
|
} SpvLoopControlMask;
|
||||||
|
|
||||||
typedef enum SpvFunctionControlShift_ {
|
typedef enum SpvFunctionControlShift_ {
|
||||||
|
@ -432,6 +472,7 @@ typedef enum SpvFunctionControlShift_ {
|
||||||
SpvFunctionControlDontInlineShift = 1,
|
SpvFunctionControlDontInlineShift = 1,
|
||||||
SpvFunctionControlPureShift = 2,
|
SpvFunctionControlPureShift = 2,
|
||||||
SpvFunctionControlConstShift = 3,
|
SpvFunctionControlConstShift = 3,
|
||||||
|
SpvFunctionControlMax = 0x7fffffff,
|
||||||
} SpvFunctionControlShift;
|
} SpvFunctionControlShift;
|
||||||
|
|
||||||
typedef enum SpvFunctionControlMask_ {
|
typedef enum SpvFunctionControlMask_ {
|
||||||
|
@ -453,6 +494,7 @@ typedef enum SpvMemorySemanticsShift_ {
|
||||||
SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
|
SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
|
||||||
SpvMemorySemanticsAtomicCounterMemoryShift = 10,
|
SpvMemorySemanticsAtomicCounterMemoryShift = 10,
|
||||||
SpvMemorySemanticsImageMemoryShift = 11,
|
SpvMemorySemanticsImageMemoryShift = 11,
|
||||||
|
SpvMemorySemanticsMax = 0x7fffffff,
|
||||||
} SpvMemorySemanticsShift;
|
} SpvMemorySemanticsShift;
|
||||||
|
|
||||||
typedef enum SpvMemorySemanticsMask_ {
|
typedef enum SpvMemorySemanticsMask_ {
|
||||||
|
@ -473,6 +515,7 @@ typedef enum SpvMemoryAccessShift_ {
|
||||||
SpvMemoryAccessVolatileShift = 0,
|
SpvMemoryAccessVolatileShift = 0,
|
||||||
SpvMemoryAccessAlignedShift = 1,
|
SpvMemoryAccessAlignedShift = 1,
|
||||||
SpvMemoryAccessNontemporalShift = 2,
|
SpvMemoryAccessNontemporalShift = 2,
|
||||||
|
SpvMemoryAccessMax = 0x7fffffff,
|
||||||
} SpvMemoryAccessShift;
|
} SpvMemoryAccessShift;
|
||||||
|
|
||||||
typedef enum SpvMemoryAccessMask_ {
|
typedef enum SpvMemoryAccessMask_ {
|
||||||
|
@ -488,22 +531,26 @@ typedef enum SpvScope_ {
|
||||||
SpvScopeWorkgroup = 2,
|
SpvScopeWorkgroup = 2,
|
||||||
SpvScopeSubgroup = 3,
|
SpvScopeSubgroup = 3,
|
||||||
SpvScopeInvocation = 4,
|
SpvScopeInvocation = 4,
|
||||||
|
SpvScopeMax = 0x7fffffff,
|
||||||
} SpvScope;
|
} SpvScope;
|
||||||
|
|
||||||
typedef enum SpvGroupOperation_ {
|
typedef enum SpvGroupOperation_ {
|
||||||
SpvGroupOperationReduce = 0,
|
SpvGroupOperationReduce = 0,
|
||||||
SpvGroupOperationInclusiveScan = 1,
|
SpvGroupOperationInclusiveScan = 1,
|
||||||
SpvGroupOperationExclusiveScan = 2,
|
SpvGroupOperationExclusiveScan = 2,
|
||||||
|
SpvGroupOperationMax = 0x7fffffff,
|
||||||
} SpvGroupOperation;
|
} SpvGroupOperation;
|
||||||
|
|
||||||
typedef enum SpvKernelEnqueueFlags_ {
|
typedef enum SpvKernelEnqueueFlags_ {
|
||||||
SpvKernelEnqueueFlagsNoWait = 0,
|
SpvKernelEnqueueFlagsNoWait = 0,
|
||||||
SpvKernelEnqueueFlagsWaitKernel = 1,
|
SpvKernelEnqueueFlagsWaitKernel = 1,
|
||||||
SpvKernelEnqueueFlagsWaitWorkGroup = 2,
|
SpvKernelEnqueueFlagsWaitWorkGroup = 2,
|
||||||
|
SpvKernelEnqueueFlagsMax = 0x7fffffff,
|
||||||
} SpvKernelEnqueueFlags;
|
} SpvKernelEnqueueFlags;
|
||||||
|
|
||||||
typedef enum SpvKernelProfilingInfoShift_ {
|
typedef enum SpvKernelProfilingInfoShift_ {
|
||||||
SpvKernelProfilingInfoCmdExecTimeShift = 0,
|
SpvKernelProfilingInfoCmdExecTimeShift = 0,
|
||||||
|
SpvKernelProfilingInfoMax = 0x7fffffff,
|
||||||
} SpvKernelProfilingInfoShift;
|
} SpvKernelProfilingInfoShift;
|
||||||
|
|
||||||
typedef enum SpvKernelProfilingInfoMask_ {
|
typedef enum SpvKernelProfilingInfoMask_ {
|
||||||
|
@ -568,6 +615,12 @@ typedef enum SpvCapability_ {
|
||||||
SpvCapabilityStorageImageReadWithoutFormat = 55,
|
SpvCapabilityStorageImageReadWithoutFormat = 55,
|
||||||
SpvCapabilityStorageImageWriteWithoutFormat = 56,
|
SpvCapabilityStorageImageWriteWithoutFormat = 56,
|
||||||
SpvCapabilityMultiViewport = 57,
|
SpvCapabilityMultiViewport = 57,
|
||||||
|
SpvCapabilitySubgroupDispatch = 58,
|
||||||
|
SpvCapabilityNamedBarrier = 59,
|
||||||
|
SpvCapabilityPipeStorage = 60,
|
||||||
|
SpvCapabilitySubgroupBallotKHR = 4423,
|
||||||
|
SpvCapabilityDrawParameters = 4427,
|
||||||
|
SpvCapabilityMax = 0x7fffffff,
|
||||||
} SpvCapability;
|
} SpvCapability;
|
||||||
|
|
||||||
typedef enum SpvOp_ {
|
typedef enum SpvOp_ {
|
||||||
|
@ -865,6 +918,19 @@ typedef enum SpvOp_ {
|
||||||
SpvOpAtomicFlagTestAndSet = 318,
|
SpvOpAtomicFlagTestAndSet = 318,
|
||||||
SpvOpAtomicFlagClear = 319,
|
SpvOpAtomicFlagClear = 319,
|
||||||
SpvOpImageSparseRead = 320,
|
SpvOpImageSparseRead = 320,
|
||||||
|
SpvOpSizeOf = 321,
|
||||||
|
SpvOpTypePipeStorage = 322,
|
||||||
|
SpvOpConstantPipeStorage = 323,
|
||||||
|
SpvOpCreatePipeFromPipeStorage = 324,
|
||||||
|
SpvOpGetKernelLocalSizeForSubgroupCount = 325,
|
||||||
|
SpvOpGetKernelMaxNumSubgroups = 326,
|
||||||
|
SpvOpTypeNamedBarrier = 327,
|
||||||
|
SpvOpNamedBarrierInitialize = 328,
|
||||||
|
SpvOpMemoryNamedBarrier = 329,
|
||||||
|
SpvOpModuleProcessed = 330,
|
||||||
|
SpvOpSubgroupBallotKHR = 4421,
|
||||||
|
SpvOpSubgroupFirstInvocationKHR = 4422,
|
||||||
|
SpvOpMax = 0x7fffffff,
|
||||||
} SpvOp;
|
} SpvOp;
|
||||||
|
|
||||||
#endif // #ifndef spirv_H
|
#endif // #ifndef spirv_H
|
||||||
|
|
|
@ -46,12 +46,12 @@ namespace spv {
|
||||||
|
|
||||||
typedef unsigned int Id;
|
typedef unsigned int Id;
|
||||||
|
|
||||||
#define SPV_VERSION 0x10000
|
#define SPV_VERSION 0x10100
|
||||||
#define SPV_REVISION 3
|
#define SPV_REVISION 4
|
||||||
|
|
||||||
static const unsigned int MagicNumber = 0x07230203;
|
static const unsigned int MagicNumber = 0x07230203;
|
||||||
static const unsigned int Version = 0x00010000;
|
static const unsigned int Version = 0x00010100;
|
||||||
static const unsigned int Revision = 3;
|
static const unsigned int Revision = 4;
|
||||||
static const unsigned int OpCodeMask = 0xffff;
|
static const unsigned int OpCodeMask = 0xffff;
|
||||||
static const unsigned int WordCountShift = 16;
|
static const unsigned int WordCountShift = 16;
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ enum SourceLanguage {
|
||||||
SourceLanguageGLSL = 2,
|
SourceLanguageGLSL = 2,
|
||||||
SourceLanguageOpenCL_C = 3,
|
SourceLanguageOpenCL_C = 3,
|
||||||
SourceLanguageOpenCL_CPP = 4,
|
SourceLanguageOpenCL_CPP = 4,
|
||||||
|
SourceLanguageMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ExecutionModel {
|
enum ExecutionModel {
|
||||||
|
@ -71,18 +72,21 @@ enum ExecutionModel {
|
||||||
ExecutionModelFragment = 4,
|
ExecutionModelFragment = 4,
|
||||||
ExecutionModelGLCompute = 5,
|
ExecutionModelGLCompute = 5,
|
||||||
ExecutionModelKernel = 6,
|
ExecutionModelKernel = 6,
|
||||||
|
ExecutionModelMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AddressingModel {
|
enum AddressingModel {
|
||||||
AddressingModelLogical = 0,
|
AddressingModelLogical = 0,
|
||||||
AddressingModelPhysical32 = 1,
|
AddressingModelPhysical32 = 1,
|
||||||
AddressingModelPhysical64 = 2,
|
AddressingModelPhysical64 = 2,
|
||||||
|
AddressingModelMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MemoryModel {
|
enum MemoryModel {
|
||||||
MemoryModelSimple = 0,
|
MemoryModelSimple = 0,
|
||||||
MemoryModelGLSL450 = 1,
|
MemoryModelGLSL450 = 1,
|
||||||
MemoryModelOpenCL = 2,
|
MemoryModelOpenCL = 2,
|
||||||
|
MemoryModelMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ExecutionMode {
|
enum ExecutionMode {
|
||||||
|
@ -117,6 +121,11 @@ enum ExecutionMode {
|
||||||
ExecutionModeOutputTriangleStrip = 29,
|
ExecutionModeOutputTriangleStrip = 29,
|
||||||
ExecutionModeVecTypeHint = 30,
|
ExecutionModeVecTypeHint = 30,
|
||||||
ExecutionModeContractionOff = 31,
|
ExecutionModeContractionOff = 31,
|
||||||
|
ExecutionModeInitializer = 33,
|
||||||
|
ExecutionModeFinalizer = 34,
|
||||||
|
ExecutionModeSubgroupSize = 35,
|
||||||
|
ExecutionModeSubgroupsPerWorkgroup = 36,
|
||||||
|
ExecutionModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum StorageClass {
|
enum StorageClass {
|
||||||
|
@ -132,6 +141,7 @@ enum StorageClass {
|
||||||
StorageClassPushConstant = 9,
|
StorageClassPushConstant = 9,
|
||||||
StorageClassAtomicCounter = 10,
|
StorageClassAtomicCounter = 10,
|
||||||
StorageClassImage = 11,
|
StorageClassImage = 11,
|
||||||
|
StorageClassMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Dim {
|
enum Dim {
|
||||||
|
@ -142,6 +152,7 @@ enum Dim {
|
||||||
DimRect = 4,
|
DimRect = 4,
|
||||||
DimBuffer = 5,
|
DimBuffer = 5,
|
||||||
DimSubpassData = 6,
|
DimSubpassData = 6,
|
||||||
|
DimMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SamplerAddressingMode {
|
enum SamplerAddressingMode {
|
||||||
|
@ -150,11 +161,13 @@ enum SamplerAddressingMode {
|
||||||
SamplerAddressingModeClamp = 2,
|
SamplerAddressingModeClamp = 2,
|
||||||
SamplerAddressingModeRepeat = 3,
|
SamplerAddressingModeRepeat = 3,
|
||||||
SamplerAddressingModeRepeatMirrored = 4,
|
SamplerAddressingModeRepeatMirrored = 4,
|
||||||
|
SamplerAddressingModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SamplerFilterMode {
|
enum SamplerFilterMode {
|
||||||
SamplerFilterModeNearest = 0,
|
SamplerFilterModeNearest = 0,
|
||||||
SamplerFilterModeLinear = 1,
|
SamplerFilterModeLinear = 1,
|
||||||
|
SamplerFilterModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImageFormat {
|
enum ImageFormat {
|
||||||
|
@ -198,6 +211,7 @@ enum ImageFormat {
|
||||||
ImageFormatRg8ui = 37,
|
ImageFormatRg8ui = 37,
|
||||||
ImageFormatR16ui = 38,
|
ImageFormatR16ui = 38,
|
||||||
ImageFormatR8ui = 39,
|
ImageFormatR8ui = 39,
|
||||||
|
ImageFormatMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImageChannelOrder {
|
enum ImageChannelOrder {
|
||||||
|
@ -220,6 +234,8 @@ enum ImageChannelOrder {
|
||||||
ImageChannelOrdersRGBx = 16,
|
ImageChannelOrdersRGBx = 16,
|
||||||
ImageChannelOrdersRGBA = 17,
|
ImageChannelOrdersRGBA = 17,
|
||||||
ImageChannelOrdersBGRA = 18,
|
ImageChannelOrdersBGRA = 18,
|
||||||
|
ImageChannelOrderABGR = 19,
|
||||||
|
ImageChannelOrderMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImageChannelDataType {
|
enum ImageChannelDataType {
|
||||||
|
@ -240,6 +256,7 @@ enum ImageChannelDataType {
|
||||||
ImageChannelDataTypeFloat = 14,
|
ImageChannelDataTypeFloat = 14,
|
||||||
ImageChannelDataTypeUnormInt24 = 15,
|
ImageChannelDataTypeUnormInt24 = 15,
|
||||||
ImageChannelDataTypeUnormInt101010_2 = 16,
|
ImageChannelDataTypeUnormInt101010_2 = 16,
|
||||||
|
ImageChannelDataTypeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImageOperandsShift {
|
enum ImageOperandsShift {
|
||||||
|
@ -251,6 +268,7 @@ enum ImageOperandsShift {
|
||||||
ImageOperandsConstOffsetsShift = 5,
|
ImageOperandsConstOffsetsShift = 5,
|
||||||
ImageOperandsSampleShift = 6,
|
ImageOperandsSampleShift = 6,
|
||||||
ImageOperandsMinLodShift = 7,
|
ImageOperandsMinLodShift = 7,
|
||||||
|
ImageOperandsMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImageOperandsMask {
|
enum ImageOperandsMask {
|
||||||
|
@ -271,6 +289,7 @@ enum FPFastMathModeShift {
|
||||||
FPFastMathModeNSZShift = 2,
|
FPFastMathModeNSZShift = 2,
|
||||||
FPFastMathModeAllowRecipShift = 3,
|
FPFastMathModeAllowRecipShift = 3,
|
||||||
FPFastMathModeFastShift = 4,
|
FPFastMathModeFastShift = 4,
|
||||||
|
FPFastMathModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FPFastMathModeMask {
|
enum FPFastMathModeMask {
|
||||||
|
@ -287,17 +306,20 @@ enum FPRoundingMode {
|
||||||
FPRoundingModeRTZ = 1,
|
FPRoundingModeRTZ = 1,
|
||||||
FPRoundingModeRTP = 2,
|
FPRoundingModeRTP = 2,
|
||||||
FPRoundingModeRTN = 3,
|
FPRoundingModeRTN = 3,
|
||||||
|
FPRoundingModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum LinkageType {
|
enum LinkageType {
|
||||||
LinkageTypeExport = 0,
|
LinkageTypeExport = 0,
|
||||||
LinkageTypeImport = 1,
|
LinkageTypeImport = 1,
|
||||||
|
LinkageTypeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AccessQualifier {
|
enum AccessQualifier {
|
||||||
AccessQualifierReadOnly = 0,
|
AccessQualifierReadOnly = 0,
|
||||||
AccessQualifierWriteOnly = 1,
|
AccessQualifierWriteOnly = 1,
|
||||||
AccessQualifierReadWrite = 2,
|
AccessQualifierReadWrite = 2,
|
||||||
|
AccessQualifierMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FunctionParameterAttribute {
|
enum FunctionParameterAttribute {
|
||||||
|
@ -309,6 +331,7 @@ enum FunctionParameterAttribute {
|
||||||
FunctionParameterAttributeNoCapture = 5,
|
FunctionParameterAttributeNoCapture = 5,
|
||||||
FunctionParameterAttributeNoWrite = 6,
|
FunctionParameterAttributeNoWrite = 6,
|
||||||
FunctionParameterAttributeNoReadWrite = 7,
|
FunctionParameterAttributeNoReadWrite = 7,
|
||||||
|
FunctionParameterAttributeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Decoration {
|
enum Decoration {
|
||||||
|
@ -355,6 +378,8 @@ enum Decoration {
|
||||||
DecorationNoContraction = 42,
|
DecorationNoContraction = 42,
|
||||||
DecorationInputAttachmentIndex = 43,
|
DecorationInputAttachmentIndex = 43,
|
||||||
DecorationAlignment = 44,
|
DecorationAlignment = 44,
|
||||||
|
DecorationMaxByteOffset = 45,
|
||||||
|
DecorationMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum BuiltIn {
|
enum BuiltIn {
|
||||||
|
@ -399,11 +424,21 @@ enum BuiltIn {
|
||||||
BuiltInSubgroupLocalInvocationId = 41,
|
BuiltInSubgroupLocalInvocationId = 41,
|
||||||
BuiltInVertexIndex = 42,
|
BuiltInVertexIndex = 42,
|
||||||
BuiltInInstanceIndex = 43,
|
BuiltInInstanceIndex = 43,
|
||||||
|
BuiltInSubgroupEqMaskKHR = 4416,
|
||||||
|
BuiltInSubgroupGeMaskKHR = 4417,
|
||||||
|
BuiltInSubgroupGtMaskKHR = 4418,
|
||||||
|
BuiltInSubgroupLeMaskKHR = 4419,
|
||||||
|
BuiltInSubgroupLtMaskKHR = 4420,
|
||||||
|
BuiltInBaseVertex = 4424,
|
||||||
|
BuiltInBaseInstance = 4425,
|
||||||
|
BuiltInDrawIndex = 4426,
|
||||||
|
BuiltInMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SelectionControlShift {
|
enum SelectionControlShift {
|
||||||
SelectionControlFlattenShift = 0,
|
SelectionControlFlattenShift = 0,
|
||||||
SelectionControlDontFlattenShift = 1,
|
SelectionControlDontFlattenShift = 1,
|
||||||
|
SelectionControlMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SelectionControlMask {
|
enum SelectionControlMask {
|
||||||
|
@ -415,12 +450,17 @@ enum SelectionControlMask {
|
||||||
enum LoopControlShift {
|
enum LoopControlShift {
|
||||||
LoopControlUnrollShift = 0,
|
LoopControlUnrollShift = 0,
|
||||||
LoopControlDontUnrollShift = 1,
|
LoopControlDontUnrollShift = 1,
|
||||||
|
LoopControlDependencyInfiniteShift = 2,
|
||||||
|
LoopControlDependencyLengthShift = 3,
|
||||||
|
LoopControlMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum LoopControlMask {
|
enum LoopControlMask {
|
||||||
LoopControlMaskNone = 0,
|
LoopControlMaskNone = 0,
|
||||||
LoopControlUnrollMask = 0x00000001,
|
LoopControlUnrollMask = 0x00000001,
|
||||||
LoopControlDontUnrollMask = 0x00000002,
|
LoopControlDontUnrollMask = 0x00000002,
|
||||||
|
LoopControlDependencyInfiniteMask = 0x00000004,
|
||||||
|
LoopControlDependencyLengthMask = 0x00000008,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FunctionControlShift {
|
enum FunctionControlShift {
|
||||||
|
@ -428,6 +468,7 @@ enum FunctionControlShift {
|
||||||
FunctionControlDontInlineShift = 1,
|
FunctionControlDontInlineShift = 1,
|
||||||
FunctionControlPureShift = 2,
|
FunctionControlPureShift = 2,
|
||||||
FunctionControlConstShift = 3,
|
FunctionControlConstShift = 3,
|
||||||
|
FunctionControlMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FunctionControlMask {
|
enum FunctionControlMask {
|
||||||
|
@ -449,6 +490,7 @@ enum MemorySemanticsShift {
|
||||||
MemorySemanticsCrossWorkgroupMemoryShift = 9,
|
MemorySemanticsCrossWorkgroupMemoryShift = 9,
|
||||||
MemorySemanticsAtomicCounterMemoryShift = 10,
|
MemorySemanticsAtomicCounterMemoryShift = 10,
|
||||||
MemorySemanticsImageMemoryShift = 11,
|
MemorySemanticsImageMemoryShift = 11,
|
||||||
|
MemorySemanticsMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MemorySemanticsMask {
|
enum MemorySemanticsMask {
|
||||||
|
@ -469,6 +511,7 @@ enum MemoryAccessShift {
|
||||||
MemoryAccessVolatileShift = 0,
|
MemoryAccessVolatileShift = 0,
|
||||||
MemoryAccessAlignedShift = 1,
|
MemoryAccessAlignedShift = 1,
|
||||||
MemoryAccessNontemporalShift = 2,
|
MemoryAccessNontemporalShift = 2,
|
||||||
|
MemoryAccessMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MemoryAccessMask {
|
enum MemoryAccessMask {
|
||||||
|
@ -484,22 +527,26 @@ enum Scope {
|
||||||
ScopeWorkgroup = 2,
|
ScopeWorkgroup = 2,
|
||||||
ScopeSubgroup = 3,
|
ScopeSubgroup = 3,
|
||||||
ScopeInvocation = 4,
|
ScopeInvocation = 4,
|
||||||
|
ScopeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum GroupOperation {
|
enum GroupOperation {
|
||||||
GroupOperationReduce = 0,
|
GroupOperationReduce = 0,
|
||||||
GroupOperationInclusiveScan = 1,
|
GroupOperationInclusiveScan = 1,
|
||||||
GroupOperationExclusiveScan = 2,
|
GroupOperationExclusiveScan = 2,
|
||||||
|
GroupOperationMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum KernelEnqueueFlags {
|
enum KernelEnqueueFlags {
|
||||||
KernelEnqueueFlagsNoWait = 0,
|
KernelEnqueueFlagsNoWait = 0,
|
||||||
KernelEnqueueFlagsWaitKernel = 1,
|
KernelEnqueueFlagsWaitKernel = 1,
|
||||||
KernelEnqueueFlagsWaitWorkGroup = 2,
|
KernelEnqueueFlagsWaitWorkGroup = 2,
|
||||||
|
KernelEnqueueFlagsMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum KernelProfilingInfoShift {
|
enum KernelProfilingInfoShift {
|
||||||
KernelProfilingInfoCmdExecTimeShift = 0,
|
KernelProfilingInfoCmdExecTimeShift = 0,
|
||||||
|
KernelProfilingInfoMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum KernelProfilingInfoMask {
|
enum KernelProfilingInfoMask {
|
||||||
|
@ -564,6 +611,12 @@ enum Capability {
|
||||||
CapabilityStorageImageReadWithoutFormat = 55,
|
CapabilityStorageImageReadWithoutFormat = 55,
|
||||||
CapabilityStorageImageWriteWithoutFormat = 56,
|
CapabilityStorageImageWriteWithoutFormat = 56,
|
||||||
CapabilityMultiViewport = 57,
|
CapabilityMultiViewport = 57,
|
||||||
|
CapabilitySubgroupDispatch = 58,
|
||||||
|
CapabilityNamedBarrier = 59,
|
||||||
|
CapabilityPipeStorage = 60,
|
||||||
|
CapabilitySubgroupBallotKHR = 4423,
|
||||||
|
CapabilityDrawParameters = 4427,
|
||||||
|
CapabilityMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Op {
|
enum Op {
|
||||||
|
@ -861,6 +914,19 @@ enum Op {
|
||||||
OpAtomicFlagTestAndSet = 318,
|
OpAtomicFlagTestAndSet = 318,
|
||||||
OpAtomicFlagClear = 319,
|
OpAtomicFlagClear = 319,
|
||||||
OpImageSparseRead = 320,
|
OpImageSparseRead = 320,
|
||||||
|
OpSizeOf = 321,
|
||||||
|
OpTypePipeStorage = 322,
|
||||||
|
OpConstantPipeStorage = 323,
|
||||||
|
OpCreatePipeFromPipeStorage = 324,
|
||||||
|
OpGetKernelLocalSizeForSubgroupCount = 325,
|
||||||
|
OpGetKernelMaxNumSubgroups = 326,
|
||||||
|
OpTypeNamedBarrier = 327,
|
||||||
|
OpNamedBarrierInitialize = 328,
|
||||||
|
OpMemoryNamedBarrier = 329,
|
||||||
|
OpModuleProcessed = 330,
|
||||||
|
OpSubgroupBallotKHR = 4421,
|
||||||
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
|
OpMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Overload operator| for mask bit combining
|
// Overload operator| for mask bit combining
|
||||||
|
@ -877,3 +943,4 @@ inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfil
|
||||||
} // end namespace spv
|
} // end namespace spv
|
||||||
|
|
||||||
#endif // #ifndef spirv_HPP
|
#endif // #ifndef spirv_HPP
|
||||||
|
|
||||||
|
|
|
@ -46,12 +46,12 @@ namespace spv {
|
||||||
|
|
||||||
typedef unsigned int Id;
|
typedef unsigned int Id;
|
||||||
|
|
||||||
#define SPV_VERSION 0x10000
|
#define SPV_VERSION 0x10100
|
||||||
#define SPV_REVISION 3
|
#define SPV_REVISION 4
|
||||||
|
|
||||||
static const unsigned int MagicNumber = 0x07230203;
|
static const unsigned int MagicNumber = 0x07230203;
|
||||||
static const unsigned int Version = 0x00010000;
|
static const unsigned int Version = 0x00010100;
|
||||||
static const unsigned int Revision = 3;
|
static const unsigned int Revision = 4;
|
||||||
static const unsigned int OpCodeMask = 0xffff;
|
static const unsigned int OpCodeMask = 0xffff;
|
||||||
static const unsigned int WordCountShift = 16;
|
static const unsigned int WordCountShift = 16;
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ enum class SourceLanguage : unsigned {
|
||||||
GLSL = 2,
|
GLSL = 2,
|
||||||
OpenCL_C = 3,
|
OpenCL_C = 3,
|
||||||
OpenCL_CPP = 4,
|
OpenCL_CPP = 4,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ExecutionModel : unsigned {
|
enum class ExecutionModel : unsigned {
|
||||||
|
@ -71,18 +72,21 @@ enum class ExecutionModel : unsigned {
|
||||||
Fragment = 4,
|
Fragment = 4,
|
||||||
GLCompute = 5,
|
GLCompute = 5,
|
||||||
Kernel = 6,
|
Kernel = 6,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class AddressingModel : unsigned {
|
enum class AddressingModel : unsigned {
|
||||||
Logical = 0,
|
Logical = 0,
|
||||||
Physical32 = 1,
|
Physical32 = 1,
|
||||||
Physical64 = 2,
|
Physical64 = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class MemoryModel : unsigned {
|
enum class MemoryModel : unsigned {
|
||||||
Simple = 0,
|
Simple = 0,
|
||||||
GLSL450 = 1,
|
GLSL450 = 1,
|
||||||
OpenCL = 2,
|
OpenCL = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ExecutionMode : unsigned {
|
enum class ExecutionMode : unsigned {
|
||||||
|
@ -117,6 +121,11 @@ enum class ExecutionMode : unsigned {
|
||||||
OutputTriangleStrip = 29,
|
OutputTriangleStrip = 29,
|
||||||
VecTypeHint = 30,
|
VecTypeHint = 30,
|
||||||
ContractionOff = 31,
|
ContractionOff = 31,
|
||||||
|
Initializer = 33,
|
||||||
|
Finalizer = 34,
|
||||||
|
SubgroupSize = 35,
|
||||||
|
SubgroupsPerWorkgroup = 36,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class StorageClass : unsigned {
|
enum class StorageClass : unsigned {
|
||||||
|
@ -132,6 +141,7 @@ enum class StorageClass : unsigned {
|
||||||
PushConstant = 9,
|
PushConstant = 9,
|
||||||
AtomicCounter = 10,
|
AtomicCounter = 10,
|
||||||
Image = 11,
|
Image = 11,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class Dim : unsigned {
|
enum class Dim : unsigned {
|
||||||
|
@ -142,6 +152,7 @@ enum class Dim : unsigned {
|
||||||
Rect = 4,
|
Rect = 4,
|
||||||
Buffer = 5,
|
Buffer = 5,
|
||||||
SubpassData = 6,
|
SubpassData = 6,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class SamplerAddressingMode : unsigned {
|
enum class SamplerAddressingMode : unsigned {
|
||||||
|
@ -150,11 +161,13 @@ enum class SamplerAddressingMode : unsigned {
|
||||||
Clamp = 2,
|
Clamp = 2,
|
||||||
Repeat = 3,
|
Repeat = 3,
|
||||||
RepeatMirrored = 4,
|
RepeatMirrored = 4,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class SamplerFilterMode : unsigned {
|
enum class SamplerFilterMode : unsigned {
|
||||||
Nearest = 0,
|
Nearest = 0,
|
||||||
Linear = 1,
|
Linear = 1,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ImageFormat : unsigned {
|
enum class ImageFormat : unsigned {
|
||||||
|
@ -198,6 +211,7 @@ enum class ImageFormat : unsigned {
|
||||||
Rg8ui = 37,
|
Rg8ui = 37,
|
||||||
R16ui = 38,
|
R16ui = 38,
|
||||||
R8ui = 39,
|
R8ui = 39,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ImageChannelOrder : unsigned {
|
enum class ImageChannelOrder : unsigned {
|
||||||
|
@ -220,6 +234,8 @@ enum class ImageChannelOrder : unsigned {
|
||||||
sRGBx = 16,
|
sRGBx = 16,
|
||||||
sRGBA = 17,
|
sRGBA = 17,
|
||||||
sBGRA = 18,
|
sBGRA = 18,
|
||||||
|
ABGR = 19,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ImageChannelDataType : unsigned {
|
enum class ImageChannelDataType : unsigned {
|
||||||
|
@ -240,6 +256,7 @@ enum class ImageChannelDataType : unsigned {
|
||||||
Float = 14,
|
Float = 14,
|
||||||
UnormInt24 = 15,
|
UnormInt24 = 15,
|
||||||
UnormInt101010_2 = 16,
|
UnormInt101010_2 = 16,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ImageOperandsShift : unsigned {
|
enum class ImageOperandsShift : unsigned {
|
||||||
|
@ -251,6 +268,7 @@ enum class ImageOperandsShift : unsigned {
|
||||||
ConstOffsets = 5,
|
ConstOffsets = 5,
|
||||||
Sample = 6,
|
Sample = 6,
|
||||||
MinLod = 7,
|
MinLod = 7,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ImageOperandsMask : unsigned {
|
enum class ImageOperandsMask : unsigned {
|
||||||
|
@ -271,6 +289,7 @@ enum class FPFastMathModeShift : unsigned {
|
||||||
NSZ = 2,
|
NSZ = 2,
|
||||||
AllowRecip = 3,
|
AllowRecip = 3,
|
||||||
Fast = 4,
|
Fast = 4,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class FPFastMathModeMask : unsigned {
|
enum class FPFastMathModeMask : unsigned {
|
||||||
|
@ -287,17 +306,20 @@ enum class FPRoundingMode : unsigned {
|
||||||
RTZ = 1,
|
RTZ = 1,
|
||||||
RTP = 2,
|
RTP = 2,
|
||||||
RTN = 3,
|
RTN = 3,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class LinkageType : unsigned {
|
enum class LinkageType : unsigned {
|
||||||
Export = 0,
|
Export = 0,
|
||||||
Import = 1,
|
Import = 1,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class AccessQualifier : unsigned {
|
enum class AccessQualifier : unsigned {
|
||||||
ReadOnly = 0,
|
ReadOnly = 0,
|
||||||
WriteOnly = 1,
|
WriteOnly = 1,
|
||||||
ReadWrite = 2,
|
ReadWrite = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class FunctionParameterAttribute : unsigned {
|
enum class FunctionParameterAttribute : unsigned {
|
||||||
|
@ -309,6 +331,7 @@ enum class FunctionParameterAttribute : unsigned {
|
||||||
NoCapture = 5,
|
NoCapture = 5,
|
||||||
NoWrite = 6,
|
NoWrite = 6,
|
||||||
NoReadWrite = 7,
|
NoReadWrite = 7,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class Decoration : unsigned {
|
enum class Decoration : unsigned {
|
||||||
|
@ -355,6 +378,8 @@ enum class Decoration : unsigned {
|
||||||
NoContraction = 42,
|
NoContraction = 42,
|
||||||
InputAttachmentIndex = 43,
|
InputAttachmentIndex = 43,
|
||||||
Alignment = 44,
|
Alignment = 44,
|
||||||
|
MaxByteOffset = 45,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class BuiltIn : unsigned {
|
enum class BuiltIn : unsigned {
|
||||||
|
@ -399,11 +424,21 @@ enum class BuiltIn : unsigned {
|
||||||
SubgroupLocalInvocationId = 41,
|
SubgroupLocalInvocationId = 41,
|
||||||
VertexIndex = 42,
|
VertexIndex = 42,
|
||||||
InstanceIndex = 43,
|
InstanceIndex = 43,
|
||||||
|
SubgroupEqMaskKHR = 4416,
|
||||||
|
SubgroupGeMaskKHR = 4417,
|
||||||
|
SubgroupGtMaskKHR = 4418,
|
||||||
|
SubgroupLeMaskKHR = 4419,
|
||||||
|
SubgroupLtMaskKHR = 4420,
|
||||||
|
BaseVertex = 4424,
|
||||||
|
BaseInstance = 4425,
|
||||||
|
DrawIndex = 4426,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class SelectionControlShift : unsigned {
|
enum class SelectionControlShift : unsigned {
|
||||||
Flatten = 0,
|
Flatten = 0,
|
||||||
DontFlatten = 1,
|
DontFlatten = 1,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class SelectionControlMask : unsigned {
|
enum class SelectionControlMask : unsigned {
|
||||||
|
@ -415,12 +450,17 @@ enum class SelectionControlMask : unsigned {
|
||||||
enum class LoopControlShift : unsigned {
|
enum class LoopControlShift : unsigned {
|
||||||
Unroll = 0,
|
Unroll = 0,
|
||||||
DontUnroll = 1,
|
DontUnroll = 1,
|
||||||
|
DependencyInfinite = 2,
|
||||||
|
DependencyLength = 3,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class LoopControlMask : unsigned {
|
enum class LoopControlMask : unsigned {
|
||||||
MaskNone = 0,
|
MaskNone = 0,
|
||||||
Unroll = 0x00000001,
|
Unroll = 0x00000001,
|
||||||
DontUnroll = 0x00000002,
|
DontUnroll = 0x00000002,
|
||||||
|
DependencyInfinite = 0x00000004,
|
||||||
|
DependencyLength = 0x00000008,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class FunctionControlShift : unsigned {
|
enum class FunctionControlShift : unsigned {
|
||||||
|
@ -428,6 +468,7 @@ enum class FunctionControlShift : unsigned {
|
||||||
DontInline = 1,
|
DontInline = 1,
|
||||||
Pure = 2,
|
Pure = 2,
|
||||||
Const = 3,
|
Const = 3,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class FunctionControlMask : unsigned {
|
enum class FunctionControlMask : unsigned {
|
||||||
|
@ -449,6 +490,7 @@ enum class MemorySemanticsShift : unsigned {
|
||||||
CrossWorkgroupMemory = 9,
|
CrossWorkgroupMemory = 9,
|
||||||
AtomicCounterMemory = 10,
|
AtomicCounterMemory = 10,
|
||||||
ImageMemory = 11,
|
ImageMemory = 11,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class MemorySemanticsMask : unsigned {
|
enum class MemorySemanticsMask : unsigned {
|
||||||
|
@ -469,6 +511,7 @@ enum class MemoryAccessShift : unsigned {
|
||||||
Volatile = 0,
|
Volatile = 0,
|
||||||
Aligned = 1,
|
Aligned = 1,
|
||||||
Nontemporal = 2,
|
Nontemporal = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class MemoryAccessMask : unsigned {
|
enum class MemoryAccessMask : unsigned {
|
||||||
|
@ -484,22 +527,26 @@ enum class Scope : unsigned {
|
||||||
Workgroup = 2,
|
Workgroup = 2,
|
||||||
Subgroup = 3,
|
Subgroup = 3,
|
||||||
Invocation = 4,
|
Invocation = 4,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class GroupOperation : unsigned {
|
enum class GroupOperation : unsigned {
|
||||||
Reduce = 0,
|
Reduce = 0,
|
||||||
InclusiveScan = 1,
|
InclusiveScan = 1,
|
||||||
ExclusiveScan = 2,
|
ExclusiveScan = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class KernelEnqueueFlags : unsigned {
|
enum class KernelEnqueueFlags : unsigned {
|
||||||
NoWait = 0,
|
NoWait = 0,
|
||||||
WaitKernel = 1,
|
WaitKernel = 1,
|
||||||
WaitWorkGroup = 2,
|
WaitWorkGroup = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class KernelProfilingInfoShift : unsigned {
|
enum class KernelProfilingInfoShift : unsigned {
|
||||||
CmdExecTime = 0,
|
CmdExecTime = 0,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class KernelProfilingInfoMask : unsigned {
|
enum class KernelProfilingInfoMask : unsigned {
|
||||||
|
@ -564,6 +611,12 @@ enum class Capability : unsigned {
|
||||||
StorageImageReadWithoutFormat = 55,
|
StorageImageReadWithoutFormat = 55,
|
||||||
StorageImageWriteWithoutFormat = 56,
|
StorageImageWriteWithoutFormat = 56,
|
||||||
MultiViewport = 57,
|
MultiViewport = 57,
|
||||||
|
SubgroupDispatch = 58,
|
||||||
|
NamedBarrier = 59,
|
||||||
|
PipeStorage = 60,
|
||||||
|
SubgroupBallotKHR = 4423,
|
||||||
|
DrawParameters = 4427,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class Op : unsigned {
|
enum class Op : unsigned {
|
||||||
|
@ -861,6 +914,19 @@ enum class Op : unsigned {
|
||||||
OpAtomicFlagTestAndSet = 318,
|
OpAtomicFlagTestAndSet = 318,
|
||||||
OpAtomicFlagClear = 319,
|
OpAtomicFlagClear = 319,
|
||||||
OpImageSparseRead = 320,
|
OpImageSparseRead = 320,
|
||||||
|
OpSizeOf = 321,
|
||||||
|
OpTypePipeStorage = 322,
|
||||||
|
OpConstantPipeStorage = 323,
|
||||||
|
OpCreatePipeFromPipeStorage = 324,
|
||||||
|
OpGetKernelLocalSizeForSubgroupCount = 325,
|
||||||
|
OpGetKernelMaxNumSubgroups = 326,
|
||||||
|
OpTypeNamedBarrier = 327,
|
||||||
|
OpNamedBarrierInitialize = 328,
|
||||||
|
OpMemoryNamedBarrier = 329,
|
||||||
|
OpModuleProcessed = 330,
|
||||||
|
OpSubgroupBallotKHR = 4421,
|
||||||
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Overload operator| for mask bit combining
|
// Overload operator| for mask bit combining
|
||||||
|
|
|
@ -51,8 +51,8 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"MagicNumber": 119734787,
|
"MagicNumber": 119734787,
|
||||||
"Version": 65536,
|
"Version": 65792,
|
||||||
"Revision": 3,
|
"Revision": 4,
|
||||||
"OpCodeMask": 65535,
|
"OpCodeMask": 65535,
|
||||||
"WordCountShift": 16
|
"WordCountShift": 16
|
||||||
},
|
},
|
||||||
|
@ -139,7 +139,11 @@
|
||||||
"OutputLineStrip": 28,
|
"OutputLineStrip": 28,
|
||||||
"OutputTriangleStrip": 29,
|
"OutputTriangleStrip": 29,
|
||||||
"VecTypeHint": 30,
|
"VecTypeHint": 30,
|
||||||
"ContractionOff": 31
|
"ContractionOff": 31,
|
||||||
|
"Initializer": 33,
|
||||||
|
"Finalizer": 34,
|
||||||
|
"SubgroupSize": 35,
|
||||||
|
"SubgroupsPerWorkgroup": 36
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -266,7 +270,8 @@
|
||||||
"sRGB": 15,
|
"sRGB": 15,
|
||||||
"sRGBx": 16,
|
"sRGBx": 16,
|
||||||
"sRGBA": 17,
|
"sRGBA": 17,
|
||||||
"sBGRA": 18
|
"sBGRA": 18,
|
||||||
|
"ABGR": 19
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -412,7 +417,8 @@
|
||||||
"LinkageAttributes": 41,
|
"LinkageAttributes": 41,
|
||||||
"NoContraction": 42,
|
"NoContraction": 42,
|
||||||
"InputAttachmentIndex": 43,
|
"InputAttachmentIndex": 43,
|
||||||
"Alignment": 44
|
"Alignment": 44,
|
||||||
|
"MaxByteOffset": 45
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -460,7 +466,15 @@
|
||||||
"SubgroupId": 40,
|
"SubgroupId": 40,
|
||||||
"SubgroupLocalInvocationId": 41,
|
"SubgroupLocalInvocationId": 41,
|
||||||
"VertexIndex": 42,
|
"VertexIndex": 42,
|
||||||
"InstanceIndex": 43
|
"InstanceIndex": 43,
|
||||||
|
"SubgroupEqMaskKHR": 4416,
|
||||||
|
"SubgroupGeMaskKHR": 4417,
|
||||||
|
"SubgroupGtMaskKHR": 4418,
|
||||||
|
"SubgroupLeMaskKHR": 4419,
|
||||||
|
"SubgroupLtMaskKHR": 4420,
|
||||||
|
"BaseVertex": 4424,
|
||||||
|
"BaseInstance": 4425,
|
||||||
|
"DrawIndex": 4426
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -478,7 +492,9 @@
|
||||||
"Values":
|
"Values":
|
||||||
{
|
{
|
||||||
"Unroll": 0,
|
"Unroll": 0,
|
||||||
"DontUnroll": 1
|
"DontUnroll": 1,
|
||||||
|
"DependencyInfinite": 2,
|
||||||
|
"DependencyLength": 3
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -619,7 +635,12 @@
|
||||||
"GeometryStreams": 54,
|
"GeometryStreams": 54,
|
||||||
"StorageImageReadWithoutFormat": 55,
|
"StorageImageReadWithoutFormat": 55,
|
||||||
"StorageImageWriteWithoutFormat": 56,
|
"StorageImageWriteWithoutFormat": 56,
|
||||||
"MultiViewport": 57
|
"MultiViewport": 57,
|
||||||
|
"SubgroupDispatch": 58,
|
||||||
|
"NamedBarrier": 59,
|
||||||
|
"PipeStorage": 60,
|
||||||
|
"SubgroupBallotKHR": 4423,
|
||||||
|
"DrawParameters": 4427
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -920,7 +941,19 @@
|
||||||
"OpNoLine": 317,
|
"OpNoLine": 317,
|
||||||
"OpAtomicFlagTestAndSet": 318,
|
"OpAtomicFlagTestAndSet": 318,
|
||||||
"OpAtomicFlagClear": 319,
|
"OpAtomicFlagClear": 319,
|
||||||
"OpImageSparseRead": 320
|
"OpImageSparseRead": 320,
|
||||||
|
"OpSizeOf": 321,
|
||||||
|
"OpTypePipeStorage": 322,
|
||||||
|
"OpConstantPipeStorage": 323,
|
||||||
|
"OpCreatePipeFromPipeStorage": 324,
|
||||||
|
"OpGetKernelLocalSizeForSubgroupCount": 325,
|
||||||
|
"OpGetKernelMaxNumSubgroups": 326,
|
||||||
|
"OpTypeNamedBarrier": 327,
|
||||||
|
"OpNamedBarrierInitialize": 328,
|
||||||
|
"OpMemoryNamedBarrier": 329,
|
||||||
|
"OpModuleProcessed": 330,
|
||||||
|
"OpSubgroupBallotKHR": 4421,
|
||||||
|
"OpSubgroupFirstInvocationKHR": 4422
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -41,8 +41,8 @@
|
||||||
|
|
||||||
spv = {
|
spv = {
|
||||||
MagicNumber = 0x07230203,
|
MagicNumber = 0x07230203,
|
||||||
Version = 0x00010000,
|
Version = 0x00010100,
|
||||||
Revision = 3,
|
Revision = 4,
|
||||||
OpCodeMask = 0xffff,
|
OpCodeMask = 0xffff,
|
||||||
WordCountShift = 16,
|
WordCountShift = 16,
|
||||||
|
|
||||||
|
@ -108,6 +108,10 @@ spv = {
|
||||||
OutputTriangleStrip = 29,
|
OutputTriangleStrip = 29,
|
||||||
VecTypeHint = 30,
|
VecTypeHint = 30,
|
||||||
ContractionOff = 31,
|
ContractionOff = 31,
|
||||||
|
Initializer = 33,
|
||||||
|
Finalizer = 34,
|
||||||
|
SubgroupSize = 35,
|
||||||
|
SubgroupsPerWorkgroup = 36,
|
||||||
},
|
},
|
||||||
|
|
||||||
StorageClass = {
|
StorageClass = {
|
||||||
|
@ -211,6 +215,7 @@ spv = {
|
||||||
sRGBx = 16,
|
sRGBx = 16,
|
||||||
sRGBA = 17,
|
sRGBA = 17,
|
||||||
sBGRA = 18,
|
sBGRA = 18,
|
||||||
|
ABGR = 19,
|
||||||
},
|
},
|
||||||
|
|
||||||
ImageChannelDataType = {
|
ImageChannelDataType = {
|
||||||
|
@ -346,6 +351,7 @@ spv = {
|
||||||
NoContraction = 42,
|
NoContraction = 42,
|
||||||
InputAttachmentIndex = 43,
|
InputAttachmentIndex = 43,
|
||||||
Alignment = 44,
|
Alignment = 44,
|
||||||
|
MaxByteOffset = 45,
|
||||||
},
|
},
|
||||||
|
|
||||||
BuiltIn = {
|
BuiltIn = {
|
||||||
|
@ -390,6 +396,14 @@ spv = {
|
||||||
SubgroupLocalInvocationId = 41,
|
SubgroupLocalInvocationId = 41,
|
||||||
VertexIndex = 42,
|
VertexIndex = 42,
|
||||||
InstanceIndex = 43,
|
InstanceIndex = 43,
|
||||||
|
SubgroupEqMaskKHR = 4416,
|
||||||
|
SubgroupGeMaskKHR = 4417,
|
||||||
|
SubgroupGtMaskKHR = 4418,
|
||||||
|
SubgroupLeMaskKHR = 4419,
|
||||||
|
SubgroupLtMaskKHR = 4420,
|
||||||
|
BaseVertex = 4424,
|
||||||
|
BaseInstance = 4425,
|
||||||
|
DrawIndex = 4426,
|
||||||
},
|
},
|
||||||
|
|
||||||
SelectionControlShift = {
|
SelectionControlShift = {
|
||||||
|
@ -406,12 +420,16 @@ spv = {
|
||||||
LoopControlShift = {
|
LoopControlShift = {
|
||||||
Unroll = 0,
|
Unroll = 0,
|
||||||
DontUnroll = 1,
|
DontUnroll = 1,
|
||||||
|
DependencyInfinite = 2,
|
||||||
|
DependencyLength = 3,
|
||||||
},
|
},
|
||||||
|
|
||||||
LoopControlMask = {
|
LoopControlMask = {
|
||||||
MaskNone = 0,
|
MaskNone = 0,
|
||||||
Unroll = 0x00000001,
|
Unroll = 0x00000001,
|
||||||
DontUnroll = 0x00000002,
|
DontUnroll = 0x00000002,
|
||||||
|
DependencyInfinite = 0x00000004,
|
||||||
|
DependencyLength = 0x00000008,
|
||||||
},
|
},
|
||||||
|
|
||||||
FunctionControlShift = {
|
FunctionControlShift = {
|
||||||
|
@ -555,6 +573,11 @@ spv = {
|
||||||
StorageImageReadWithoutFormat = 55,
|
StorageImageReadWithoutFormat = 55,
|
||||||
StorageImageWriteWithoutFormat = 56,
|
StorageImageWriteWithoutFormat = 56,
|
||||||
MultiViewport = 57,
|
MultiViewport = 57,
|
||||||
|
SubgroupDispatch = 58,
|
||||||
|
NamedBarrier = 59,
|
||||||
|
PipeStorage = 60,
|
||||||
|
SubgroupBallotKHR = 4423,
|
||||||
|
DrawParameters = 4427,
|
||||||
},
|
},
|
||||||
|
|
||||||
Op = {
|
Op = {
|
||||||
|
@ -852,6 +875,18 @@ spv = {
|
||||||
OpAtomicFlagTestAndSet = 318,
|
OpAtomicFlagTestAndSet = 318,
|
||||||
OpAtomicFlagClear = 319,
|
OpAtomicFlagClear = 319,
|
||||||
OpImageSparseRead = 320,
|
OpImageSparseRead = 320,
|
||||||
|
OpSizeOf = 321,
|
||||||
|
OpTypePipeStorage = 322,
|
||||||
|
OpConstantPipeStorage = 323,
|
||||||
|
OpCreatePipeFromPipeStorage = 324,
|
||||||
|
OpGetKernelLocalSizeForSubgroupCount = 325,
|
||||||
|
OpGetKernelMaxNumSubgroups = 326,
|
||||||
|
OpTypeNamedBarrier = 327,
|
||||||
|
OpNamedBarrierInitialize = 328,
|
||||||
|
OpMemoryNamedBarrier = 329,
|
||||||
|
OpModuleProcessed = 330,
|
||||||
|
OpSubgroupBallotKHR = 4421,
|
||||||
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
1751
ext/vulkan/spirv.py
1751
ext/vulkan/spirv.py
File diff suppressed because it is too large
Load diff
|
@ -6,24 +6,17 @@
|
||||||
* Copyright (c) 2015-2016 Valve Corporation
|
* Copyright (c) 2015-2016 Valve Corporation
|
||||||
* Copyright (c) 2015-2016 LunarG, Inc.
|
* Copyright (c) 2015-2016 LunarG, Inc.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* of this software and/or associated documentation files (the "Materials"), to
|
* you may not use this file except in compliance with the License.
|
||||||
* deal in the Materials without restriction, including without limitation the
|
* You may obtain a copy of the License at
|
||||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
* sell copies of the Materials, and to permit persons to whom the Materials are
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
*
|
||||||
* The above copyright notice(s) and this permission notice shall be included in
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* all copies or substantial portions of the Materials.
|
|
||||||
*
|
*
|
||||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
*
|
* See the License for the specific language governing permissions and
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
* limitations under the License.
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -32,6 +25,12 @@
|
||||||
|
|
||||||
#include "vulkan.h"
|
#include "vulkan.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Loader-ICD version negotiation API
|
||||||
|
*/
|
||||||
|
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 3
|
||||||
|
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
||||||
/*
|
/*
|
||||||
* The ICD must reserve space for a pointer for the loader's dispatch
|
* The ICD must reserve space for a pointer for the loader's dispatch
|
||||||
* table, at the start of <each object>.
|
* table, at the start of <each object>.
|
||||||
|
@ -40,7 +39,7 @@
|
||||||
|
|
||||||
#define ICD_LOADER_MAGIC 0x01CDC0DE
|
#define ICD_LOADER_MAGIC 0x01CDC0DE
|
||||||
|
|
||||||
typedef union _VK_LOADER_DATA {
|
typedef union {
|
||||||
uintptr_t loaderMagic;
|
uintptr_t loaderMagic;
|
||||||
void *loaderData;
|
void *loaderData;
|
||||||
} VK_LOADER_DATA;
|
} VK_LOADER_DATA;
|
||||||
|
@ -59,7 +58,7 @@ static inline bool valid_loader_magic_value(void *pNewObject) {
|
||||||
* Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that
|
* Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that
|
||||||
* contains the platform-specific connection and surface information.
|
* contains the platform-specific connection and surface information.
|
||||||
*/
|
*/
|
||||||
typedef enum _VkIcdWsiPlatform {
|
typedef enum {
|
||||||
VK_ICD_WSI_PLATFORM_MIR,
|
VK_ICD_WSI_PLATFORM_MIR,
|
||||||
VK_ICD_WSI_PLATFORM_WAYLAND,
|
VK_ICD_WSI_PLATFORM_WAYLAND,
|
||||||
VK_ICD_WSI_PLATFORM_WIN32,
|
VK_ICD_WSI_PLATFORM_WIN32,
|
||||||
|
@ -68,12 +67,12 @@ typedef enum _VkIcdWsiPlatform {
|
||||||
VK_ICD_WSI_PLATFORM_DISPLAY
|
VK_ICD_WSI_PLATFORM_DISPLAY
|
||||||
} VkIcdWsiPlatform;
|
} VkIcdWsiPlatform;
|
||||||
|
|
||||||
typedef struct _VkIcdSurfaceBase {
|
typedef struct {
|
||||||
VkIcdWsiPlatform platform;
|
VkIcdWsiPlatform platform;
|
||||||
} VkIcdSurfaceBase;
|
} VkIcdSurfaceBase;
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||||
typedef struct _VkIcdSurfaceMir {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
MirConnection *connection;
|
MirConnection *connection;
|
||||||
MirSurface *mirSurface;
|
MirSurface *mirSurface;
|
||||||
|
@ -81,7 +80,7 @@ typedef struct _VkIcdSurfaceMir {
|
||||||
#endif // VK_USE_PLATFORM_MIR_KHR
|
#endif // VK_USE_PLATFORM_MIR_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||||
typedef struct _VkIcdSurfaceWayland {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
struct wl_display *display;
|
struct wl_display *display;
|
||||||
struct wl_surface *surface;
|
struct wl_surface *surface;
|
||||||
|
@ -89,7 +88,7 @@ typedef struct _VkIcdSurfaceWayland {
|
||||||
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||||
typedef struct _VkIcdSurfaceWin32 {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
HINSTANCE hinstance;
|
HINSTANCE hinstance;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
|
@ -97,7 +96,7 @@ typedef struct _VkIcdSurfaceWin32 {
|
||||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||||
typedef struct _VkIcdSurfaceXcb {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
xcb_connection_t *connection;
|
xcb_connection_t *connection;
|
||||||
xcb_window_t window;
|
xcb_window_t window;
|
||||||
|
@ -105,14 +104,20 @@ typedef struct _VkIcdSurfaceXcb {
|
||||||
#endif // VK_USE_PLATFORM_XCB_KHR
|
#endif // VK_USE_PLATFORM_XCB_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
||||||
typedef struct _VkIcdSurfaceXlib {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
Display *dpy;
|
Display *dpy;
|
||||||
Window window;
|
Window window;
|
||||||
} VkIcdSurfaceXlib;
|
} VkIcdSurfaceXlib;
|
||||||
#endif // VK_USE_PLATFORM_XLIB_KHR
|
#endif // VK_USE_PLATFORM_XLIB_KHR
|
||||||
|
|
||||||
typedef struct _VkIcdSurfaceDisplay {
|
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||||
|
typedef struct {
|
||||||
|
ANativeWindow* window;
|
||||||
|
} VkIcdSurfaceAndroid;
|
||||||
|
#endif //VK_USE_PLATFORM_ANDROID_KHR
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
VkDisplayModeKHR displayMode;
|
VkDisplayModeKHR displayMode;
|
||||||
uint32_t planeIndex;
|
uint32_t planeIndex;
|
||||||
|
@ -122,4 +127,5 @@ typedef struct _VkIcdSurfaceDisplay {
|
||||||
VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
|
VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
|
||||||
VkExtent2D imageExtent;
|
VkExtent2D imageExtent;
|
||||||
} VkIcdSurfaceDisplay;
|
} VkIcdSurfaceDisplay;
|
||||||
|
|
||||||
#endif // VKICD_H
|
#endif // VKICD_H
|
||||||
|
|
|
@ -6,24 +6,17 @@
|
||||||
* Copyright (c) 2015-2016 Valve Corporation
|
* Copyright (c) 2015-2016 Valve Corporation
|
||||||
* Copyright (c) 2015-2016 LunarG, Inc.
|
* Copyright (c) 2015-2016 LunarG, Inc.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* of this software and/or associated documentation files (the "Materials"), to
|
* you may not use this file except in compliance with the License.
|
||||||
* deal in the Materials without restriction, including without limitation the
|
* You may obtain a copy of the License at
|
||||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
* sell copies of the Materials, and to permit persons to whom the Materials are
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
*
|
||||||
* The above copyright notice(s) and this permission notice shall be included in
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* all copies or substantial portions of the Materials.
|
|
||||||
*
|
*
|
||||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
*
|
* See the License for the specific language governing permissions and
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
* limitations under the License.
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -169,6 +162,17 @@ typedef struct VkLayerDispatchTable_ {
|
||||||
PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
|
PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
|
||||||
PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
|
PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
|
||||||
PFN_vkQueuePresentKHR QueuePresentKHR;
|
PFN_vkQueuePresentKHR QueuePresentKHR;
|
||||||
|
PFN_vkCmdDrawIndirectCountAMD CmdDrawIndirectCountAMD;
|
||||||
|
PFN_vkCmdDrawIndexedIndirectCountAMD CmdDrawIndexedIndirectCountAMD;
|
||||||
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||||
|
PFN_vkGetMemoryWin32HandleNV GetMemoryWin32HandleNV;
|
||||||
|
#endif
|
||||||
|
PFN_vkCreateSharedSwapchainsKHR CreateSharedSwapchainsKHR;
|
||||||
|
PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
|
||||||
|
PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
|
||||||
|
PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
|
||||||
|
PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
|
||||||
|
PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
|
||||||
} VkLayerDispatchTable;
|
} VkLayerDispatchTable;
|
||||||
|
|
||||||
typedef struct VkLayerInstanceDispatchTable_ {
|
typedef struct VkLayerInstanceDispatchTable_ {
|
||||||
|
@ -239,31 +243,16 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
||||||
GetDisplayPlaneCapabilitiesKHR;
|
GetDisplayPlaneCapabilitiesKHR;
|
||||||
PFN_vkCreateDisplayPlaneSurfaceKHR
|
PFN_vkCreateDisplayPlaneSurfaceKHR
|
||||||
CreateDisplayPlaneSurfaceKHR;
|
CreateDisplayPlaneSurfaceKHR;
|
||||||
|
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
|
||||||
|
GetPhysicalDeviceExternalImageFormatPropertiesNV;
|
||||||
} VkLayerInstanceDispatchTable;
|
} VkLayerInstanceDispatchTable;
|
||||||
|
|
||||||
// LL node for tree of dbg callback functions
|
|
||||||
typedef struct VkLayerDbgFunctionNode_ {
|
|
||||||
VkDebugReportCallbackEXT msgCallback;
|
|
||||||
PFN_vkDebugReportCallbackEXT pfnMsgCallback;
|
|
||||||
VkFlags msgFlags;
|
|
||||||
void *pUserData;
|
|
||||||
struct VkLayerDbgFunctionNode_ *pNext;
|
|
||||||
} VkLayerDbgFunctionNode;
|
|
||||||
|
|
||||||
typedef enum VkLayerDbgAction_ {
|
|
||||||
VK_DBG_LAYER_ACTION_IGNORE = 0x0,
|
|
||||||
VK_DBG_LAYER_ACTION_CALLBACK = 0x1,
|
|
||||||
VK_DBG_LAYER_ACTION_LOG_MSG = 0x2,
|
|
||||||
VK_DBG_LAYER_ACTION_BREAK = 0x4,
|
|
||||||
VK_DBG_LAYER_ACTION_DEBUG_OUTPUT = 0x8,
|
|
||||||
} VkLayerDbgAction;
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// CreateInstance and CreateDevice support structures
|
// CreateInstance and CreateDevice support structures
|
||||||
|
|
||||||
/* Sub type of structure for instance and device loader ext of CreateInfo.
|
/* Sub type of structure for instance and device loader ext of CreateInfo.
|
||||||
* When sType == VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO
|
* When sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
|
||||||
* or sType == VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO
|
* or sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
|
||||||
* then VkLayerFunction indicates struct type pointed to by pNext
|
* then VkLayerFunction indicates struct type pointed to by pNext
|
||||||
*/
|
*/
|
||||||
typedef enum VkLayerFunction_ {
|
typedef enum VkLayerFunction_ {
|
||||||
|
@ -294,7 +283,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device,
|
||||||
void *object);
|
void *object);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VkStructureType sType; // VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO
|
VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
|
||||||
const void *pNext;
|
const void *pNext;
|
||||||
VkLayerFunction function;
|
VkLayerFunction function;
|
||||||
union {
|
union {
|
||||||
|
@ -310,7 +299,7 @@ typedef struct VkLayerDeviceLink_ {
|
||||||
} VkLayerDeviceLink;
|
} VkLayerDeviceLink;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VkStructureType sType; // VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO
|
VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
|
||||||
const void *pNext;
|
const void *pNext;
|
||||||
VkLayerFunction function;
|
VkLayerFunction function;
|
||||||
union {
|
union {
|
||||||
|
|
|
@ -4,24 +4,17 @@
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2014-2015 The Khronos Group Inc.
|
** Copyright (c) 2014-2015 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
** copy of this software and/or associated documentation files (the
|
** you may not use this file except in compliance with the License.
|
||||||
** "Materials"), to deal in the Materials without restriction, including
|
** You may obtain a copy of the License at
|
||||||
** without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
|
||||||
** permit persons to whom the Materials are furnished to do so, subject to
|
|
||||||
** the following conditions:
|
|
||||||
**
|
**
|
||||||
** The above copyright notice and this permission notice shall be included
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
** in all copies or substantial portions of the Materials.
|
|
||||||
**
|
**
|
||||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
** See the License for the specific language governing permissions and
|
||||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
** limitations under the License.
|
||||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,13 +51,13 @@ extern "C"
|
||||||
#define VKAPI_ATTR
|
#define VKAPI_ATTR
|
||||||
#define VKAPI_CALL __stdcall
|
#define VKAPI_CALL __stdcall
|
||||||
#define VKAPI_PTR VKAPI_CALL
|
#define VKAPI_PTR VKAPI_CALL
|
||||||
#elif defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
|
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
|
||||||
// Android does not support Vulkan in native code using the "armeabi" ABI.
|
#error "Vulkan isn't supported for the 'armeabi' NDK ABI"
|
||||||
#error "Vulkan requires the 'armeabi-v7a' or 'armeabi-v7a-hard' ABI on 32-bit ARM CPUs"
|
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
|
||||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH_7A__)
|
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
|
||||||
// On Android/ARMv7a, Vulkan functions use the armeabi-v7a-hard calling
|
// calling convention, i.e. float parameters are passed in registers. This
|
||||||
// convention, even if the application's native code is compiled with the
|
// is true even if the rest of the application passes floats on the stack,
|
||||||
// armeabi-v7a calling convention.
|
// as it does by default when compiling for the armeabi-v7a NDK ABI.
|
||||||
#define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
|
#define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
|
||||||
#define VKAPI_CALL
|
#define VKAPI_CALL
|
||||||
#define VKAPI_PTR VKAPI_ATTR
|
#define VKAPI_PTR VKAPI_ATTR
|
||||||
|
|
|
@ -6,24 +6,17 @@
|
||||||
* Copyright (c) 2015-2016 Valve Corporation
|
* Copyright (c) 2015-2016 Valve Corporation
|
||||||
* Copyright (c) 2015-2016 LunarG, Inc.
|
* Copyright (c) 2015-2016 LunarG, Inc.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* of this software and/or associated documentation files (the "Materials"), to
|
* you may not use this file except in compliance with the License.
|
||||||
* deal in the Materials without restriction, including without limitation the
|
* You may obtain a copy of the License at
|
||||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
* sell copies of the Materials, and to permit persons to whom the Materials are
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
*
|
||||||
* The above copyright notice(s) and this permission notice shall be included in
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* all copies or substantial portions of the Materials.
|
|
||||||
*
|
*
|
||||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
*
|
* See the License for the specific language governing permissions and
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
* limitations under the License.
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef VK_SDK_PLATFORM_H
|
#ifndef VK_SDK_PLATFORM_H
|
||||||
|
|
|
@ -8,24 +8,17 @@ extern "C" {
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2016 The Khronos Group Inc.
|
** Copyright (c) 2015-2016 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
** copy of this software and/or associated documentation files (the
|
** you may not use this file except in compliance with the License.
|
||||||
** "Materials"), to deal in the Materials without restriction, including
|
** You may obtain a copy of the License at
|
||||||
** without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
|
||||||
** permit persons to whom the Materials are furnished to do so, subject to
|
|
||||||
** the following conditions:
|
|
||||||
**
|
**
|
||||||
** The above copyright notice and this permission notice shall be included
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
** in all copies or substantial portions of the Materials.
|
|
||||||
**
|
**
|
||||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
** See the License for the specific language governing permissions and
|
||||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
** limitations under the License.
|
||||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -50,7 +43,7 @@ extern "C" {
|
||||||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||||
// Version of this file
|
// Version of this file
|
||||||
#define VK_HEADER_VERSION 8
|
#define VK_HEADER_VERSION 33
|
||||||
|
|
||||||
|
|
||||||
#define VK_NULL_HANDLE 0
|
#define VK_NULL_HANDLE 0
|
||||||
|
@ -60,11 +53,13 @@ extern "C" {
|
||||||
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
|
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
|
||||||
|
|
||||||
|
|
||||||
#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
|
||||||
|
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
||||||
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
|
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
|
||||||
#else
|
#else
|
||||||
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
|
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,6 +137,7 @@ typedef enum VkResult {
|
||||||
VK_ERROR_INCOMPATIBLE_DRIVER = -9,
|
VK_ERROR_INCOMPATIBLE_DRIVER = -9,
|
||||||
VK_ERROR_TOO_MANY_OBJECTS = -10,
|
VK_ERROR_TOO_MANY_OBJECTS = -10,
|
||||||
VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
|
VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
|
||||||
|
VK_ERROR_FRAGMENTED_POOL = -12,
|
||||||
VK_ERROR_SURFACE_LOST_KHR = -1000000000,
|
VK_ERROR_SURFACE_LOST_KHR = -1000000000,
|
||||||
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
|
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
|
||||||
VK_SUBOPTIMAL_KHR = 1000001003,
|
VK_SUBOPTIMAL_KHR = 1000001003,
|
||||||
|
@ -149,9 +145,9 @@ typedef enum VkResult {
|
||||||
VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
|
VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
|
||||||
VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
|
VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
|
||||||
VK_ERROR_INVALID_SHADER_NV = -1000012000,
|
VK_ERROR_INVALID_SHADER_NV = -1000012000,
|
||||||
VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
|
VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
|
||||||
VK_RESULT_END_RANGE = VK_INCOMPLETE,
|
VK_RESULT_END_RANGE = VK_INCOMPLETE,
|
||||||
VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FORMAT_NOT_SUPPORTED + 1),
|
VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
|
||||||
VK_RESULT_MAX_ENUM = 0x7FFFFFFF
|
VK_RESULT_MAX_ENUM = 0x7FFFFFFF
|
||||||
} VkResult;
|
} VkResult;
|
||||||
|
|
||||||
|
@ -217,6 +213,19 @@ typedef enum VkStructureType {
|
||||||
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
||||||
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
|
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
|
||||||
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
|
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
|
||||||
|
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
|
||||||
|
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
|
||||||
|
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
|
||||||
|
VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
|
||||||
|
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
|
||||||
|
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
|
||||||
|
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
|
||||||
|
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
|
||||||
|
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
|
||||||
|
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
|
||||||
|
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
|
||||||
|
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
|
||||||
|
VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
|
||||||
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
||||||
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
|
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
|
||||||
VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
|
VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
|
||||||
|
@ -429,6 +438,14 @@ typedef enum VkFormat {
|
||||||
VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
|
VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
|
||||||
VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
|
VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
|
||||||
VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
|
VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
|
||||||
|
VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
|
||||||
|
VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
|
||||||
|
VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
|
||||||
|
VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
|
||||||
|
VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
|
||||||
|
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
|
||||||
|
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
|
||||||
|
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
|
||||||
VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
|
VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
|
||||||
VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
|
VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
|
||||||
VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
|
VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
|
||||||
|
@ -2350,7 +2367,7 @@ typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkIm
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
|
typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
|
typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
|
typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
|
typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
|
typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
|
typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
|
||||||
|
@ -3035,7 +3052,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
|
||||||
VkBuffer dstBuffer,
|
VkBuffer dstBuffer,
|
||||||
VkDeviceSize dstOffset,
|
VkDeviceSize dstOffset,
|
||||||
VkDeviceSize dataSize,
|
VkDeviceSize dataSize,
|
||||||
const uint32_t* pData);
|
const void* pData);
|
||||||
|
|
||||||
VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
|
VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
|
||||||
VkCommandBuffer commandBuffer,
|
VkCommandBuffer commandBuffer,
|
||||||
|
@ -3175,13 +3192,14 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
|
||||||
|
|
||||||
#define VK_KHR_SURFACE_SPEC_VERSION 25
|
#define VK_KHR_SURFACE_SPEC_VERSION 25
|
||||||
#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
|
#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
|
||||||
|
#define VK_COLORSPACE_SRGB_NONLINEAR_KHR VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
|
||||||
|
|
||||||
|
|
||||||
typedef enum VkColorSpaceKHR {
|
typedef enum VkColorSpaceKHR {
|
||||||
VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
|
VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
|
||||||
VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
|
VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
|
||||||
VK_COLOR_SPACE_END_RANGE_KHR = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
|
VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
|
||||||
VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
|
VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
|
||||||
VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
|
VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
} VkColorSpaceKHR;
|
} VkColorSpaceKHR;
|
||||||
|
|
||||||
|
@ -3278,7 +3296,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
|
||||||
#define VK_KHR_swapchain 1
|
#define VK_KHR_swapchain 1
|
||||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
|
||||||
|
|
||||||
#define VK_KHR_SWAPCHAIN_SPEC_VERSION 67
|
#define VK_KHR_SWAPCHAIN_SPEC_VERSION 68
|
||||||
#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
|
#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
|
||||||
|
|
||||||
typedef VkFlags VkSwapchainCreateFlagsKHR;
|
typedef VkFlags VkSwapchainCreateFlagsKHR;
|
||||||
|
@ -3434,7 +3452,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhys
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
|
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||||
|
|
||||||
|
@ -3717,7 +3735,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
||||||
#define VK_EXT_debug_report 1
|
#define VK_EXT_debug_report 1
|
||||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
||||||
|
|
||||||
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 2
|
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 3
|
||||||
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
|
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
|
||||||
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
|
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
|
||||||
|
|
||||||
|
@ -3835,6 +3853,307 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
|
||||||
#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
|
#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_AMD_rasterization_order 1
|
||||||
|
#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum VkRasterizationOrderAMD {
|
||||||
|
VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
|
||||||
|
VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
|
||||||
|
VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
|
||||||
|
VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
|
||||||
|
VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
|
||||||
|
VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
|
||||||
|
} VkRasterizationOrderAMD;
|
||||||
|
|
||||||
|
typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkRasterizationOrderAMD rasterizationOrder;
|
||||||
|
} VkPipelineRasterizationStateRasterizationOrderAMD;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_AMD_shader_trinary_minmax 1
|
||||||
|
#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_AMD_shader_explicit_vertex_parameter 1
|
||||||
|
#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_debug_marker 1
|
||||||
|
#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 3
|
||||||
|
#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
|
||||||
|
|
||||||
|
typedef struct VkDebugMarkerObjectNameInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkDebugReportObjectTypeEXT objectType;
|
||||||
|
uint64_t object;
|
||||||
|
const char* pObjectName;
|
||||||
|
} VkDebugMarkerObjectNameInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkDebugMarkerObjectTagInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkDebugReportObjectTypeEXT objectType;
|
||||||
|
uint64_t object;
|
||||||
|
uint64_t tagName;
|
||||||
|
size_t tagSize;
|
||||||
|
const void* pTag;
|
||||||
|
} VkDebugMarkerObjectTagInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkDebugMarkerMarkerInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const char* pMarkerName;
|
||||||
|
float color[4];
|
||||||
|
} VkDebugMarkerMarkerInfoEXT;
|
||||||
|
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
|
||||||
|
VkDevice device,
|
||||||
|
VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
|
||||||
|
VkDevice device,
|
||||||
|
VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
|
||||||
|
VkCommandBuffer commandBuffer);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define VK_AMD_gcn_shader 1
|
||||||
|
#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_NV_dedicated_allocation 1
|
||||||
|
#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
|
||||||
|
#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
|
||||||
|
|
||||||
|
typedef struct VkDedicatedAllocationImageCreateInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkBool32 dedicatedAllocation;
|
||||||
|
} VkDedicatedAllocationImageCreateInfoNV;
|
||||||
|
|
||||||
|
typedef struct VkDedicatedAllocationBufferCreateInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkBool32 dedicatedAllocation;
|
||||||
|
} VkDedicatedAllocationBufferCreateInfoNV;
|
||||||
|
|
||||||
|
typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkImage image;
|
||||||
|
VkBuffer buffer;
|
||||||
|
} VkDedicatedAllocationMemoryAllocateInfoNV;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_AMD_draw_indirect_count 1
|
||||||
|
#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
|
||||||
|
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkBuffer buffer,
|
||||||
|
VkDeviceSize offset,
|
||||||
|
VkBuffer countBuffer,
|
||||||
|
VkDeviceSize countBufferOffset,
|
||||||
|
uint32_t maxDrawCount,
|
||||||
|
uint32_t stride);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
VkBuffer buffer,
|
||||||
|
VkDeviceSize offset,
|
||||||
|
VkBuffer countBuffer,
|
||||||
|
VkDeviceSize countBufferOffset,
|
||||||
|
uint32_t maxDrawCount,
|
||||||
|
uint32_t stride);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define VK_AMD_negative_viewport_height 1
|
||||||
|
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_AMD_gpu_shader_half_float 1
|
||||||
|
#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_AMD_shader_ballot 1
|
||||||
|
#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
|
||||||
|
#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_IMG_format_pvrtc 1
|
||||||
|
#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
|
||||||
|
#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_NV_external_memory_capabilities 1
|
||||||
|
#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
|
||||||
|
#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
|
||||||
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
|
||||||
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
|
||||||
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
|
||||||
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
|
||||||
|
VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||||
|
} VkExternalMemoryHandleTypeFlagBitsNV;
|
||||||
|
typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
|
||||||
|
|
||||||
|
typedef enum VkExternalMemoryFeatureFlagBitsNV {
|
||||||
|
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
|
||||||
|
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
|
||||||
|
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
|
||||||
|
VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||||
|
} VkExternalMemoryFeatureFlagBitsNV;
|
||||||
|
typedef VkFlags VkExternalMemoryFeatureFlagsNV;
|
||||||
|
|
||||||
|
typedef struct VkExternalImageFormatPropertiesNV {
|
||||||
|
VkImageFormatProperties imageFormatProperties;
|
||||||
|
VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
|
||||||
|
} VkExternalImageFormatPropertiesNV;
|
||||||
|
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
VkFormat format,
|
||||||
|
VkImageType type,
|
||||||
|
VkImageTiling tiling,
|
||||||
|
VkImageUsageFlags usage,
|
||||||
|
VkImageCreateFlags flags,
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV externalHandleType,
|
||||||
|
VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define VK_NV_external_memory 1
|
||||||
|
#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
|
||||||
|
#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
|
||||||
|
|
||||||
|
typedef struct VkExternalMemoryImageCreateInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV handleTypes;
|
||||||
|
} VkExternalMemoryImageCreateInfoNV;
|
||||||
|
|
||||||
|
typedef struct VkExportMemoryAllocateInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV handleTypes;
|
||||||
|
} VkExportMemoryAllocateInfoNV;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||||
|
#define VK_NV_external_memory_win32 1
|
||||||
|
#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
|
||||||
|
#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
|
||||||
|
|
||||||
|
typedef struct VkImportMemoryWin32HandleInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV handleType;
|
||||||
|
HANDLE handle;
|
||||||
|
} VkImportMemoryWin32HandleInfoNV;
|
||||||
|
|
||||||
|
typedef struct VkExportMemoryWin32HandleInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const SECURITY_ATTRIBUTES* pAttributes;
|
||||||
|
DWORD dwAccess;
|
||||||
|
} VkExportMemoryWin32HandleInfoNV;
|
||||||
|
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
|
||||||
|
VkDevice device,
|
||||||
|
VkDeviceMemory memory,
|
||||||
|
VkExternalMemoryHandleTypeFlagsNV handleType,
|
||||||
|
HANDLE* pHandle);
|
||||||
|
#endif
|
||||||
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||||
|
#define VK_NV_win32_keyed_mutex 1
|
||||||
|
#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
|
||||||
|
#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
|
||||||
|
|
||||||
|
typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t acquireCount;
|
||||||
|
const VkDeviceMemory* pAcquireSyncs;
|
||||||
|
const uint64_t* pAcquireKeys;
|
||||||
|
const uint32_t* pAcquireTimeoutMilliseconds;
|
||||||
|
uint32_t releaseCount;
|
||||||
|
const VkDeviceMemory* pReleaseSyncs;
|
||||||
|
const uint64_t* pReleaseKeys;
|
||||||
|
} VkWin32KeyedMutexAcquireReleaseInfoNV;
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
||||||
|
|
||||||
|
#define VK_EXT_validation_flags 1
|
||||||
|
#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
|
||||||
|
#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum VkValidationCheckEXT {
|
||||||
|
VK_VALIDATION_CHECK_ALL_EXT = 0,
|
||||||
|
VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
|
||||||
|
VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
|
||||||
|
VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
|
||||||
|
VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkValidationCheckEXT;
|
||||||
|
|
||||||
|
typedef struct VkValidationFlagsEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t disabledValidationCheckCount;
|
||||||
|
VkValidationCheckEXT* pDisabledValidationChecks;
|
||||||
|
} VkValidationFlagsEXT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue