Empty merge of sc-v2-dev-plus-aosp-without-vendor@8433047
Bug: 226662282
Merged-In: I57adede47416e28451bbafaab7927314ecd006e6
Change-Id: I5bd04810525985cdcfad7e01f52ff9179be52311
diff --git a/android-emu/android/base/ring_buffer.c b/android-emu/android/base/ring_buffer.c
index 3618b4b..d9dfafa 100644
--- a/android-emu/android/base/ring_buffer.c
+++ b/android-emu/android/base/ring_buffer.c
@@ -42,7 +42,7 @@
#define RING_BUFFER_VERSION 1
-static inline void ring_buffer_pause() {
+static inline void ring_buffer_pause(void) {
#if RING_BUFFER_X86
_mm_pause();
#else
diff --git a/system/egl/egl.cpp b/system/egl/egl.cpp
index fc3d0a9..11553e3 100644
--- a/system/egl/egl.cpp
+++ b/system/egl/egl.cpp
@@ -2229,6 +2229,9 @@
#if PLATFORM_SDK_VERSION >= 28
case HAL_PIXEL_FORMAT_YCBCR_420_888:
#endif
+#if PLATFORM_SDK_VERSION >= 30
+ case HAL_PIXEL_FORMAT_YCBCR_P010:
+#endif
break;
case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
ALOGW("%s:%d using HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED\n", __func__, __LINE__);
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 80862a6..a4bf2e7 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -1368,6 +1368,7 @@
"VK_KHR_image_format_list",
"VK_KHR_incremental_present",
"VK_KHR_pipeline_executable_properties",
+ "VK_EXT_queue_family_foreign",
#if defined(VK_USE_PLATFORM_ANDROID_KHR) || defined(__linux__)
"VK_KHR_external_semaphore",
"VK_KHR_external_semaphore_fd",
@@ -1641,6 +1642,19 @@
}
}
+ void on_vkGetPhysicalDeviceFeatures2(
+ void*,
+ VkPhysicalDevice,
+ VkPhysicalDeviceFeatures2* pFeatures) {
+ if (pFeatures) {
+ VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* memoryReportFeaturesEXT =
+ vk_find_struct<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(pFeatures);
+ if (memoryReportFeaturesEXT) {
+ memoryReportFeaturesEXT->deviceMemoryReport = VK_TRUE;
+ }
+ }
+ }
+
void on_vkGetPhysicalDeviceProperties2(
void*,
VkPhysicalDevice,
@@ -7684,6 +7698,7 @@
for (uint32_t i = 0; i < pAllocateInfo->commandBufferCount; ++i) {
struct goldfish_VkCommandBuffer* cb = as_goldfish_VkCommandBuffer(pCommandBuffers[i]);
cb->isSecondary = pAllocateInfo->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY;
+ cb->device = device;
}
return res;
@@ -7826,6 +7841,14 @@
it->second.enabledExtensions.end();
}
+ VkDevice getDevice(VkCommandBuffer commandBuffer) const {
+ struct goldfish_VkCommandBuffer* cb = as_goldfish_VkCommandBuffer(commandBuffer);
+ if (!cb) {
+ return nullptr;
+ }
+ return cb->device;
+ }
+
// Resets staging stream for this command buffer and primary command buffers
// where this command buffer has been recorded. If requested, also clears the pending
// descriptor sets.
@@ -8007,6 +8030,9 @@
bool ResourceTracker::hasDeviceExtension(VkDevice device, const std::string &name) const {
return mImpl->hasDeviceExtension(device, name);
}
+VkDevice ResourceTracker::getDevice(VkCommandBuffer commandBuffer) const {
+ return mImpl->getDevice(commandBuffer);
+}
void ResourceTracker::addToCommandPool(VkCommandPool commandPool,
uint32_t commandBufferCount,
VkCommandBuffer* pCommandBuffers) {
@@ -8105,6 +8131,22 @@
pProperties);
}
+void ResourceTracker::on_vkGetPhysicalDeviceFeatures2(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceFeatures2* pFeatures) {
+ mImpl->on_vkGetPhysicalDeviceFeatures2(context, physicalDevice,
+ pFeatures);
+}
+
+void ResourceTracker::on_vkGetPhysicalDeviceFeatures2KHR(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceFeatures2* pFeatures) {
+ mImpl->on_vkGetPhysicalDeviceFeatures2(context, physicalDevice,
+ pFeatures);
+}
+
void ResourceTracker::on_vkGetPhysicalDeviceProperties2(
void* context,
VkPhysicalDevice physicalDevice,
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index 68823d3..e25e75d 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -82,6 +82,14 @@
VkInstance instance, uint32_t* pPhysicalDeviceCount,
VkPhysicalDevice* pPhysicalDevices);
+ void on_vkGetPhysicalDeviceFeatures2(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceFeatures2* pFeatures);
+ void on_vkGetPhysicalDeviceFeatures2KHR(
+ void* context,
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceFeatures2* pFeatures);
void on_vkGetPhysicalDeviceProperties(
void* context,
VkPhysicalDevice physicalDevice,
@@ -632,6 +640,7 @@
uint32_t getApiVersionFromDevice(VkDevice device) const;
bool hasInstanceExtension(VkInstance instance, const std::string& name) const;
bool hasDeviceExtension(VkDevice instance, const std::string& name) const;
+ VkDevice getDevice(VkCommandBuffer commandBuffer) const;
void addToCommandPool(VkCommandPool commandPool,
uint32_t commandBufferCount,
VkCommandBuffer* pCommandBuffers);
diff --git a/system/vulkan_enc/Resources.h b/system/vulkan_enc/Resources.h
index 67c498e..17043ca 100644
--- a/system/vulkan_enc/Resources.h
+++ b/system/vulkan_enc/Resources.h
@@ -129,6 +129,7 @@
struct goldfish_vk_object_list* superObjects;
void* userPtr;
bool isSecondary;
+ VkDevice device;
};
} // extern "C"
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 2fbeb75..f7eef9d 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module VkEncoder
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "VkEncoder.h"
@@ -11633,6 +11634,7 @@
{
transform_fromhost_VkPhysicalDeviceFeatures2(sResourceTracker, (VkPhysicalDeviceFeatures2*)(pFeatures));
}
+ sResourceTracker->on_vkGetPhysicalDeviceFeatures2(this, physicalDevice, pFeatures);
++encodeCount;;
if (0 == encodeCount % POOL_CLEAR_INTERVAL)
{
@@ -17679,6 +17681,7 @@
{
transform_fromhost_VkPhysicalDeviceFeatures2(sResourceTracker, (VkPhysicalDeviceFeatures2*)(pFeatures));
}
+ sResourceTracker->on_vkGetPhysicalDeviceFeatures2KHR(this, physicalDevice, pFeatures);
++encodeCount;;
if (0 == encodeCount % POOL_CLEAR_INTERVAL)
{
diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h
index b0e7d8e..c42704b 100644
--- a/system/vulkan_enc/VkEncoder.h
+++ b/system/vulkan_enc/VkEncoder.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module VkEncoder
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/func_table.cpp b/system/vulkan_enc/func_table.cpp
index a267ffb..4e17d42 100644
--- a/system/vulkan_enc/func_table.cpp
+++ b/system/vulkan_enc/func_table.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module func_table
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "func_table.h"
@@ -1650,6 +1651,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDeviceMask(
+ VkCommandBuffer commandBuffer,
+ uint32_t deviceMask)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);
+ if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDeviceMask", "VK_VERSION_1_1");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */);
+}
static void entry_vkCmdDispatchBase(
VkCommandBuffer commandBuffer,
uint32_t baseGroupX,
@@ -1663,6 +1678,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDispatchBase(
+ VkCommandBuffer commandBuffer,
+ uint32_t baseGroupX,
+ uint32_t baseGroupY,
+ uint32_t baseGroupZ,
+ uint32_t groupCountX,
+ uint32_t groupCountY,
+ uint32_t groupCountZ)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);
+ if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDispatchBase", "VK_VERSION_1_1");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDispatchBase");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
+}
static VkResult entry_vkEnumeratePhysicalDeviceGroups(
VkInstance instance,
uint32_t* pPhysicalDeviceGroupCount,
@@ -2055,6 +2089,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndirectCount(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCount", "VK_VERSION_1_2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndirectCount");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
static void entry_vkCmdDrawIndexedIndirectCount(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
@@ -2068,6 +2121,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndexedIndirectCount(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCount", "VK_VERSION_1_2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCount");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
static VkResult entry_vkCreateRenderPass2(
VkDevice device,
const VkRenderPassCreateInfo2* pCreateInfo,
@@ -2106,6 +2178,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginRenderPass2(
+ VkCommandBuffer commandBuffer,
+ const VkRenderPassBeginInfo* pRenderPassBegin,
+ const VkSubpassBeginInfo* pSubpassBeginInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderPass2", "VK_VERSION_1_2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
+}
static void entry_vkCmdNextSubpass2(
VkCommandBuffer commandBuffer,
const VkSubpassBeginInfo* pSubpassBeginInfo,
@@ -2115,6 +2202,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdNextSubpass2(
+ VkCommandBuffer commandBuffer,
+ const VkSubpassBeginInfo* pSubpassBeginInfo,
+ const VkSubpassEndInfo* pSubpassEndInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdNextSubpass2", "VK_VERSION_1_2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdNextSubpass2");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
+}
static void entry_vkCmdEndRenderPass2(
VkCommandBuffer commandBuffer,
const VkSubpassEndInfo* pSubpassEndInfo)
@@ -2123,6 +2225,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndRenderPass2(
+ VkCommandBuffer commandBuffer,
+ const VkSubpassEndInfo* pSubpassEndInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderPass2", "VK_VERSION_1_2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndRenderPass2");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
+}
static void entry_vkResetQueryPool(
VkDevice device,
VkQueryPool queryPool,
@@ -3034,6 +3150,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginVideoCodingKHR(
+ VkCommandBuffer commandBuffer,
+ const VkVideoBeginCodingInfoKHR* pBeginInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginVideoCodingKHR", "VK_KHR_video_queue");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginVideoCodingKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */);
+}
static void entry_vkCmdEndVideoCodingKHR(
VkCommandBuffer commandBuffer,
const VkVideoEndCodingInfoKHR* pEndCodingInfo)
@@ -3042,6 +3172,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndVideoCodingKHR(
+ VkCommandBuffer commandBuffer,
+ const VkVideoEndCodingInfoKHR* pEndCodingInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndVideoCodingKHR", "VK_KHR_video_queue");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndVideoCodingKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */);
+}
static void entry_vkCmdControlVideoCodingKHR(
VkCommandBuffer commandBuffer,
const VkVideoCodingControlInfoKHR* pCodingControlInfo)
@@ -3050,6 +3194,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdControlVideoCodingKHR(
+ VkCommandBuffer commandBuffer,
+ const VkVideoCodingControlInfoKHR* pCodingControlInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdControlVideoCodingKHR", "VK_KHR_video_queue");
+ }
+ AEMU_SCOPED_TRACE("vkCmdControlVideoCodingKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */);
+}
#endif
#ifdef VK_KHR_video_decode_queue
static void entry_vkCmdDecodeVideoKHR(
@@ -3060,6 +3218,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDecodeVideoKHR(
+ VkCommandBuffer commandBuffer,
+ const VkVideoDecodeInfoKHR* pFrameInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_video_decode_queue"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDecodeVideoKHR", "VK_KHR_video_decode_queue");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDecodeVideoKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */);
+}
#endif
#ifdef VK_KHR_dynamic_rendering
static void entry_vkCmdBeginRenderingKHR(
@@ -3070,6 +3242,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginRenderingKHR(
+ VkCommandBuffer commandBuffer,
+ const VkRenderingInfoKHR* pRenderingInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderingKHR", "VK_KHR_dynamic_rendering");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginRenderingKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */);
+}
static void entry_vkCmdEndRenderingKHR(
VkCommandBuffer commandBuffer)
{
@@ -3077,6 +3263,19 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndRenderingKHR(
+ VkCommandBuffer commandBuffer)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderingKHR", "VK_KHR_dynamic_rendering");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndRenderingKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */);
+}
#endif
#ifdef VK_KHR_multiview
#endif
@@ -3182,6 +3381,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDeviceMaskKHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t deviceMask)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_device_group"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDeviceMaskKHR", "VK_KHR_device_group");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */);
+}
static void entry_vkCmdDispatchBaseKHR(
VkCommandBuffer commandBuffer,
uint32_t baseGroupX,
@@ -3195,6 +3408,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDispatchBaseKHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t baseGroupX,
+ uint32_t baseGroupY,
+ uint32_t baseGroupZ,
+ uint32_t groupCountX,
+ uint32_t groupCountY,
+ uint32_t groupCountZ)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_device_group"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDispatchBaseKHR", "VK_KHR_device_group");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
+}
#endif
#ifdef VK_KHR_shader_draw_parameters
#endif
@@ -3503,6 +3735,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, true /* do lock */);
}
+static void dynCheck_entry_vkCmdPushDescriptorSetKHR(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipelineLayout layout,
+ uint32_t set,
+ uint32_t descriptorWriteCount,
+ const VkWriteDescriptorSet* pDescriptorWrites)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_push_descriptor"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdPushDescriptorSetKHR", "VK_KHR_push_descriptor");
+ }
+ AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, true /* do lock */);
+}
static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
VkCommandBuffer commandBuffer,
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
@@ -3514,6 +3764,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */);
}
+static void dynCheck_entry_vkCmdPushDescriptorSetWithTemplateKHR(
+ VkCommandBuffer commandBuffer,
+ VkDescriptorUpdateTemplate descriptorUpdateTemplate,
+ VkPipelineLayout layout,
+ uint32_t set,
+ const void* pData)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_push_descriptor"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdPushDescriptorSetWithTemplateKHR", "VK_KHR_push_descriptor");
+ }
+ AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */);
+}
#endif
#ifdef VK_KHR_shader_float16_int8
#endif
@@ -3641,6 +3908,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginRenderPass2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkRenderPassBeginInfo* pRenderPassBegin,
+ const VkSubpassBeginInfo* pSubpassBeginInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderPass2KHR", "VK_KHR_create_renderpass2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
+}
static void entry_vkCmdNextSubpass2KHR(
VkCommandBuffer commandBuffer,
const VkSubpassBeginInfo* pSubpassBeginInfo,
@@ -3650,6 +3932,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdNextSubpass2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkSubpassBeginInfo* pSubpassBeginInfo,
+ const VkSubpassEndInfo* pSubpassEndInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdNextSubpass2KHR", "VK_KHR_create_renderpass2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
+}
static void entry_vkCmdEndRenderPass2KHR(
VkCommandBuffer commandBuffer,
const VkSubpassEndInfo* pSubpassEndInfo)
@@ -3658,6 +3955,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndRenderPass2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkSubpassEndInfo* pSubpassEndInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderPass2KHR", "VK_KHR_create_renderpass2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, true /* do lock */);
+}
#endif
#ifdef VK_KHR_shared_presentable_image
static VkResult entry_vkGetSwapchainStatusKHR(
@@ -4192,6 +4503,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndirectCountKHR(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCountKHR", "VK_KHR_draw_indirect_count");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
static void entry_vkCmdDrawIndexedIndirectCountKHR(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
@@ -4205,6 +4535,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndexedIndirectCountKHR(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCountKHR", "VK_KHR_draw_indirect_count");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
#endif
#ifdef VK_KHR_shader_subgroup_extended_types
#endif
@@ -4328,6 +4677,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetFragmentShadingRateKHR(
+ VkCommandBuffer commandBuffer,
+ const VkExtent2D* pFragmentSize,
+ const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetFragmentShadingRateKHR", "VK_KHR_fragment_shading_rate");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */);
+}
#endif
#ifdef VK_KHR_spirv_1_4
#endif
@@ -4678,6 +5042,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEncodeVideoKHR(
+ VkCommandBuffer commandBuffer,
+ const VkVideoEncodeInfoKHR* pEncodeInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_video_encode_queue"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEncodeVideoKHR", "VK_KHR_video_encode_queue");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEncodeVideoKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */);
+}
#endif
#ifdef VK_KHR_synchronization2
static void entry_vkCmdSetEvent2KHR(
@@ -4689,6 +5067,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetEvent2KHR(
+ VkCommandBuffer commandBuffer,
+ VkEvent event,
+ const VkDependencyInfoKHR* pDependencyInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetEvent2KHR", "VK_KHR_synchronization2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetEvent2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */);
+}
static void entry_vkCmdResetEvent2KHR(
VkCommandBuffer commandBuffer,
VkEvent event,
@@ -4698,6 +5091,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */);
}
+static void dynCheck_entry_vkCmdResetEvent2KHR(
+ VkCommandBuffer commandBuffer,
+ VkEvent event,
+ VkPipelineStageFlags2KHR stageMask)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdResetEvent2KHR", "VK_KHR_synchronization2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdResetEvent2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */);
+}
static void entry_vkCmdWaitEvents2KHR(
VkCommandBuffer commandBuffer,
uint32_t eventCount,
@@ -4708,6 +5116,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */);
}
+static void dynCheck_entry_vkCmdWaitEvents2KHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t eventCount,
+ const VkEvent* pEvents,
+ const VkDependencyInfoKHR* pDependencyInfos)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdWaitEvents2KHR", "VK_KHR_synchronization2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdWaitEvents2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */);
+}
static void entry_vkCmdPipelineBarrier2KHR(
VkCommandBuffer commandBuffer,
const VkDependencyInfoKHR* pDependencyInfo)
@@ -4716,6 +5140,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdPipelineBarrier2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkDependencyInfoKHR* pDependencyInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdPipelineBarrier2KHR", "VK_KHR_synchronization2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */);
+}
static void entry_vkCmdWriteTimestamp2KHR(
VkCommandBuffer commandBuffer,
VkPipelineStageFlags2KHR stage,
@@ -4726,6 +5164,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */);
}
+static void dynCheck_entry_vkCmdWriteTimestamp2KHR(
+ VkCommandBuffer commandBuffer,
+ VkPipelineStageFlags2KHR stage,
+ VkQueryPool queryPool,
+ uint32_t query)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdWriteTimestamp2KHR", "VK_KHR_synchronization2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */);
+}
static VkResult entry_vkQueueSubmit2KHR(
VkQueue queue,
uint32_t submitCount,
@@ -4749,6 +5203,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */);
}
+static void dynCheck_entry_vkCmdWriteBufferMarker2AMD(
+ VkCommandBuffer commandBuffer,
+ VkPipelineStageFlags2KHR stage,
+ VkBuffer dstBuffer,
+ VkDeviceSize dstOffset,
+ uint32_t marker)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdWriteBufferMarker2AMD", "VK_KHR_synchronization2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdWriteBufferMarker2AMD");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */);
+}
static void entry_vkGetQueueCheckpointData2NV(
VkQueue queue,
uint32_t* pCheckpointDataCount,
@@ -4774,6 +5245,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyBuffer2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyBufferInfo2KHR* pCopyBufferInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyBuffer2KHR", "VK_KHR_copy_commands2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyBuffer2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */);
+}
static void entry_vkCmdCopyImage2KHR(
VkCommandBuffer commandBuffer,
const VkCopyImageInfo2KHR* pCopyImageInfo)
@@ -4782,6 +5267,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyImage2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyImageInfo2KHR* pCopyImageInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyImage2KHR", "VK_KHR_copy_commands2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyImage2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */);
+}
static void entry_vkCmdCopyBufferToImage2KHR(
VkCommandBuffer commandBuffer,
const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
@@ -4790,6 +5289,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyBufferToImage2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyBufferToImage2KHR", "VK_KHR_copy_commands2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
+}
static void entry_vkCmdCopyImageToBuffer2KHR(
VkCommandBuffer commandBuffer,
const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
@@ -4798,6 +5311,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyImageToBuffer2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyImageToBuffer2KHR", "VK_KHR_copy_commands2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
+}
static void entry_vkCmdBlitImage2KHR(
VkCommandBuffer commandBuffer,
const VkBlitImageInfo2KHR* pBlitImageInfo)
@@ -4806,6 +5333,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBlitImage2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkBlitImageInfo2KHR* pBlitImageInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBlitImage2KHR", "VK_KHR_copy_commands2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBlitImage2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */);
+}
static void entry_vkCmdResolveImage2KHR(
VkCommandBuffer commandBuffer,
const VkResolveImageInfo2KHR* pResolveImageInfo)
@@ -4814,6 +5355,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdResolveImage2KHR(
+ VkCommandBuffer commandBuffer,
+ const VkResolveImageInfo2KHR* pResolveImageInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdResolveImage2KHR", "VK_KHR_copy_commands2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdResolveImage2KHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */);
+}
#endif
#ifdef VK_KHR_format_feature_flags2
#endif
@@ -5074,6 +5629,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDebugMarkerBeginEXT(
+ VkCommandBuffer commandBuffer,
+ const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerBeginEXT", "VK_EXT_debug_marker");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, true /* do lock */);
+}
static void entry_vkCmdDebugMarkerEndEXT(
VkCommandBuffer commandBuffer)
{
@@ -5081,6 +5650,19 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDebugMarkerEndEXT(
+ VkCommandBuffer commandBuffer)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerEndEXT", "VK_EXT_debug_marker");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer, true /* do lock */);
+}
static void entry_vkCmdDebugMarkerInsertEXT(
VkCommandBuffer commandBuffer,
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
@@ -5089,6 +5671,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDebugMarkerInsertEXT(
+ VkCommandBuffer commandBuffer,
+ const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerInsertEXT", "VK_EXT_debug_marker");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, true /* do lock */);
+}
#endif
#ifdef VK_AMD_gcn_shader
#endif
@@ -5107,6 +5703,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBindTransformFeedbackBuffersEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstBinding,
+ uint32_t bindingCount,
+ const VkBuffer* pBuffers,
+ const VkDeviceSize* pOffsets,
+ const VkDeviceSize* pSizes)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBindTransformFeedbackBuffersEXT", "VK_EXT_transform_feedback");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBindTransformFeedbackBuffersEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */);
+}
static void entry_vkCmdBeginTransformFeedbackEXT(
VkCommandBuffer commandBuffer,
uint32_t firstCounterBuffer,
@@ -5118,6 +5732,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginTransformFeedbackEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstCounterBuffer,
+ uint32_t counterBufferCount,
+ const VkBuffer* pCounterBuffers,
+ const VkDeviceSize* pCounterBufferOffsets)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginTransformFeedbackEXT", "VK_EXT_transform_feedback");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginTransformFeedbackEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
+}
static void entry_vkCmdEndTransformFeedbackEXT(
VkCommandBuffer commandBuffer,
uint32_t firstCounterBuffer,
@@ -5129,6 +5760,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndTransformFeedbackEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstCounterBuffer,
+ uint32_t counterBufferCount,
+ const VkBuffer* pCounterBuffers,
+ const VkDeviceSize* pCounterBufferOffsets)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndTransformFeedbackEXT", "VK_EXT_transform_feedback");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndTransformFeedbackEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
+}
static void entry_vkCmdBeginQueryIndexedEXT(
VkCommandBuffer commandBuffer,
VkQueryPool queryPool,
@@ -5140,6 +5788,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginQueryIndexedEXT(
+ VkCommandBuffer commandBuffer,
+ VkQueryPool queryPool,
+ uint32_t query,
+ VkQueryControlFlags flags,
+ uint32_t index)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginQueryIndexedEXT", "VK_EXT_transform_feedback");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginQueryIndexedEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */);
+}
static void entry_vkCmdEndQueryIndexedEXT(
VkCommandBuffer commandBuffer,
VkQueryPool queryPool,
@@ -5150,6 +5815,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndQueryIndexedEXT(
+ VkCommandBuffer commandBuffer,
+ VkQueryPool queryPool,
+ uint32_t query,
+ uint32_t index)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndQueryIndexedEXT", "VK_EXT_transform_feedback");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndQueryIndexedEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */);
+}
static void entry_vkCmdDrawIndirectByteCountEXT(
VkCommandBuffer commandBuffer,
uint32_t instanceCount,
@@ -5163,6 +5844,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndirectByteCountEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t instanceCount,
+ uint32_t firstInstance,
+ VkBuffer counterBuffer,
+ VkDeviceSize counterBufferOffset,
+ uint32_t counterOffset,
+ uint32_t vertexStride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectByteCountEXT", "VK_EXT_transform_feedback");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndirectByteCountEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */);
+}
#endif
#ifdef VK_NVX_binary_import
static VkResult entry_vkCreateCuModuleNVX(
@@ -5277,6 +5977,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCuLaunchKernelNVX(
+ VkCommandBuffer commandBuffer,
+ const VkCuLaunchInfoNVX* pLaunchInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCuLaunchKernelNVX", "VK_NVX_binary_import");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCuLaunchKernelNVX");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */);
+}
#endif
#ifdef VK_NVX_image_view_handle
static uint32_t entry_vkGetImageViewHandleNVX(
@@ -5346,6 +6060,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndirectCountAMD(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCountAMD", "VK_AMD_draw_indirect_count");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
static void entry_vkCmdDrawIndexedIndirectCountAMD(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
@@ -5359,6 +6092,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawIndexedIndirectCountAMD(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCountAMD", "VK_AMD_draw_indirect_count");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
#endif
#ifdef VK_AMD_negative_viewport_height
#endif
@@ -5515,6 +6267,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginConditionalRenderingEXT(
+ VkCommandBuffer commandBuffer,
+ const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginConditionalRenderingEXT", "VK_EXT_conditional_rendering");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, true /* do lock */);
+}
static void entry_vkCmdEndConditionalRenderingEXT(
VkCommandBuffer commandBuffer)
{
@@ -5522,6 +6288,19 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndConditionalRenderingEXT(
+ VkCommandBuffer commandBuffer)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndConditionalRenderingEXT", "VK_EXT_conditional_rendering");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */);
+}
#endif
#ifdef VK_NV_clip_space_w_scaling
static void entry_vkCmdSetViewportWScalingNV(
@@ -5534,6 +6313,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetViewportWScalingNV(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstViewport,
+ uint32_t viewportCount,
+ const VkViewportWScalingNV* pViewportWScalings)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportWScalingNV", "VK_NV_clip_space_w_scaling");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, true /* do lock */);
+}
#endif
#ifdef VK_EXT_direct_mode_display
static VkResult entry_vkReleaseDisplayEXT(
@@ -5782,6 +6577,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDiscardRectangleEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstDiscardRectangle,
+ uint32_t discardRectangleCount,
+ const VkRect2D* pDiscardRectangles)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDiscardRectangleEXT", "VK_EXT_discard_rectangles");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, true /* do lock */);
+}
#endif
#ifdef VK_EXT_conservative_rasterization
#endif
@@ -5984,6 +6795,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBeginDebugUtilsLabelEXT(
+ VkCommandBuffer commandBuffer,
+ const VkDebugUtilsLabelEXT* pLabelInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBeginDebugUtilsLabelEXT", "VK_EXT_debug_utils");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
+}
static void entry_vkCmdEndDebugUtilsLabelEXT(
VkCommandBuffer commandBuffer)
{
@@ -5991,6 +6816,19 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer, true /* do lock */);
}
+static void dynCheck_entry_vkCmdEndDebugUtilsLabelEXT(
+ VkCommandBuffer commandBuffer)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdEndDebugUtilsLabelEXT", "VK_EXT_debug_utils");
+ }
+ AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer, true /* do lock */);
+}
static void entry_vkCmdInsertDebugUtilsLabelEXT(
VkCommandBuffer commandBuffer,
const VkDebugUtilsLabelEXT* pLabelInfo)
@@ -5999,6 +6837,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdInsertDebugUtilsLabelEXT(
+ VkCommandBuffer commandBuffer,
+ const VkDebugUtilsLabelEXT* pLabelInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdInsertDebugUtilsLabelEXT", "VK_EXT_debug_utils");
+ }
+ AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
+}
static VkResult entry_vkCreateDebugUtilsMessengerEXT(
VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
@@ -6110,6 +6962,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetSampleLocationsEXT(
+ VkCommandBuffer commandBuffer,
+ const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_sample_locations"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetSampleLocationsEXT", "VK_EXT_sample_locations");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, true /* do lock */);
+}
static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
VkPhysicalDevice physicalDevice,
VkSampleCountFlagBits samples,
@@ -6287,6 +7153,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBindShadingRateImageNV(
+ VkCommandBuffer commandBuffer,
+ VkImageView imageView,
+ VkImageLayout imageLayout)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBindShadingRateImageNV", "VK_NV_shading_rate_image");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBindShadingRateImageNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */);
+}
static void entry_vkCmdSetViewportShadingRatePaletteNV(
VkCommandBuffer commandBuffer,
uint32_t firstViewport,
@@ -6297,6 +7178,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetViewportShadingRatePaletteNV(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstViewport,
+ uint32_t viewportCount,
+ const VkShadingRatePaletteNV* pShadingRatePalettes)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportShadingRatePaletteNV", "VK_NV_shading_rate_image");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetViewportShadingRatePaletteNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */);
+}
static void entry_vkCmdSetCoarseSampleOrderNV(
VkCommandBuffer commandBuffer,
VkCoarseSampleOrderTypeNV sampleOrderType,
@@ -6307,6 +7204,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetCoarseSampleOrderNV(
+ VkCommandBuffer commandBuffer,
+ VkCoarseSampleOrderTypeNV sampleOrderType,
+ uint32_t customSampleOrderCount,
+ const VkCoarseSampleOrderCustomNV* pCustomSampleOrders)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetCoarseSampleOrderNV", "VK_NV_shading_rate_image");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetCoarseSampleOrderNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */);
+}
#endif
#ifdef VK_NV_ray_tracing
static VkResult entry_vkCreateAccelerationStructureNV(
@@ -6426,6 +7339,27 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBuildAccelerationStructureNV(
+ VkCommandBuffer commandBuffer,
+ const VkAccelerationStructureInfoNV* pInfo,
+ VkBuffer instanceData,
+ VkDeviceSize instanceOffset,
+ VkBool32 update,
+ VkAccelerationStructureNV dst,
+ VkAccelerationStructureNV src,
+ VkBuffer scratch,
+ VkDeviceSize scratchOffset)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructureNV", "VK_NV_ray_tracing");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructureNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */);
+}
static void entry_vkCmdCopyAccelerationStructureNV(
VkCommandBuffer commandBuffer,
VkAccelerationStructureNV dst,
@@ -6436,6 +7370,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyAccelerationStructureNV(
+ VkCommandBuffer commandBuffer,
+ VkAccelerationStructureNV dst,
+ VkAccelerationStructureNV src,
+ VkCopyAccelerationStructureModeKHR mode)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureNV", "VK_NV_ray_tracing");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */);
+}
static void entry_vkCmdTraceRaysNV(
VkCommandBuffer commandBuffer,
VkBuffer raygenShaderBindingTableBuffer,
@@ -6457,6 +7407,33 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */);
}
+static void dynCheck_entry_vkCmdTraceRaysNV(
+ VkCommandBuffer commandBuffer,
+ VkBuffer raygenShaderBindingTableBuffer,
+ VkDeviceSize raygenShaderBindingOffset,
+ VkBuffer missShaderBindingTableBuffer,
+ VkDeviceSize missShaderBindingOffset,
+ VkDeviceSize missShaderBindingStride,
+ VkBuffer hitShaderBindingTableBuffer,
+ VkDeviceSize hitShaderBindingOffset,
+ VkDeviceSize hitShaderBindingStride,
+ VkBuffer callableShaderBindingTableBuffer,
+ VkDeviceSize callableShaderBindingOffset,
+ VkDeviceSize callableShaderBindingStride,
+ uint32_t width,
+ uint32_t height,
+ uint32_t depth)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysNV", "VK_NV_ray_tracing");
+ }
+ AEMU_SCOPED_TRACE("vkCmdTraceRaysNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */);
+}
static VkResult entry_vkCreateRayTracingPipelinesNV(
VkDevice device,
VkPipelineCache pipelineCache,
@@ -6597,6 +7574,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
}
+static void dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesNV(
+ VkCommandBuffer commandBuffer,
+ uint32_t accelerationStructureCount,
+ const VkAccelerationStructureNV* pAccelerationStructures,
+ VkQueryType queryType,
+ VkQueryPool queryPool,
+ uint32_t firstQuery)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdWriteAccelerationStructuresPropertiesNV", "VK_NV_ray_tracing");
+ }
+ AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
+}
static VkResult entry_vkCompileDeferredNV(
VkDevice device,
VkPipeline pipeline,
@@ -6676,6 +7671,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */);
}
+static void dynCheck_entry_vkCmdWriteBufferMarkerAMD(
+ VkCommandBuffer commandBuffer,
+ VkPipelineStageFlagBits pipelineStage,
+ VkBuffer dstBuffer,
+ VkDeviceSize dstOffset,
+ uint32_t marker)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_AMD_buffer_marker"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdWriteBufferMarkerAMD", "VK_AMD_buffer_marker");
+ }
+ AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */);
+}
#endif
#ifdef VK_AMD_pipeline_compiler_control
#endif
@@ -6749,6 +7761,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawMeshTasksNV(
+ VkCommandBuffer commandBuffer,
+ uint32_t taskCount,
+ uint32_t firstTask)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksNV", "VK_NV_mesh_shader");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */);
+}
static void entry_vkCmdDrawMeshTasksIndirectNV(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
@@ -6760,6 +7787,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawMeshTasksIndirectNV(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ uint32_t drawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksIndirectNV", "VK_NV_mesh_shader");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
+}
static void entry_vkCmdDrawMeshTasksIndirectCountNV(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
@@ -6773,6 +7817,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawMeshTasksIndirectCountNV(
+ VkCommandBuffer commandBuffer,
+ VkBuffer buffer,
+ VkDeviceSize offset,
+ VkBuffer countBuffer,
+ VkDeviceSize countBufferOffset,
+ uint32_t maxDrawCount,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksIndirectCountNV", "VK_NV_mesh_shader");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectCountNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
#endif
#ifdef VK_NV_fragment_shader_barycentric
#endif
@@ -6789,6 +7852,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetExclusiveScissorNV(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstExclusiveScissor,
+ uint32_t exclusiveScissorCount,
+ const VkRect2D* pExclusiveScissors)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_scissor_exclusive"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetExclusiveScissorNV", "VK_NV_scissor_exclusive");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetExclusiveScissorNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */);
+}
#endif
#ifdef VK_NV_device_diagnostic_checkpoints
static void entry_vkCmdSetCheckpointNV(
@@ -6799,6 +7878,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetCheckpointNV(
+ VkCommandBuffer commandBuffer,
+ const void* pCheckpointMarker)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetCheckpointNV", "VK_NV_device_diagnostic_checkpoints");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, true /* do lock */);
+}
static void entry_vkGetQueueCheckpointDataNV(
VkQueue queue,
uint32_t* pCheckpointDataCount,
@@ -6866,6 +7959,22 @@
vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
return vkCmdSetPerformanceMarkerINTEL_VkResult_return;
}
+static VkResult dynCheck_entry_vkCmdSetPerformanceMarkerINTEL(
+ VkCommandBuffer commandBuffer,
+ const VkPerformanceMarkerInfoINTEL* pMarkerInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceMarkerINTEL", "VK_INTEL_performance_query");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetPerformanceMarkerINTEL");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ VkResult vkCmdSetPerformanceMarkerINTEL_VkResult_return = (VkResult)0;
+ vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
+ return vkCmdSetPerformanceMarkerINTEL_VkResult_return;
+}
static VkResult entry_vkCmdSetPerformanceStreamMarkerINTEL(
VkCommandBuffer commandBuffer,
const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
@@ -6876,6 +7985,22 @@
vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return;
}
+static VkResult dynCheck_entry_vkCmdSetPerformanceStreamMarkerINTEL(
+ VkCommandBuffer commandBuffer,
+ const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceStreamMarkerINTEL", "VK_INTEL_performance_query");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetPerformanceStreamMarkerINTEL");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ VkResult vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = (VkResult)0;
+ vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
+ return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return;
+}
static VkResult entry_vkCmdSetPerformanceOverrideINTEL(
VkCommandBuffer commandBuffer,
const VkPerformanceOverrideInfoINTEL* pOverrideInfo)
@@ -6886,6 +8011,22 @@
vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */);
return vkCmdSetPerformanceOverrideINTEL_VkResult_return;
}
+static VkResult dynCheck_entry_vkCmdSetPerformanceOverrideINTEL(
+ VkCommandBuffer commandBuffer,
+ const VkPerformanceOverrideInfoINTEL* pOverrideInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceOverrideINTEL", "VK_INTEL_performance_query");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetPerformanceOverrideINTEL");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ VkResult vkCmdSetPerformanceOverrideINTEL_VkResult_return = (VkResult)0;
+ vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */);
+ return vkCmdSetPerformanceOverrideINTEL_VkResult_return;
+}
static VkResult entry_vkAcquirePerformanceConfigurationINTEL(
VkDevice device,
const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
@@ -7244,6 +8385,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetLineStippleEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t lineStippleFactor,
+ uint16_t lineStipplePattern)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_line_rasterization"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetLineStippleEXT", "VK_EXT_line_rasterization");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetLineStippleEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */);
+}
#endif
#ifdef VK_EXT_shader_atomic_float
#endif
@@ -7285,6 +8441,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetCullModeEXT(
+ VkCommandBuffer commandBuffer,
+ VkCullModeFlags cullMode)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetCullModeEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetCullModeEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */);
+}
static void entry_vkCmdSetFrontFaceEXT(
VkCommandBuffer commandBuffer,
VkFrontFace frontFace)
@@ -7293,6 +8463,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetFrontFaceEXT(
+ VkCommandBuffer commandBuffer,
+ VkFrontFace frontFace)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetFrontFaceEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetFrontFaceEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */);
+}
static void entry_vkCmdSetPrimitiveTopologyEXT(
VkCommandBuffer commandBuffer,
VkPrimitiveTopology primitiveTopology)
@@ -7301,6 +8485,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetPrimitiveTopologyEXT(
+ VkCommandBuffer commandBuffer,
+ VkPrimitiveTopology primitiveTopology)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetPrimitiveTopologyEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopologyEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */);
+}
static void entry_vkCmdSetViewportWithCountEXT(
VkCommandBuffer commandBuffer,
uint32_t viewportCount,
@@ -7310,6 +8508,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetViewportWithCountEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t viewportCount,
+ const VkViewport* pViewports)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportWithCountEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetViewportWithCountEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */);
+}
static void entry_vkCmdSetScissorWithCountEXT(
VkCommandBuffer commandBuffer,
uint32_t scissorCount,
@@ -7319,6 +8532,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetScissorWithCountEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t scissorCount,
+ const VkRect2D* pScissors)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetScissorWithCountEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetScissorWithCountEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */);
+}
static void entry_vkCmdBindVertexBuffers2EXT(
VkCommandBuffer commandBuffer,
uint32_t firstBinding,
@@ -7332,6 +8560,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBindVertexBuffers2EXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t firstBinding,
+ uint32_t bindingCount,
+ const VkBuffer* pBuffers,
+ const VkDeviceSize* pOffsets,
+ const VkDeviceSize* pSizes,
+ const VkDeviceSize* pStrides)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBindVertexBuffers2EXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2EXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */);
+}
static void entry_vkCmdSetDepthTestEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 depthTestEnable)
@@ -7340,6 +8587,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDepthTestEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 depthTestEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthTestEnableEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */);
+}
static void entry_vkCmdSetDepthWriteEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 depthWriteEnable)
@@ -7348,6 +8609,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDepthWriteEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 depthWriteEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthWriteEnableEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */);
+}
static void entry_vkCmdSetDepthCompareOpEXT(
VkCommandBuffer commandBuffer,
VkCompareOp depthCompareOp)
@@ -7356,6 +8631,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDepthCompareOpEXT(
+ VkCommandBuffer commandBuffer,
+ VkCompareOp depthCompareOp)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthCompareOpEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOpEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */);
+}
static void entry_vkCmdSetDepthBoundsTestEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 depthBoundsTestEnable)
@@ -7364,6 +8653,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDepthBoundsTestEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 depthBoundsTestEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthBoundsTestEnableEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */);
+}
static void entry_vkCmdSetStencilTestEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 stencilTestEnable)
@@ -7372,6 +8675,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetStencilTestEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 stencilTestEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetStencilTestEnableEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */);
+}
static void entry_vkCmdSetStencilOpEXT(
VkCommandBuffer commandBuffer,
VkStencilFaceFlags faceMask,
@@ -7384,6 +8701,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetStencilOpEXT(
+ VkCommandBuffer commandBuffer,
+ VkStencilFaceFlags faceMask,
+ VkStencilOp failOp,
+ VkStencilOp passOp,
+ VkStencilOp depthFailOp,
+ VkCompareOp compareOp)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetStencilOpEXT", "VK_EXT_extended_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetStencilOpEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */);
+}
#endif
#ifdef VK_EXT_shader_atomic_float2
#endif
@@ -7421,6 +8756,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdPreprocessGeneratedCommandsNV(
+ VkCommandBuffer commandBuffer,
+ const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdPreprocessGeneratedCommandsNV", "VK_NV_device_generated_commands");
+ }
+ AEMU_SCOPED_TRACE("vkCmdPreprocessGeneratedCommandsNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */);
+}
static void entry_vkCmdExecuteGeneratedCommandsNV(
VkCommandBuffer commandBuffer,
VkBool32 isPreprocessed,
@@ -7430,6 +8779,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdExecuteGeneratedCommandsNV(
+ VkCommandBuffer commandBuffer,
+ VkBool32 isPreprocessed,
+ const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdExecuteGeneratedCommandsNV", "VK_NV_device_generated_commands");
+ }
+ AEMU_SCOPED_TRACE("vkCmdExecuteGeneratedCommandsNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */);
+}
static void entry_vkCmdBindPipelineShaderGroupNV(
VkCommandBuffer commandBuffer,
VkPipelineBindPoint pipelineBindPoint,
@@ -7440,6 +8804,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBindPipelineShaderGroupNV(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline,
+ uint32_t groupIndex)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBindPipelineShaderGroupNV", "VK_NV_device_generated_commands");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBindPipelineShaderGroupNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */);
+}
static VkResult entry_vkCreateIndirectCommandsLayoutNV(
VkDevice device,
const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
@@ -7660,6 +9040,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetFragmentShadingRateEnumNV(
+ VkCommandBuffer commandBuffer,
+ VkFragmentShadingRateNV shadingRate,
+ const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_NV_fragment_shading_rate_enums"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetFragmentShadingRateEnumNV", "VK_NV_fragment_shading_rate_enums");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateEnumNV");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */);
+}
#endif
#ifdef VK_NV_ray_tracing_motion_blur
#endif
@@ -7737,6 +9132,23 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetVertexInputEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t vertexBindingDescriptionCount,
+ const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
+ uint32_t vertexAttributeDescriptionCount,
+ const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_vertex_input_dynamic_state"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetVertexInputEXT", "VK_EXT_vertex_input_dynamic_state");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetVertexInputEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */);
+}
#endif
#ifdef VK_EXT_physical_device_drm
#endif
@@ -8024,6 +9436,19 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSubpassShadingHUAWEI(
+ VkCommandBuffer commandBuffer)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSubpassShadingHUAWEI", "VK_HUAWEI_subpass_shading");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSubpassShadingHUAWEI");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */);
+}
#endif
#ifdef VK_HUAWEI_invocation_mask
static void entry_vkCmdBindInvocationMaskHUAWEI(
@@ -8035,6 +9460,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBindInvocationMaskHUAWEI(
+ VkCommandBuffer commandBuffer,
+ VkImageView imageView,
+ VkImageLayout imageLayout)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_HUAWEI_invocation_mask"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBindInvocationMaskHUAWEI", "VK_HUAWEI_invocation_mask");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBindInvocationMaskHUAWEI");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */);
+}
#endif
#ifdef VK_NV_external_memory_rdma
static VkResult entry_vkGetMemoryRemoteAddressNV(
@@ -8074,6 +9514,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetPatchControlPointsEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t patchControlPoints)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetPatchControlPointsEXT", "VK_EXT_extended_dynamic_state2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetPatchControlPointsEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */);
+}
static void entry_vkCmdSetRasterizerDiscardEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 rasterizerDiscardEnable)
@@ -8082,6 +9536,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetRasterizerDiscardEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 rasterizerDiscardEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetRasterizerDiscardEnableEXT", "VK_EXT_extended_dynamic_state2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */);
+}
static void entry_vkCmdSetDepthBiasEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 depthBiasEnable)
@@ -8090,6 +9558,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetDepthBiasEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 depthBiasEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthBiasEnableEXT", "VK_EXT_extended_dynamic_state2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */);
+}
static void entry_vkCmdSetLogicOpEXT(
VkCommandBuffer commandBuffer,
VkLogicOp logicOp)
@@ -8098,6 +9580,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetLogicOpEXT(
+ VkCommandBuffer commandBuffer,
+ VkLogicOp logicOp)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetLogicOpEXT", "VK_EXT_extended_dynamic_state2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetLogicOpEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */);
+}
static void entry_vkCmdSetPrimitiveRestartEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 primitiveRestartEnable)
@@ -8106,6 +9602,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetPrimitiveRestartEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 primitiveRestartEnable)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetPrimitiveRestartEnableEXT", "VK_EXT_extended_dynamic_state2");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */);
+}
#endif
#ifdef VK_QNX_screen_surface
static VkResult entry_vkCreateScreenSurfaceQNX(
@@ -8142,6 +9652,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetColorWriteEnableEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t attachmentCount,
+ const VkBool32* pColorWriteEnables)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_color_write_enable"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetColorWriteEnableEXT", "VK_EXT_color_write_enable");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetColorWriteEnableEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */);
+}
#endif
#ifdef VK_GOOGLE_gfxstream
static VkResult entry_vkRegisterImageColorBufferGOOGLE(
@@ -8274,6 +9799,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo, true /* do lock */);
}
+static void dynCheck_entry_vkBeginCommandBufferAsyncGOOGLE(
+ VkCommandBuffer commandBuffer,
+ const VkCommandBufferBeginInfo* pBeginInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkBeginCommandBufferAsyncGOOGLE", "VK_GOOGLE_gfxstream");
+ }
+ AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo, true /* do lock */);
+}
static void entry_vkEndCommandBufferAsyncGOOGLE(
VkCommandBuffer commandBuffer)
{
@@ -8281,6 +9820,19 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer, true /* do lock */);
}
+static void dynCheck_entry_vkEndCommandBufferAsyncGOOGLE(
+ VkCommandBuffer commandBuffer)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkEndCommandBufferAsyncGOOGLE", "VK_GOOGLE_gfxstream");
+ }
+ AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer, true /* do lock */);
+}
static void entry_vkResetCommandBufferAsyncGOOGLE(
VkCommandBuffer commandBuffer,
VkCommandBufferResetFlags flags)
@@ -8289,6 +9841,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags, true /* do lock */);
}
+static void dynCheck_entry_vkResetCommandBufferAsyncGOOGLE(
+ VkCommandBuffer commandBuffer,
+ VkCommandBufferResetFlags flags)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkResetCommandBufferAsyncGOOGLE", "VK_GOOGLE_gfxstream");
+ }
+ AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags, true /* do lock */);
+}
static void entry_vkCommandBufferHostSyncGOOGLE(
VkCommandBuffer commandBuffer,
uint32_t needHostSync,
@@ -8298,6 +9864,21 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber, true /* do lock */);
}
+static void dynCheck_entry_vkCommandBufferHostSyncGOOGLE(
+ VkCommandBuffer commandBuffer,
+ uint32_t needHostSync,
+ uint32_t sequenceNumber)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCommandBufferHostSyncGOOGLE", "VK_GOOGLE_gfxstream");
+ }
+ AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber, true /* do lock */);
+}
static VkResult entry_vkCreateImageWithRequirementsGOOGLE(
VkDevice device,
const VkImageCreateInfo* pCreateInfo,
@@ -8582,6 +10163,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawMultiEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t drawCount,
+ const VkMultiDrawInfoEXT* pVertexInfo,
+ uint32_t instanceCount,
+ uint32_t firstInstance,
+ uint32_t stride)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_multi_draw"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawMultiEXT", "VK_EXT_multi_draw");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawMultiEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */);
+}
static void entry_vkCmdDrawMultiIndexedEXT(
VkCommandBuffer commandBuffer,
uint32_t drawCount,
@@ -8595,6 +10194,25 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */);
}
+static void dynCheck_entry_vkCmdDrawMultiIndexedEXT(
+ VkCommandBuffer commandBuffer,
+ uint32_t drawCount,
+ const VkMultiDrawIndexedInfoEXT* pIndexInfo,
+ uint32_t instanceCount,
+ uint32_t firstInstance,
+ uint32_t stride,
+ const int32_t* pVertexOffset)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_EXT_multi_draw"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdDrawMultiIndexedEXT", "VK_EXT_multi_draw");
+ }
+ AEMU_SCOPED_TRACE("vkCmdDrawMultiIndexedEXT");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */);
+}
#endif
#ifdef VK_EXT_load_store_op_none
#endif
@@ -8688,6 +10306,22 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBuildAccelerationStructuresKHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t infoCount,
+ const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+ const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructuresKHR", "VK_KHR_acceleration_structure");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
+}
static void entry_vkCmdBuildAccelerationStructuresIndirectKHR(
VkCommandBuffer commandBuffer,
uint32_t infoCount,
@@ -8700,6 +10334,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */);
}
+static void dynCheck_entry_vkCmdBuildAccelerationStructuresIndirectKHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t infoCount,
+ const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+ const VkDeviceAddress* pIndirectDeviceAddresses,
+ const uint32_t* pIndirectStrides,
+ const uint32_t* const* ppMaxPrimitiveCounts)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructuresIndirectKHR", "VK_KHR_acceleration_structure");
+ }
+ AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresIndirectKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */);
+}
static VkResult entry_vkBuildAccelerationStructuresKHR(
VkDevice device,
VkDeferredOperationKHR deferredOperation,
@@ -8855,6 +10507,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyAccelerationStructureKHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyAccelerationStructureInfoKHR* pInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureKHR", "VK_KHR_acceleration_structure");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
+}
static void entry_vkCmdCopyAccelerationStructureToMemoryKHR(
VkCommandBuffer commandBuffer,
const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
@@ -8863,6 +10529,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyAccelerationStructureToMemoryKHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureToMemoryKHR", "VK_KHR_acceleration_structure");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureToMemoryKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */);
+}
static void entry_vkCmdCopyMemoryToAccelerationStructureKHR(
VkCommandBuffer commandBuffer,
const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
@@ -8871,6 +10551,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
}
+static void dynCheck_entry_vkCmdCopyMemoryToAccelerationStructureKHR(
+ VkCommandBuffer commandBuffer,
+ const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdCopyMemoryToAccelerationStructureKHR", "VK_KHR_acceleration_structure");
+ }
+ AEMU_SCOPED_TRACE("vkCmdCopyMemoryToAccelerationStructureKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
+}
static VkDeviceAddress entry_vkGetAccelerationStructureDeviceAddressKHR(
VkDevice device,
const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
@@ -8908,6 +10602,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
}
+static void dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesKHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t accelerationStructureCount,
+ const VkAccelerationStructureKHR* pAccelerationStructures,
+ VkQueryType queryType,
+ VkQueryPool queryPool,
+ uint32_t firstQuery)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdWriteAccelerationStructuresPropertiesKHR", "VK_KHR_acceleration_structure");
+ }
+ AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
+}
static void entry_vkGetDeviceAccelerationStructureCompatibilityKHR(
VkDevice device,
const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
@@ -8974,6 +10686,26 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */);
}
+static void dynCheck_entry_vkCmdTraceRaysKHR(
+ VkCommandBuffer commandBuffer,
+ const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+ const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+ const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+ const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+ uint32_t width,
+ uint32_t height,
+ uint32_t depth)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysKHR", "VK_KHR_ray_tracing_pipeline");
+ }
+ AEMU_SCOPED_TRACE("vkCmdTraceRaysKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */);
+}
static VkResult entry_vkCreateRayTracingPipelinesKHR(
VkDevice device,
VkDeferredOperationKHR deferredOperation,
@@ -9054,6 +10786,24 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */);
}
+static void dynCheck_entry_vkCmdTraceRaysIndirectKHR(
+ VkCommandBuffer commandBuffer,
+ const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+ const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+ const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+ const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+ VkDeviceAddress indirectDeviceAddress)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysIndirectKHR", "VK_KHR_ray_tracing_pipeline");
+ }
+ AEMU_SCOPED_TRACE("vkCmdTraceRaysIndirectKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */);
+}
static VkDeviceSize entry_vkGetRayTracingShaderGroupStackSizeKHR(
VkDevice device,
VkPipeline pipeline,
@@ -9091,6 +10841,20 @@
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */);
}
+static void dynCheck_entry_vkCmdSetRayTracingPipelineStackSizeKHR(
+ VkCommandBuffer commandBuffer,
+ uint32_t pipelineStackSize)
+{
+ auto resources = ResourceTracker::get();
+ VkDevice device = resources->getDevice(commandBuffer);;
+ if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
+ {
+ sOnInvalidDynamicallyCheckedCall("vkCmdSetRayTracingPipelineStackSizeKHR", "VK_KHR_ray_tracing_pipeline");
+ }
+ AEMU_SCOPED_TRACE("vkCmdSetRayTracingPipelineStackSizeKHR");
+ auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+ vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */);
+}
#endif
#ifdef VK_KHR_ray_query
#endif
@@ -12059,11 +13823,11 @@
}
if (!strcmp(name, "vkCmdSetDeviceMask"))
{
- return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDeviceMask;
}
if (!strcmp(name, "vkCmdDispatchBase"))
{
- return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
+ return (void*)dynCheck_entry_vkCmdDispatchBase;
}
if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
{
@@ -12157,13 +13921,11 @@
#ifdef VK_VERSION_1_2
if (!strcmp(name, "vkCmdDrawIndirectCount"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
- return hasExt ? (void*)entry_vkCmdDrawIndirectCount : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndirectCount;
}
if (!strcmp(name, "vkCmdDrawIndexedIndirectCount"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
- return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCount;
}
if (!strcmp(name, "vkCreateRenderPass2"))
{
@@ -12171,18 +13933,15 @@
}
if (!strcmp(name, "vkCmdBeginRenderPass2"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
- return hasExt ? (void*)entry_vkCmdBeginRenderPass2 : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginRenderPass2;
}
if (!strcmp(name, "vkCmdNextSubpass2"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
- return hasExt ? (void*)entry_vkCmdNextSubpass2 : nullptr;
+ return (void*)dynCheck_entry_vkCmdNextSubpass2;
}
if (!strcmp(name, "vkCmdEndRenderPass2"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
- return hasExt ? (void*)entry_vkCmdEndRenderPass2 : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndRenderPass2;
}
if (!strcmp(name, "vkResetQueryPool"))
{
@@ -12419,37 +14178,31 @@
}
if (!strcmp(name, "vkCmdBeginVideoCodingKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
- return hasExt ? (void*)entry_vkCmdBeginVideoCodingKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginVideoCodingKHR;
}
if (!strcmp(name, "vkCmdEndVideoCodingKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
- return hasExt ? (void*)entry_vkCmdEndVideoCodingKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndVideoCodingKHR;
}
if (!strcmp(name, "vkCmdControlVideoCodingKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
- return hasExt ? (void*)entry_vkCmdControlVideoCodingKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdControlVideoCodingKHR;
}
#endif
#ifdef VK_KHR_video_decode_queue
if (!strcmp(name, "vkCmdDecodeVideoKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_decode_queue");
- return hasExt ? (void*)entry_vkCmdDecodeVideoKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdDecodeVideoKHR;
}
#endif
#ifdef VK_KHR_dynamic_rendering
if (!strcmp(name, "vkCmdBeginRenderingKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_dynamic_rendering");
- return hasExt ? (void*)entry_vkCmdBeginRenderingKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginRenderingKHR;
}
if (!strcmp(name, "vkCmdEndRenderingKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_dynamic_rendering");
- return hasExt ? (void*)entry_vkCmdEndRenderingKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndRenderingKHR;
}
#endif
#ifdef VK_KHR_get_physical_device_properties2
@@ -12496,13 +14249,11 @@
}
if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
- return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDeviceMaskKHR;
}
if (!strcmp(name, "vkCmdDispatchBaseKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
- return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdDispatchBaseKHR;
}
#endif
#ifdef VK_KHR_maintenance1
@@ -12575,13 +14326,11 @@
#ifdef VK_KHR_push_descriptor
if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
- return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdPushDescriptorSetKHR;
}
if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
- return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdPushDescriptorSetWithTemplateKHR;
}
#endif
#ifdef VK_KHR_descriptor_update_template
@@ -12605,18 +14354,15 @@
}
if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
- return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginRenderPass2KHR;
}
if (!strcmp(name, "vkCmdNextSubpass2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
- return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdNextSubpass2KHR;
}
if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
- return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndRenderPass2KHR;
}
#endif
#ifdef VK_KHR_shared_presentable_image
@@ -12749,13 +14495,11 @@
#ifdef VK_KHR_draw_indirect_count
if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
- return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndirectCountKHR;
}
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
- return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCountKHR;
}
#endif
#ifdef VK_KHR_timeline_semaphore
@@ -12780,8 +14524,7 @@
}
if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_fragment_shading_rate");
- return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetFragmentShadingRateKHR;
}
#endif
#ifdef VK_KHR_present_wait
@@ -12843,35 +14586,29 @@
#ifdef VK_KHR_video_encode_queue
if (!strcmp(name, "vkCmdEncodeVideoKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_encode_queue");
- return hasExt ? (void*)entry_vkCmdEncodeVideoKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdEncodeVideoKHR;
}
#endif
#ifdef VK_KHR_synchronization2
if (!strcmp(name, "vkCmdSetEvent2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
- return hasExt ? (void*)entry_vkCmdSetEvent2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetEvent2KHR;
}
if (!strcmp(name, "vkCmdResetEvent2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
- return hasExt ? (void*)entry_vkCmdResetEvent2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdResetEvent2KHR;
}
if (!strcmp(name, "vkCmdWaitEvents2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
- return hasExt ? (void*)entry_vkCmdWaitEvents2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdWaitEvents2KHR;
}
if (!strcmp(name, "vkCmdPipelineBarrier2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
- return hasExt ? (void*)entry_vkCmdPipelineBarrier2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdPipelineBarrier2KHR;
}
if (!strcmp(name, "vkCmdWriteTimestamp2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
- return hasExt ? (void*)entry_vkCmdWriteTimestamp2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdWriteTimestamp2KHR;
}
if (!strcmp(name, "vkQueueSubmit2KHR"))
{
@@ -12880,8 +14617,7 @@
}
if (!strcmp(name, "vkCmdWriteBufferMarker2AMD"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
- return hasExt ? (void*)entry_vkCmdWriteBufferMarker2AMD : nullptr;
+ return (void*)dynCheck_entry_vkCmdWriteBufferMarker2AMD;
}
if (!strcmp(name, "vkGetQueueCheckpointData2NV"))
{
@@ -12892,33 +14628,27 @@
#ifdef VK_KHR_copy_commands2
if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
- return hasExt ? (void*)entry_vkCmdCopyBuffer2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyBuffer2KHR;
}
if (!strcmp(name, "vkCmdCopyImage2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
- return hasExt ? (void*)entry_vkCmdCopyImage2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyImage2KHR;
}
if (!strcmp(name, "vkCmdCopyBufferToImage2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
- return hasExt ? (void*)entry_vkCmdCopyBufferToImage2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyBufferToImage2KHR;
}
if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
- return hasExt ? (void*)entry_vkCmdCopyImageToBuffer2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyImageToBuffer2KHR;
}
if (!strcmp(name, "vkCmdBlitImage2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
- return hasExt ? (void*)entry_vkCmdBlitImage2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdBlitImage2KHR;
}
if (!strcmp(name, "vkCmdResolveImage2KHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
- return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdResolveImage2KHR;
}
#endif
#ifdef VK_KHR_maintenance4
@@ -12978,50 +14708,41 @@
}
if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
- return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdDebugMarkerBeginEXT;
}
if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
- return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdDebugMarkerEndEXT;
}
if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
- return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdDebugMarkerInsertEXT;
}
#endif
#ifdef VK_EXT_transform_feedback
if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
- return hasExt ? (void*)entry_vkCmdBindTransformFeedbackBuffersEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdBindTransformFeedbackBuffersEXT;
}
if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
- return hasExt ? (void*)entry_vkCmdBeginTransformFeedbackEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginTransformFeedbackEXT;
}
if (!strcmp(name, "vkCmdEndTransformFeedbackEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
- return hasExt ? (void*)entry_vkCmdEndTransformFeedbackEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndTransformFeedbackEXT;
}
if (!strcmp(name, "vkCmdBeginQueryIndexedEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
- return hasExt ? (void*)entry_vkCmdBeginQueryIndexedEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginQueryIndexedEXT;
}
if (!strcmp(name, "vkCmdEndQueryIndexedEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
- return hasExt ? (void*)entry_vkCmdEndQueryIndexedEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndQueryIndexedEXT;
}
if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
- return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndirectByteCountEXT;
}
#endif
#ifdef VK_NVX_binary_import
@@ -13043,8 +14764,7 @@
}
if (!strcmp(name, "vkCmdCuLaunchKernelNVX"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_binary_import");
- return hasExt ? (void*)entry_vkCmdCuLaunchKernelNVX : nullptr;
+ return (void*)dynCheck_entry_vkCmdCuLaunchKernelNVX;
}
#endif
#ifdef VK_NVX_image_view_handle
@@ -13060,13 +14780,11 @@
#ifdef VK_AMD_draw_indirect_count
if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
- return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndirectCountAMD;
}
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
- return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCountAMD;
}
#endif
#ifdef VK_AMD_shader_info
@@ -13105,20 +14823,17 @@
#ifdef VK_EXT_conditional_rendering
if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
- return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginConditionalRenderingEXT;
}
if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
- return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndConditionalRenderingEXT;
}
#endif
#ifdef VK_NV_clip_space_w_scaling
if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
- return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetViewportWScalingNV;
}
#endif
#ifdef VK_EXT_direct_mode_display
@@ -13178,8 +14893,7 @@
#ifdef VK_EXT_discard_rectangles
if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
- return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDiscardRectangleEXT;
}
#endif
#ifdef VK_EXT_hdr_metadata
@@ -13260,18 +14974,15 @@
}
if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
- return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdBeginDebugUtilsLabelEXT;
}
if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
- return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdEndDebugUtilsLabelEXT;
}
if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
- return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdInsertDebugUtilsLabelEXT;
}
if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
{
@@ -13302,8 +15013,7 @@
#ifdef VK_EXT_sample_locations
if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
- return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetSampleLocationsEXT;
}
if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
{
@@ -13338,18 +15048,15 @@
#ifdef VK_NV_shading_rate_image
if (!strcmp(name, "vkCmdBindShadingRateImageNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
- return hasExt ? (void*)entry_vkCmdBindShadingRateImageNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdBindShadingRateImageNV;
}
if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
- return hasExt ? (void*)entry_vkCmdSetViewportShadingRatePaletteNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetViewportShadingRatePaletteNV;
}
if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
- return hasExt ? (void*)entry_vkCmdSetCoarseSampleOrderNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetCoarseSampleOrderNV;
}
#endif
#ifdef VK_NV_ray_tracing
@@ -13371,18 +15078,15 @@
}
if (!strcmp(name, "vkCmdBuildAccelerationStructureNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
- return hasExt ? (void*)entry_vkCmdBuildAccelerationStructureNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdBuildAccelerationStructureNV;
}
if (!strcmp(name, "vkCmdCopyAccelerationStructureNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
- return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureNV;
}
if (!strcmp(name, "vkCmdTraceRaysNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
- return hasExt ? (void*)entry_vkCmdTraceRaysNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdTraceRaysNV;
}
if (!strcmp(name, "vkCreateRayTracingPipelinesNV"))
{
@@ -13402,8 +15106,7 @@
}
if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
- return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesNV;
}
if (!strcmp(name, "vkCompileDeferredNV"))
{
@@ -13419,8 +15122,7 @@
#ifdef VK_AMD_buffer_marker
if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
- return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
+ return (void*)dynCheck_entry_vkCmdWriteBufferMarkerAMD;
}
#endif
#ifdef VK_EXT_calibrated_timestamps
@@ -13437,32 +15139,27 @@
#ifdef VK_NV_mesh_shader
if (!strcmp(name, "vkCmdDrawMeshTasksNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
- return hasExt ? (void*)entry_vkCmdDrawMeshTasksNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawMeshTasksNV;
}
if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
- return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawMeshTasksIndirectNV;
}
if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
- return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectCountNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawMeshTasksIndirectCountNV;
}
#endif
#ifdef VK_NV_scissor_exclusive
if (!strcmp(name, "vkCmdSetExclusiveScissorNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_scissor_exclusive");
- return hasExt ? (void*)entry_vkCmdSetExclusiveScissorNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetExclusiveScissorNV;
}
#endif
#ifdef VK_NV_device_diagnostic_checkpoints
if (!strcmp(name, "vkCmdSetCheckpointNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
- return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetCheckpointNV;
}
if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
{
@@ -13481,18 +15178,15 @@
}
if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
- return hasExt ? (void*)entry_vkCmdSetPerformanceMarkerINTEL : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetPerformanceMarkerINTEL;
}
if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
- return hasExt ? (void*)entry_vkCmdSetPerformanceStreamMarkerINTEL : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetPerformanceStreamMarkerINTEL;
}
if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
- return hasExt ? (void*)entry_vkCmdSetPerformanceOverrideINTEL : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetPerformanceOverrideINTEL;
}
if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL"))
{
@@ -13588,8 +15282,7 @@
#ifdef VK_EXT_line_rasterization
if (!strcmp(name, "vkCmdSetLineStippleEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_line_rasterization");
- return hasExt ? (void*)entry_vkCmdSetLineStippleEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetLineStippleEXT;
}
#endif
#ifdef VK_EXT_host_query_reset
@@ -13601,63 +15294,51 @@
#ifdef VK_EXT_extended_dynamic_state
if (!strcmp(name, "vkCmdSetCullModeEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetCullModeEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetCullModeEXT;
}
if (!strcmp(name, "vkCmdSetFrontFaceEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetFrontFaceEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetFrontFaceEXT;
}
if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetPrimitiveTopologyEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetPrimitiveTopologyEXT;
}
if (!strcmp(name, "vkCmdSetViewportWithCountEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetViewportWithCountEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetViewportWithCountEXT;
}
if (!strcmp(name, "vkCmdSetScissorWithCountEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetScissorWithCountEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetScissorWithCountEXT;
}
if (!strcmp(name, "vkCmdBindVertexBuffers2EXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdBindVertexBuffers2EXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdBindVertexBuffers2EXT;
}
if (!strcmp(name, "vkCmdSetDepthTestEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetDepthTestEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDepthTestEnableEXT;
}
if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetDepthWriteEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDepthWriteEnableEXT;
}
if (!strcmp(name, "vkCmdSetDepthCompareOpEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetDepthCompareOpEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDepthCompareOpEXT;
}
if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetDepthBoundsTestEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDepthBoundsTestEnableEXT;
}
if (!strcmp(name, "vkCmdSetStencilTestEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetStencilTestEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetStencilTestEnableEXT;
}
if (!strcmp(name, "vkCmdSetStencilOpEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetStencilOpEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetStencilOpEXT;
}
#endif
#ifdef VK_NV_device_generated_commands
@@ -13667,18 +15348,15 @@
}
if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
- return hasExt ? (void*)entry_vkCmdPreprocessGeneratedCommandsNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdPreprocessGeneratedCommandsNV;
}
if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
- return hasExt ? (void*)entry_vkCmdExecuteGeneratedCommandsNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdExecuteGeneratedCommandsNV;
}
if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
- return hasExt ? (void*)entry_vkCmdBindPipelineShaderGroupNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdBindPipelineShaderGroupNV;
}
if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV"))
{
@@ -13722,8 +15400,7 @@
#ifdef VK_NV_fragment_shading_rate_enums
if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_fragment_shading_rate_enums");
- return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetFragmentShadingRateEnumNV;
}
#endif
#ifdef VK_NV_acquire_winrt_display
@@ -13753,8 +15430,7 @@
#ifdef VK_EXT_vertex_input_dynamic_state
if (!strcmp(name, "vkCmdSetVertexInputEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_vertex_input_dynamic_state");
- return hasExt ? (void*)entry_vkCmdSetVertexInputEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetVertexInputEXT;
}
#endif
#ifdef VK_FUCHSIA_external_memory
@@ -13806,15 +15482,13 @@
}
if (!strcmp(name, "vkCmdSubpassShadingHUAWEI"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_HUAWEI_subpass_shading");
- return hasExt ? (void*)entry_vkCmdSubpassShadingHUAWEI : nullptr;
+ return (void*)dynCheck_entry_vkCmdSubpassShadingHUAWEI;
}
#endif
#ifdef VK_HUAWEI_invocation_mask
if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_HUAWEI_invocation_mask");
- return hasExt ? (void*)entry_vkCmdBindInvocationMaskHUAWEI : nullptr;
+ return (void*)dynCheck_entry_vkCmdBindInvocationMaskHUAWEI;
}
#endif
#ifdef VK_NV_external_memory_rdma
@@ -13826,28 +15500,23 @@
#ifdef VK_EXT_extended_dynamic_state2
if (!strcmp(name, "vkCmdSetPatchControlPointsEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
- return hasExt ? (void*)entry_vkCmdSetPatchControlPointsEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetPatchControlPointsEXT;
}
if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
- return hasExt ? (void*)entry_vkCmdSetRasterizerDiscardEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetRasterizerDiscardEnableEXT;
}
if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
- return hasExt ? (void*)entry_vkCmdSetDepthBiasEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetDepthBiasEnableEXT;
}
if (!strcmp(name, "vkCmdSetLogicOpEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
- return hasExt ? (void*)entry_vkCmdSetLogicOpEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetLogicOpEXT;
}
if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
- return hasExt ? (void*)entry_vkCmdSetPrimitiveRestartEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetPrimitiveRestartEnableEXT;
}
#endif
#ifdef VK_QNX_screen_surface
@@ -13865,8 +15534,7 @@
#ifdef VK_EXT_color_write_enable
if (!strcmp(name, "vkCmdSetColorWriteEnableEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_color_write_enable");
- return hasExt ? (void*)entry_vkCmdSetColorWriteEnableEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetColorWriteEnableEXT;
}
#endif
#ifdef VK_GOOGLE_gfxstream
@@ -13888,23 +15556,19 @@
}
if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
- return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
+ return (void*)dynCheck_entry_vkBeginCommandBufferAsyncGOOGLE;
}
if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
- return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
+ return (void*)dynCheck_entry_vkEndCommandBufferAsyncGOOGLE;
}
if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
- return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
+ return (void*)dynCheck_entry_vkResetCommandBufferAsyncGOOGLE;
}
if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
- return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
+ return (void*)dynCheck_entry_vkCommandBufferHostSyncGOOGLE;
}
if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
{
@@ -13973,13 +15637,11 @@
#ifdef VK_EXT_multi_draw
if (!strcmp(name, "vkCmdDrawMultiEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_multi_draw");
- return hasExt ? (void*)entry_vkCmdDrawMultiEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawMultiEXT;
}
if (!strcmp(name, "vkCmdDrawMultiIndexedEXT"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_multi_draw");
- return hasExt ? (void*)entry_vkCmdDrawMultiIndexedEXT : nullptr;
+ return (void*)dynCheck_entry_vkCmdDrawMultiIndexedEXT;
}
#endif
#ifdef VK_EXT_pageable_device_local_memory
@@ -13999,13 +15661,11 @@
}
if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
- return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdBuildAccelerationStructuresKHR;
}
if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
- return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresIndirectKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdBuildAccelerationStructuresIndirectKHR;
}
if (!strcmp(name, "vkBuildAccelerationStructuresKHR"))
{
@@ -14029,18 +15689,15 @@
}
if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
- return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureKHR;
}
if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
- return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureToMemoryKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureToMemoryKHR;
}
if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
- return hasExt ? (void*)entry_vkCmdCopyMemoryToAccelerationStructureKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdCopyMemoryToAccelerationStructureKHR;
}
if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR"))
{
@@ -14048,8 +15705,7 @@
}
if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
- return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesKHR;
}
if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR"))
{
@@ -14063,8 +15719,7 @@
#ifdef VK_KHR_ray_tracing_pipeline
if (!strcmp(name, "vkCmdTraceRaysKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
- return hasExt ? (void*)entry_vkCmdTraceRaysKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdTraceRaysKHR;
}
if (!strcmp(name, "vkCreateRayTracingPipelinesKHR"))
{
@@ -14076,8 +15731,7 @@
}
if (!strcmp(name, "vkCmdTraceRaysIndirectKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
- return hasExt ? (void*)entry_vkCmdTraceRaysIndirectKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdTraceRaysIndirectKHR;
}
if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR"))
{
@@ -14085,8 +15739,7 @@
}
if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR"))
{
- bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
- return hasExt ? (void*)entry_vkCmdSetRayTracingPipelineStackSizeKHR : nullptr;
+ return (void*)dynCheck_entry_vkCmdSetRayTracingPipelineStackSizeKHR;
}
#endif
return nullptr;
diff --git a/system/vulkan_enc/func_table.h b/system/vulkan_enc/func_table.h
index 34816ea..17c6286 100644
--- a/system/vulkan_enc/func_table.h
+++ b/system/vulkan_enc/func_table.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module func_table
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.cpp b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
index 8b070f6..bf4f9b6 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_counting_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_counting_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.h b/system/vulkan_enc/goldfish_vk_counting_guest.h
index 55ea7e6..81d11da 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.h
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_counting_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index f0fb307..adc2318 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_deepcopy_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_deepcopy_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
index 37989e8..1728261 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_deepcopy_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
index 7abd647..69215bc 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_extension_structs_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_extension_structs_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
index 5c7d486..4bf48b0 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_extension_structs_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
index a98bf32..53af9ac 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_handlemap_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_handlemap_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.h b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
index 86eed63..770f009 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.h
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_handlemap_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index 607fc0a..9a3f9dd 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_marshaling_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_marshaling_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
index 21901f6..cfa5b43 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_marshaling_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
index c25ff93..3b9e0e4 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_reserved_marshaling_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_reserved_marshaling_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
index 6b09067..b724bd1 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_reserved_marshaling_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.cpp b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
index d10fba1..c3a690c 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_transform_guest
-// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#include "goldfish_vk_transform_guest.h"
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.h b/system/vulkan_enc/goldfish_vk_transform_guest.h
index 61030d8..e88bf65 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.h
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.h
@@ -14,13 +14,14 @@
// limitations under the License.
// Autogenerated module goldfish_vk_transform_guest
-// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
+// (header) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../qemu/android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
// Please do not modify directly;
-// re-run android/scripts/generate-vulkan-sources.sh,
+// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
-// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
+// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
+// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
-// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
+// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
#pragma once
diff --git a/system/vulkan_enc/vk_struct_id.h b/system/vulkan_enc/vk_struct_id.h
index cee3d9d..833ad6d 100644
--- a/system/vulkan_enc/vk_struct_id.h
+++ b/system/vulkan_enc/vk_struct_id.h
@@ -62,6 +62,7 @@
REGISTER_VK_STRUCT_ID(VkPhysicalDeviceImageFormatInfo2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2);
REGISTER_VK_STRUCT_ID(VkPhysicalDeviceExternalImageFormatInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO);
REGISTER_VK_STRUCT_ID(VkSemaphoreTypeCreateInfo, VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO);
+REGISTER_VK_STRUCT_ID(VkPhysicalDeviceFeatures2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2);
REGISTER_VK_STRUCT_ID(VkPhysicalDeviceProperties2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2);
REGISTER_VK_STRUCT_ID(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT);
REGISTER_VK_STRUCT_ID(VkMemoryAllocateFlagsInfo, VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO);