vulkan: Changes to 'upstream-unstable'
Rebased ref, commits from common ancestor:
commit ebeeed1f0b22188f42c8bc8e489239386ab5f0a3
Author: Lenny Komow <lenny@lunarg.com>
Date: Tue Apr 4 15:35:28 2017 -0600
winsdk: Fix missing vulkaninfo file extension
Change-Id: I9cef2172ed568372bca512d597099c37e4f0766e
diff --git a/windowsRuntimeInstaller/InstallerRT.nsi b/windowsRuntimeInstaller/InstallerRT.nsi
index 5601a9c..f7bde18 100644
--- a/windowsRuntimeInstaller/InstallerRT.nsi
+++ b/windowsRuntimeInstaller/InstallerRT.nsi
@@ -469,7 +469,7 @@ Section
# vulkaninfo.exe
File /oname=${APILOWER}info-$FileVersion.exe ..\build32\demos\RelWithDebInfo\${APILOWER}info.exe
SetOutPath "$INSTDIR"
- File /oname=${APILOWER}info ..\build32\demos\RelWithDebInfo\${APILOWER}info.exe
+ File /oname=${APILOWER}info.exe ..\build32\demos\RelWithDebInfo\${APILOWER}info.exe
StrCpy $1 55
Call CheckForError
commit 91118f7ee43eb6947bbba00a6c9a066b23298fcd
Author: Mark Lobodzinski <mark@lunarg.com>
Date: Mon Apr 3 10:39:08 2017 -0600
layers: Fix incorrect feature protect for KHX ext
Change-Id: I503c2984163455fd5fd91df6fa70da1dc88fc684
diff --git a/layers/object_tracker.cpp b/layers/object_tracker.cpp
index 9fbc1ad..74dac26 100644
--- a/layers/object_tracker.cpp
+++ b/layers/object_tracker.cpp
@@ -3403,11 +3403,11 @@ static void CheckDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo,
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHX_EXTERNAL_MEMORY_FD_EXTENSION_NAME) == 0) {
device_data->enables.khx_external_memory_fd = true;
}
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME) == 0) {
device_data->enables.khx_external_memory_win32 = true;
}
-#endif // VK_USE_PLATFORM_WIN32_KHR
+#endif // VK_USE_PLATFORM_WIN32_KHX
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHX_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME) == 0) {
device_data->enables.khx_external_semaphore_fd = true;
}
commit edb4535f073a873021e02c54105385dd0cc205a7
Author: Ian Elliott <ianelliott@google.com>
Date: Tue Mar 28 11:10:18 2017 -0600
demos: Remove DbgMsgs from incremental_present ext
The only DbgMsg messages left tell the user, if they use
"--incremental_present", whether the functionality is actually being
used, or if the VK_KHR_incremental_present extension isn't available.
NOTE: When somebody wants to see all of the DbgMsg messages, they should
use "git revert" with this commit.
Change-Id: Ic4189cbec2a64c50135b16c331c808fbbce975dc
diff --git a/demos/cube.c b/demos/cube.c
index 6570473..10ec60d 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1075,19 +1075,6 @@ static void demo_draw(struct demo *demo) {
.pRegions = ®ion,
};
present.pNext = ®ions;
- DbgMsg("present = %p, present.pNext = %p, regions = %p, regions.pNext = %p\n",
- &present,
- present.pNext,
- ®ions,
- regions.pNext);
- DbgMsg("Present Rectangle has offset: (%d, %d) and extent: (%d, %d)\n",
- regions.pRegions->pRectangles->offset.x,
- regions.pRegions->pRectangles->offset.y,
- regions.pRegions->pRectangles->extent.width,
- regions.pRegions->pRectangles->extent.height);
- DbgMsg("regions = %p, regions.pRegions = %p, "
- "regions.pRegions->pRectangles = %p\n",
- ®ions, regions.pRegions, regions.pRegions->pRectangles);
}
if (demo->VK_GOOGLE_display_timing_enabled) {
commit 02f7d213d30762f60b3f15207e497574080ee038
Author: Ian Elliott <ianelliott@google.com>
Date: Tue Mar 28 11:06:33 2017 -0600
demos: Use VK_KHR_incremental_present extension
Show how to use the VK_KHR_incremental_present extension. Other notes:
- There are a few diagnostic DbgMsg()'s, which can help show the usage.
- Added a "--incremental_present" command-line option to turn on use of
VK_KHR_incremental_present
- Should compile and run on Windows, Linux, and Android, but the feature will
only really be used on systems that support the extension.
Change-Id: I8a79d806cab7d35197c94dd85358a62b6b7469be
diff --git a/demos/cube.c b/demos/cube.c
index 9b4980e..6570473 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -347,6 +347,8 @@ struct demo {
bool use_staging_buffer;
bool separate_present_queue;
+ bool VK_KHR_incremental_present_enabled;
+
bool VK_GOOGLE_display_timing_enabled;
bool syncd_with_actual_presents;
uint64_t refresh_duration;
@@ -1046,6 +1048,48 @@ static void demo_draw(struct demo *demo) {
.pImageIndices = &demo->current_buffer,
};
+ if (demo->VK_KHR_incremental_present_enabled) {
+ // If using VK_KHR_incremental_present, we provide a hint of the region
+ // that contains changed content relative to the previously-presented
+ // image. The implementation can use this hint in order to save
+ // work/power (by only copying the region in the hint). The
+ // implementation is free to ignore the hint though, and so we must
+ // ensure that the entire image has the correctly-drawn content.
+ uint32_t eighthOfWidth = demo->width / 8;
+ uint32_t eighthOfHeight = demo->height / 8;
+ VkRectLayerKHR rect = {
+ .offset.x = eighthOfWidth,
+ .offset.y = eighthOfHeight,
+ .extent.width = eighthOfWidth * 6,
+ .extent.height = eighthOfHeight * 6,
+ .layer = 0,
+ };
+ VkPresentRegionKHR region = {
+ .rectangleCount = 1,
+ .pRectangles = &rect,
+ };
+ VkPresentRegionsKHR regions = {
+ .sType = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
+ .pNext = present.pNext,
+ .swapchainCount = present.swapchainCount,
+ .pRegions = ®ion,
+ };
+ present.pNext = ®ions;
+ DbgMsg("present = %p, present.pNext = %p, regions = %p, regions.pNext = %p\n",
+ &present,
+ present.pNext,
+ ®ions,
+ regions.pNext);
+ DbgMsg("Present Rectangle has offset: (%d, %d) and extent: (%d, %d)\n",
+ regions.pRegions->pRectangles->offset.x,
+ regions.pRegions->pRectangles->offset.y,
+ regions.pRegions->pRectangles->extent.width,
+ regions.pRegions->pRectangles->extent.height);
+ DbgMsg("regions = %p, regions.pRegions = %p, "
+ "regions.pRegions->pRectangles = %p\n",
+ ®ions, regions.pRegions, regions.pRegions->pRectangles);
+ }
+
if (demo->VK_GOOGLE_display_timing_enabled) {
VkPresentTimeGOOGLE ptime;
if (demo->prev_desired_present_time == 0) {
@@ -3330,6 +3374,27 @@ static void demo_init_vk(struct demo *demo) {
assert(demo->enabled_extension_count < 64);
}
+ if (demo->VK_KHR_incremental_present_enabled) {
+ // Even though the user "enabled" the extension via the command
+ // line, we must make sure that it's enumerated for use with the
+ // device. Therefore, disable it here, and re-enable it again if
+ // enumerated.
+ demo->VK_KHR_incremental_present_enabled = false;
+ for (uint32_t i = 0; i < device_extension_count; i++) {
+ if (!strcmp(VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME,
+ device_extensions[i].extensionName)) {
+ demo->extension_names[demo->enabled_extension_count++] =
+ VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME;
+ demo->VK_KHR_incremental_present_enabled = true;
+ DbgMsg("VK_KHR_incremental_present extension enabled\n");
+ }
+ assert(demo->enabled_extension_count < 64);
+ }
+ if (!demo->VK_KHR_incremental_present_enabled) {
+ DbgMsg("VK_KHR_incremental_present extension NOT AVAILABLE\n");
+ }
+ }
+
if (demo->VK_GOOGLE_display_timing_enabled) {
// Even though the user "enabled" the extension via the command
// line, we must make sure that it's enumerated for use with the
@@ -3794,12 +3859,16 @@ static void demo_init(struct demo *demo, int argc, char **argv) {
demo->VK_GOOGLE_display_timing_enabled = true;
continue;
}
+ if (strcmp(argv[i], "--incremental_present") == 0) {
+ demo->VK_KHR_incremental_present_enabled = true;
+ continue;
+ }
#if defined(ANDROID)
ERR_EXIT("Usage: cube [--validate]\n", "Usage");
#else
fprintf(stderr, "Usage:\n %s [--use_staging] [--validate] [--validate-checks-disabled] [--break] "
- "[--c <framecount>] [--suppress_popups] [--display_timing] [--present_mode <present mode enum>]\n"
+ "[--c <framecount>] [--suppress_popups] [--incremental_present] [--display_timing] [--present_mode <present mode enum>]\n"
"VK_PRESENT_MODE_IMMEDIATE_KHR = %d\n"
"VK_PRESENT_MODE_MAILBOX_KHR = %d\n"
"VK_PRESENT_MODE_FIFO_KHR = %d\n"
commit b5cbd4bac422dae67a912dbbcef2711bc0274ce9
Author: Tobin Ehlis <tobine@google.com>
Date: Fri Jan 13 12:13:57 2017 -0700
layers: incremental_present parameter validation
Add parameter validation for VK_KHR_incremental_present extension.
If the VkPresentRegionsKHR is included down the struct chain for
QueuePresentKHR() validate its parameters.
Change-Id: I97abe552411f229eecbbf7df7d565f7953cdd1b7
diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp
index 0edce55..f3bdc4a 100644
--- a/layers/parameter_validation.cpp
+++ b/layers/parameter_validation.cpp
@@ -98,6 +98,7 @@ struct layer_data {
bool nv_external_memory : 1;
bool nv_external_memory_win32 : 1;
bool nvx_device_generated_commands : 1;
+ bool incremental_present : 1;
};
uint64_t padding[4];
} enables;
@@ -1675,6 +1676,8 @@ static void CheckDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo,
#endif
} else if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME) == 0) {
device_data->enables.nvx_device_generated_commands = true;
+ } else if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME) == 0) {
+ device_data->enables.incremental_present = true;
}
}
}
@@ -5180,6 +5183,42 @@ VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR(VkQueue queue, const VkPresentInf
VK_KHR_SWAPCHAIN_EXTENSION_NAME);
skip |= parameter_validation_vkQueuePresentKHR(my_data->report_data, pPresentInfo);
+
+ if (pPresentInfo && pPresentInfo->pNext) {
+ // Verify ext struct
+ struct std_header {
+ VkStructureType sType;
+ const void *pNext;
+ };
+ std_header *pnext = (std_header *)pPresentInfo->pNext;
+ while (pnext) {
+ if (VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR == pnext->sType) {
+ skip |= require_device_extension(my_data, my_data->enables.incremental_present, "vkQueuePresentKHR",
+ VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME);
+ VkPresentRegionsKHR *present_regions = (VkPresentRegionsKHR *)pnext;
+ if (present_regions->swapchainCount != pPresentInfo->swapchainCount) {
+ skip |= log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0,
+ __LINE__, INVALID_USAGE, LayerName,
+ "QueuePresentKHR(): pPresentInfo->swapchainCount has a value of %i"
+ " but VkPresentRegionsKHR extension swapchainCount is %i. These values must be equal.",
+ pPresentInfo->swapchainCount, present_regions->swapchainCount);
+ }
+ skip |= validate_struct_pnext(my_data->report_data, "QueuePresentKHR", "pCreateInfo->pNext->pNext", NULL,
+ present_regions->pNext, 0, NULL, GeneratedHeaderVersion);
+ skip |= validate_array(my_data->report_data, "QueuePresentKHR", "pCreateInfo->pNext->swapchainCount",
+ "pCreateInfo->pNext->pRegions", present_regions->swapchainCount, present_regions->pRegions,
+ true, false);
+ for (uint32_t i = 0; i < present_regions->swapchainCount; ++i) {
+ skip |=
+ validate_array(my_data->report_data, "QueuePresentKHR", "pCreateInfo->pNext->pRegions[].rectangleCount",
+ "pCreateInfo->pNext->pRegions[].pRectangles", present_regions->pRegions[i].rectangleCount,
+ present_regions->pRegions[i].pRectangles, true, false);
+ }
+ }
+ pnext = (std_header *)pnext->pNext;
+ }
+ }
+
if (!skip) {
result = my_data->dispatch_table.QueuePresentKHR(queue, pPresentInfo);
commit c78bb8f84551ddfb3802d18c678500e26e4116cb
Author: Tobin Ehlis <tobine@google.com>
Date: Fri Jan 13 12:21:07 2017 -0700
layers: incremental_present rectangle validation
In core_validation verify the offset, extent & layer values for each
VkRectLayerKHR struct passed into vkQueuePresentKHR() for the
VK_KHR_incremental_present extension.
Change-Id: I4aa7cbac61afa6f4c9e733bb51cd486aadab5cec
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index dfed7eb..eea62c4 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -10904,6 +10904,58 @@ VKAPI_ATTR VkResult VKAPI_CALL QueuePresentKHR(VkQueue queue, const VkPresentInf
}
}
}
+ if (pPresentInfo && pPresentInfo->pNext) {
+ // Verify ext struct
+ struct std_header {
+ VkStructureType sType;
+ const void *pNext;
+ };
+ std_header *pnext = (std_header *)pPresentInfo->pNext;
+ while (pnext) {
+ if (VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR == pnext->sType) {
+ VkPresentRegionsKHR *present_regions = (VkPresentRegionsKHR *)pnext;
+ for (uint32_t i = 0; i < present_regions->swapchainCount; ++i) {
+ auto swapchain_data = GetSwapchainNode(dev_data, pPresentInfo->pSwapchains[i]);
+ assert(swapchain_data);
+ VkPresentRegionKHR region = present_regions->pRegions[i];
+ for (uint32_t j = 0; j < region.rectangleCount; ++j) {
+ VkRectLayerKHR rect = region.pRectangles[j];
+ // TODO: Need to update these errors to their unique error ids when available
+ if ((rect.offset.x + rect.extent.width) > swapchain_data->createInfo.imageExtent.width) {
+ skip_call |= log_msg(
+ dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
+ reinterpret_cast<uint64_t const &>(pPresentInfo->pSwapchains[i]), __LINE__,
+ DRAWSTATE_SWAPCHAIN_INVALID_IMAGE, "DS", "vkQueuePresentKHR(): For VkPresentRegionKHR down pNext "
+ "chain, pRegion[%i].pRectangles[%i], the sum of offset.x "
+ "(%i) and extent.width (%i) is greater than the "
+ "corresponding swapchain's imageExtent.width (%i).",
+ i, j, rect.offset.x, rect.extent.width, swapchain_data->createInfo.imageExtent.width);
+ }
+ if ((rect.offset.y + rect.extent.height) > swapchain_data->createInfo.imageExtent.height) {
+ skip_call |= log_msg(
+ dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
+ reinterpret_cast<uint64_t const &>(pPresentInfo->pSwapchains[i]), __LINE__,
+ DRAWSTATE_SWAPCHAIN_INVALID_IMAGE, "DS", "vkQueuePresentKHR(): For VkPresentRegionKHR down pNext "
+ "chain, pRegion[%i].pRectangles[%i], the sum of offset.y "
+ "(%i) and extent.height (%i) is greater than the "
+ "corresponding swapchain's imageExtent.height (%i).",
+ i, j, rect.offset.y, rect.extent.height, swapchain_data->createInfo.imageExtent.height);
+ }
+ if (rect.layer > swapchain_data->createInfo.imageArrayLayers) {
+ skip_call |= log_msg(
+ dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
+ reinterpret_cast<uint64_t const &>(pPresentInfo->pSwapchains[i]), __LINE__,
+ DRAWSTATE_SWAPCHAIN_INVALID_IMAGE, "DS",
+ "vkQueuePresentKHR(): For VkPresentRegionKHR down pNext chain, pRegion[%i].pRectangles[%i], the "
+ "layer (%i) is greater than the corresponding swapchain's imageArrayLayers (%i).",
+ i, j, rect.layer, swapchain_data->createInfo.imageArrayLayers);
+ }
+ }
+ }
+ }
+ pnext = (std_header *)pnext->pNext;
+ }
+ }
if (skip_call) {
return VK_ERROR_VALIDATION_FAILED_EXT;
commit e0f6861670c68fae101f1b2e1b56ea954f3be19a
Author: Mark Lobodzinski <mark@lunarg.com>
Date: Mon Apr 3 08:22:04 2017 -0600
header: Update to 1.0.46 Vulkan version
- updated include/vulkan/vulkan.h
- updated scripts/vk.xml
- updated layers json files
- updated tests json files
- fixed include/vulkan/vulkan.hpp -- see Note
Note: The Vulkan.hpp generator asserted when processing the 1.0.46 header
files. Added a temporary workaround for this issue, but it may affect
use of the vulkan.hpp header file.
Change-Id: Iab296bf2004fbf6099baaab148994b15b0392381
diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
index a235861..ef0c246 100644
--- a/include/vulkan/vulkan.h
+++ b/include/vulkan/vulkan.h
@@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
-#define VK_HEADER_VERSION 45
+#define VK_HEADER_VERSION 46
#define VK_NULL_HANDLE 0
@@ -281,6 +281,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX = 1000078002,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX = 1000079000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
+ VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
@@ -4004,6 +4005,30 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
const VkWriteDescriptorSet* pDescriptorWrites);
#endif
+#define VK_KHR_incremental_present 1
+#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
+#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
+
+typedef struct VkRectLayerKHR {
+ VkOffset2D offset;
+ VkExtent2D extent;
+ uint32_t layer;
+} VkRectLayerKHR;
+
+typedef struct VkPresentRegionKHR {
+ uint32_t rectangleCount;
+ const VkRectLayerKHR* pRectangles;
+} VkPresentRegionKHR;
+
+typedef struct VkPresentRegionsKHR {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t swapchainCount;
+ const VkPresentRegionKHR* pRegions;
+} VkPresentRegionsKHR;
+
+
+
#define VK_KHR_descriptor_update_template 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
@@ -4079,7 +4104,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
#define VK_EXT_debug_report 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
-#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 5
+#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 6
#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
@@ -4118,6 +4143,7 @@ typedef enum VkDebugReportObjectTypeEXT {
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
+ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
@@ -4899,7 +4925,7 @@ typedef struct VkExportMemoryAllocateInfoKHX {
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
#define VK_KHX_external_memory_win32 1
#define VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
#define VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHX_external_memory_win32"
@@ -4942,7 +4968,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHX(
HANDLE handle,
VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties);
#endif
-#endif /* VK_USE_PLATFORM_WIN32_KHR */
+#endif /* VK_USE_PLATFORM_WIN32_KHX */
#define VK_KHX_external_memory_fd 1
#define VK_KHX_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
@@ -5676,7 +5702,7 @@ typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
uint32_t maxDiscardRectangles;
} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index 102ee8c..0199195 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -42,7 +42,7 @@
# include <vector>
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-static_assert( VK_HEADER_VERSION == 45 , "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 46 , "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -4788,6 +4788,119 @@ namespace vk
};
static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
+ struct RectLayerKHR
+ {
+ RectLayerKHR( Offset2D offset_ = Offset2D(), Extent2D extent_ = Extent2D(), uint32_t layer_ = 0 )
+ : offset( offset_ )
+ , extent( extent_ )
+ , layer( layer_ )
+ {
+ }
+
+ RectLayerKHR( VkRectLayerKHR const & rhs )
+ {
+ memcpy( this, &rhs, sizeof(RectLayerKHR) );
+ }
+
+ RectLayerKHR& operator=( VkRectLayerKHR const & rhs )
+ {
+ memcpy( this, &rhs, sizeof(RectLayerKHR) );
+ return *this;
+ }
+
+ RectLayerKHR& setOffset( Offset2D offset_ )
+ {
+ offset = offset_;
+ return *this;
+ }
+
+ RectLayerKHR& setExtent( Extent2D extent_ )
+ {
+ extent = extent_;
+ return *this;
+ }
+
+ RectLayerKHR& setLayer( uint32_t layer_ )
+ {
+ layer = layer_;
+ return *this;
+ }
+
+ operator const VkRectLayerKHR&() const
+ {
+ return *reinterpret_cast<const VkRectLayerKHR*>(this);
+ }
+
+ bool operator==( RectLayerKHR const& rhs ) const
+ {
+ return ( offset == rhs.offset )
+ && ( extent == rhs.extent )
+ && ( layer == rhs.layer );
+ }
+
+ bool operator!=( RectLayerKHR const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ Offset2D offset;
+ Extent2D extent;
+ uint32_t layer;
+ };
+ static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
+
+ struct PresentRegionKHR
+ {
+ PresentRegionKHR( uint32_t rectangleCount_ = 0, const RectLayerKHR* pRectangles_ = nullptr )
+ : rectangleCount( rectangleCount_ )
+ , pRectangles( pRectangles_ )
+ {
+ }
+
+ PresentRegionKHR( VkPresentRegionKHR const & rhs )
+ {
+ memcpy( this, &rhs, sizeof(PresentRegionKHR) );
+ }
+
+ PresentRegionKHR& operator=( VkPresentRegionKHR const & rhs )
+ {
+ memcpy( this, &rhs, sizeof(PresentRegionKHR) );
+ return *this;
+ }
+
+ PresentRegionKHR& setRectangleCount( uint32_t rectangleCount_ )
+ {
+ rectangleCount = rectangleCount_;
+ return *this;
+ }
+
+ PresentRegionKHR& setPRectangles( const RectLayerKHR* pRectangles_ )
+ {
+ pRectangles = pRectangles_;
+ return *this;
+ }
+
+ operator const VkPresentRegionKHR&() const
+ {
+ return *reinterpret_cast<const VkPresentRegionKHR*>(this);
+ }
+
+ bool operator==( PresentRegionKHR const& rhs ) const
+ {
+ return ( rectangleCount == rhs.rectangleCount )
+ && ( pRectangles == rhs.pRectangles );
+ }
+
+ bool operator!=( PresentRegionKHR const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ uint32_t rectangleCount;
+ const RectLayerKHR* pRectangles;
+ };
+ static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
+
struct XYColorEXT
{
XYColorEXT( float x_ = 0, float y_ = 0 )
@@ -6249,6 +6362,7 @@ namespace vk
eD3D12FenceSubmitInfoKHX = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX,
eImportSemaphoreFdInfoKHX = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX,
ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
+ ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
eObjectTableCreateInfoNVX = VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX,
eIndirectCommandsLayoutCreateInfoNVX = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX,
@@ -10030,6 +10144,73 @@ namespace vk
};
static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
+ struct PresentRegionsKHR
+ {
+ PresentRegionsKHR( uint32_t swapchainCount_ = 0, const PresentRegionKHR* pRegions_ = nullptr )
+ : sType( StructureType::ePresentRegionsKHR )
+ , pNext( nullptr )
+ , swapchainCount( swapchainCount_ )
+ , pRegions( pRegions_ )
+ {
+ }
+
+ PresentRegionsKHR( VkPresentRegionsKHR const & rhs )
+ {
+ memcpy( this, &rhs, sizeof(PresentRegionsKHR) );
+ }
+
+ PresentRegionsKHR& operator=( VkPresentRegionsKHR const & rhs )
+ {
+ memcpy( this, &rhs, sizeof(PresentRegionsKHR) );
+ return *this;
+ }
+
+ PresentRegionsKHR& setPNext( const void* pNext_ )
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ PresentRegionsKHR& setSwapchainCount( uint32_t swapchainCount_ )
+ {
+ swapchainCount = swapchainCount_;
+ return *this;
+ }
+
+ PresentRegionsKHR& setPRegions( const PresentRegionKHR* pRegions_ )
+ {
+ pRegions = pRegions_;
+ return *this;
+ }
+
+ operator const VkPresentRegionsKHR&() const
+ {
+ return *reinterpret_cast<const VkPresentRegionsKHR*>(this);
+ }
+
+ bool operator==( PresentRegionsKHR const& rhs ) const
+ {
+ return ( sType == rhs.sType )
+ && ( pNext == rhs.pNext )
+ && ( swapchainCount == rhs.swapchainCount )
+ && ( pRegions == rhs.pRegions );
+ }
+
+ bool operator!=( PresentRegionsKHR const& rhs ) const
+ {
+ return !operator==( rhs );
+ }
+
+ private:
+ StructureType sType;
+
+ public:
+ const void* pNext;
+ uint32_t swapchainCount;
+ const PresentRegionKHR* pRegions;
+ };
+ static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
+
struct PhysicalDeviceIDPropertiesKHX
{
operator const VkPhysicalDeviceIDPropertiesKHX&() const
@@ -10064,7 +10245,7 @@ namespace vk
};
static_assert( sizeof( PhysicalDeviceIDPropertiesKHX ) == sizeof( VkPhysicalDeviceIDPropertiesKHX ), "struct and wrapper have different size!" );
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
struct ExportMemoryWin32HandleInfoKHX
{
ExportMemoryWin32HandleInfoKHX( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr, DWORD dwAccess_ = 0, LPCWSTR name_ = 0 )
@@ -10140,9 +10321,9 @@ namespace vk
LPCWSTR name;
};
static_assert( sizeof( ExportMemoryWin32HandleInfoKHX ) == sizeof( VkExportMemoryWin32HandleInfoKHX ), "struct and wrapper have different size!" );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
struct MemoryWin32HandlePropertiesKHX
{
operator const VkMemoryWin32HandlePropertiesKHX&() const
@@ -10170,7 +10351,7 @@ namespace vk
uint32_t memoryTypeBits;
};
static_assert( sizeof( MemoryWin32HandlePropertiesKHX ) == sizeof( VkMemoryWin32HandlePropertiesKHX ), "struct and wrapper have different size!" );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
struct MemoryFdPropertiesKHX
{
@@ -11839,7 +12020,7 @@ namespace vk
return *this;
}
- PhysicalDeviceDiscardRectanglePropertiesEXT& setPNext( const void* pNext_ )
+ PhysicalDeviceDiscardRectanglePropertiesEXT& setPNext( void* pNext_ )
{
pNext = pNext_;
return *this;
@@ -11872,7 +12053,7 @@ namespace vk
StructureType sType;
public:
- const void* pNext;
+ void* pNext;
uint32_t maxDiscardRectangles;
};
static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
@@ -17780,7 +17961,8 @@ namespace vk
eDisplayKhr = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
eDisplayModeKhr = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
eObjectTableNvx = VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT,
- eIndirectCommandsLayoutNvx = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
+ eIndirectCommandsLayoutNvx = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
+ eDescriptorUpdateTemplateKhrKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
};
struct DebugMarkerObjectNameInfoEXT
@@ -19607,7 +19789,7 @@ namespace vk
};
static_assert( sizeof( ExportMemoryAllocateInfoKHX ) == sizeof( VkExportMemoryAllocateInfoKHX ), "struct and wrapper have different size!" );
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
struct ImportMemoryWin32HandleInfoKHX
{
ImportMemoryWin32HandleInfoKHX( ExternalMemoryHandleTypeFlagBitsKHX handleType_ = ExternalMemoryHandleTypeFlagBitsKHX::eOpaqueFd, HANDLE handle_ = 0 )
@@ -19674,7 +19856,7 @@ namespace vk
HANDLE handle;
};
static_assert( sizeof( ImportMemoryWin32HandleInfoKHX ) == sizeof( VkImportMemoryWin32HandleInfoKHX ), "struct and wrapper have different size!" );
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
struct ImportMemoryFdInfoKHX
{
@@ -23280,19 +23462,19 @@ namespace vk
void trimCommandPoolKHR( CommandPool commandPool, CommandPoolTrimFlagsKHR flags = CommandPoolTrimFlagsKHR() ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
Result getMemoryWin32HandleKHX( DeviceMemory memory, ExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
ResultValueType<HANDLE>::type getMemoryWin32HandleKHX( DeviceMemory memory, ExternalMemoryHandleTypeFlagBitsKHX handleType ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
Result getMemoryWin32HandlePropertiesKHX( ExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, MemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
ResultValueType<MemoryWin32HandlePropertiesKHX>::type getMemoryWin32HandlePropertiesKHX( ExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
Result getMemoryFdKHX( DeviceMemory memory, ExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
@@ -25231,7 +25413,7 @@ namespace vk
vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlagsKHR>( flags ) );
}
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHX( DeviceMemory memory, ExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle ) const
{
return static_cast<Result>( vkGetMemoryWin32HandleKHX( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagBitsKHX>( handleType ), pHandle ) );
@@ -25244,9 +25426,9 @@ namespace vk
return createResultValue( result, handle, "vk::Device::getMemoryWin32HandleKHX" );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
-#ifdef VK_USE_PLATFORM_WIN32_KHR
+#ifdef VK_USE_PLATFORM_WIN32_KHX
VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHX( ExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, MemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties ) const
{
return static_cast<Result>( vkGetMemoryWin32HandlePropertiesKHX( m_device, static_cast<VkExternalMemoryHandleTypeFlagBitsKHX>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHX*>( pMemoryWin32HandleProperties ) ) );
@@ -25259,7 +25441,7 @@ namespace vk
return createResultValue( result, memoryWin32HandleProperties, "vk::Device::getMemoryWin32HandlePropertiesKHX" );
}
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VK_USE_PLATFORM_WIN32_KHX*/
VULKAN_HPP_INLINE Result Device::getMemoryFdKHX( DeviceMemory memory, ExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd ) const
{
@@ -28641,6 +28823,7 @@ namespace vk
case StructureType::eD3D12FenceSubmitInfoKHX: return "D3D12FenceSubmitInfoKHX";
case StructureType::eImportSemaphoreFdInfoKHX: return "ImportSemaphoreFdInfoKHX";
case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR: return "PhysicalDevicePushDescriptorPropertiesKHR";
+ case StructureType::ePresentRegionsKHR: return "PresentRegionsKHR";
case StructureType::eDescriptorUpdateTemplateCreateInfoKHR: return "DescriptorUpdateTemplateCreateInfoKHR";
case StructureType::eObjectTableCreateInfoNVX: return "ObjectTableCreateInfoNVX";
case StructureType::eIndirectCommandsLayoutCreateInfoNVX: return "IndirectCommandsLayoutCreateInfoNVX";
@@ -29625,6 +29808,7 @@ namespace vk
case DebugReportObjectTypeEXT::eDisplayModeKhr: return "DisplayModeKhr";
case DebugReportObjectTypeEXT::eObjectTableNvx: return "ObjectTableNvx";
case DebugReportObjectTypeEXT::eIndirectCommandsLayoutNvx: return "IndirectCommandsLayoutNvx";
+ case DebugReportObjectTypeEXT::eDescriptorUpdateTemplateKhrKHR: return "DescriptorUpdateTemplateKhrKHR";
default: return "invalid";
}
}
diff --git a/layers/linux/VkLayer_core_validation.json b/layers/linux/VkLayer_core_validation.json
index 95292a2..8788bda 100644
--- a/layers/linux/VkLayer_core_validation.json
+++ b/layers/linux/VkLayer_core_validation.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_core_validation",
"type": "GLOBAL",
"library_path": "./libVkLayer_core_validation.so",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/linux/VkLayer_object_tracker.json b/layers/linux/VkLayer_object_tracker.json
index 8bfd615..f4c88a4 100644
--- a/layers/linux/VkLayer_object_tracker.json
+++ b/layers/linux/VkLayer_object_tracker.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_object_tracker",
"type": "GLOBAL",
"library_path": "./libVkLayer_object_tracker.so",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/linux/VkLayer_parameter_validation.json b/layers/linux/VkLayer_parameter_validation.json
index 57f6233..cd5d40e 100644
--- a/layers/linux/VkLayer_parameter_validation.json
+++ b/layers/linux/VkLayer_parameter_validation.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_parameter_validation",
"type": "GLOBAL",
"library_path": "./libVkLayer_parameter_validation.so",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/linux/VkLayer_swapchain.json b/layers/linux/VkLayer_swapchain.json
index dad5d5b..41cdc64 100644
--- a/layers/linux/VkLayer_swapchain.json
+++ b/layers/linux/VkLayer_swapchain.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_swapchain",
"type": "GLOBAL",
"library_path": "./libVkLayer_swapchain.so",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/linux/VkLayer_threading.json b/layers/linux/VkLayer_threading.json
index 14884b4..8d4b590 100644
--- a/layers/linux/VkLayer_threading.json
+++ b/layers/linux/VkLayer_threading.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_GOOGLE_threading",
"type": "GLOBAL",
"library_path": "./libVkLayer_threading.so",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "Google Validation Layer",
"instance_extensions": [
diff --git a/layers/linux/VkLayer_unique_objects.json b/layers/linux/VkLayer_unique_objects.json
index 713eb3c..368766b 100644
--- a/layers/linux/VkLayer_unique_objects.json
+++ b/layers/linux/VkLayer_unique_objects.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_GOOGLE_unique_objects",
"type": "GLOBAL",
"library_path": "./libVkLayer_unique_objects.so",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "Google Validation Layer"
}
diff --git a/layers/windows/VkLayer_core_validation.json b/layers/windows/VkLayer_core_validation.json
index 50c8e7c..37e57a5 100644
--- a/layers/windows/VkLayer_core_validation.json
+++ b/layers/windows/VkLayer_core_validation.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_core_validation",
"type": "GLOBAL",
"library_path": ".\\VkLayer_core_validation.dll",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/windows/VkLayer_object_tracker.json b/layers/windows/VkLayer_object_tracker.json
index a30b8a0..fc8dfd2 100644
--- a/layers/windows/VkLayer_object_tracker.json
+++ b/layers/windows/VkLayer_object_tracker.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_object_tracker",
"type": "GLOBAL",
"library_path": ".\\VkLayer_object_tracker.dll",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/windows/VkLayer_parameter_validation.json b/layers/windows/VkLayer_parameter_validation.json
index 7e79714..21bcb03 100644
--- a/layers/windows/VkLayer_parameter_validation.json
+++ b/layers/windows/VkLayer_parameter_validation.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_parameter_validation",
"type": "GLOBAL",
"library_path": ".\\VkLayer_parameter_validation.dll",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/windows/VkLayer_swapchain.json b/layers/windows/VkLayer_swapchain.json
index a6d37e8..34e1fde 100644
--- a/layers/windows/VkLayer_swapchain.json
+++ b/layers/windows/VkLayer_swapchain.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_LUNARG_swapchain",
"type": "GLOBAL",
"library_path": ".\\VkLayer_swapchain.dll",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "LunarG Validation Layer",
"instance_extensions": [
diff --git a/layers/windows/VkLayer_threading.json b/layers/windows/VkLayer_threading.json
index de119c1..7e531a0 100644
--- a/layers/windows/VkLayer_threading.json
+++ b/layers/windows/VkLayer_threading.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_GOOGLE_threading",
"type": "GLOBAL",
"library_path": ".\\VkLayer_threading.dll",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "Google Validation Layer",
"instance_extensions": [
diff --git a/layers/windows/VkLayer_unique_objects.json b/layers/windows/VkLayer_unique_objects.json
index 1e484e7..319a48c 100644
--- a/layers/windows/VkLayer_unique_objects.json
+++ b/layers/windows/VkLayer_unique_objects.json
@@ -4,7 +4,7 @@
"name": "VK_LAYER_GOOGLE_unique_objects",
"type": "GLOBAL",
"library_path": ".\\VkLayer_unique_objects.dll",
- "api_version": "1.0.45",
+ "api_version": "1.0.46",
"implementation_version": "1",
"description": "Google Validation Layer"
}
diff --git a/scripts/vk.xml b/scripts/vk.xml
Reply to: