Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# ~~~
cmake_minimum_required(VERSION 3.22.1)

project(VULKAN_LOADER VERSION 1.4.344 LANGUAGES C)
project(VULKAN_LOADER VERSION 1.4.345 LANGUAGES C)

option(CODE_COVERAGE "Enable Code Coverage" OFF)
if (CODE_COVERAGE)
Expand Down
11 changes: 11 additions & 0 deletions loader/generated/vk_layer_dispatch_table.h
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,9 @@ typedef struct VkLayerInstanceDispatchTable_ {
// ---- VK_ARM_performance_counters_by_region extension commands
PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;

// ---- VK_ARM_shader_instrumentation extension commands
PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM EnumeratePhysicalDeviceShaderInstrumentationMetricsARM;

// ---- VK_SEC_ubm_surface extension commands
#if defined(VK_USE_PLATFORM_UBM_SEC)
PFN_vkCreateUbmSurfaceSEC CreateUbmSurfaceSEC;
Expand Down Expand Up @@ -1320,6 +1323,14 @@ typedef struct VkLayerDispatchTable_ {
PFN_vkGetMemoryMetalHandlePropertiesEXT GetMemoryMetalHandlePropertiesEXT;
#endif // VK_USE_PLATFORM_METAL_EXT

// ---- VK_ARM_shader_instrumentation extension commands
PFN_vkCreateShaderInstrumentationARM CreateShaderInstrumentationARM;
PFN_vkDestroyShaderInstrumentationARM DestroyShaderInstrumentationARM;
PFN_vkCmdBeginShaderInstrumentationARM CmdBeginShaderInstrumentationARM;
PFN_vkCmdEndShaderInstrumentationARM CmdEndShaderInstrumentationARM;
PFN_vkGetShaderInstrumentationValuesARM GetShaderInstrumentationValuesARM;
PFN_vkClearShaderInstrumentationMetricsARM ClearShaderInstrumentationMetricsARM;

// ---- VK_EXT_fragment_density_map_offset extension commands
PFN_vkCmdEndRendering2EXT CmdEndRendering2EXT;

Expand Down
174 changes: 174 additions & 0 deletions loader/generated/vk_loader_extensions.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,9 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst,
// ---- VK_ARM_performance_counters_by_region extension commands
LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM);

// ---- VK_ARM_shader_instrumentation extension commands
LOOKUP_GIPA(EnumeratePhysicalDeviceShaderInstrumentationMetricsARM);

// ---- VK_SEC_ubm_surface extension commands
#if defined(VK_USE_PLATFORM_UBM_SEC)
LOOKUP_GIPA(CreateUbmSurfaceSEC);
Expand Down Expand Up @@ -1361,6 +1364,14 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
table->GetMemoryMetalHandlePropertiesEXT = (PFN_vkGetMemoryMetalHandlePropertiesEXT)gdpa(dev, "vkGetMemoryMetalHandlePropertiesEXT");
#endif // VK_USE_PLATFORM_METAL_EXT

// ---- VK_ARM_shader_instrumentation extension commands
table->CreateShaderInstrumentationARM = (PFN_vkCreateShaderInstrumentationARM)gdpa(dev, "vkCreateShaderInstrumentationARM");
table->DestroyShaderInstrumentationARM = (PFN_vkDestroyShaderInstrumentationARM)gdpa(dev, "vkDestroyShaderInstrumentationARM");
table->CmdBeginShaderInstrumentationARM = (PFN_vkCmdBeginShaderInstrumentationARM)gdpa(dev, "vkCmdBeginShaderInstrumentationARM");
table->CmdEndShaderInstrumentationARM = (PFN_vkCmdEndShaderInstrumentationARM)gdpa(dev, "vkCmdEndShaderInstrumentationARM");
table->GetShaderInstrumentationValuesARM = (PFN_vkGetShaderInstrumentationValuesARM)gdpa(dev, "vkGetShaderInstrumentationValuesARM");
table->ClearShaderInstrumentationMetricsARM = (PFN_vkClearShaderInstrumentationMetricsARM)gdpa(dev, "vkClearShaderInstrumentationMetricsARM");

// ---- VK_EXT_fragment_density_map_offset extension commands
table->CmdEndRendering2EXT = (PFN_vkCmdEndRendering2EXT)gdpa(dev, "vkCmdEndRendering2EXT");

Expand Down Expand Up @@ -1683,6 +1694,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer
// ---- VK_ARM_performance_counters_by_region extension commands
table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");

// ---- VK_ARM_shader_instrumentation extension commands
table->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM = (PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM)gpa(inst, "vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM");

// ---- VK_SEC_ubm_surface extension commands
#if defined(VK_USE_PLATFORM_UBM_SEC)
table->CreateUbmSurfaceSEC = (PFN_vkCreateUbmSurfaceSEC)gpa(inst, "vkCreateUbmSurfaceSEC");
Expand Down Expand Up @@ -3380,6 +3394,14 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
if (!strcmp(name, "GetMemoryMetalHandlePropertiesEXT")) return (void *)table->GetMemoryMetalHandlePropertiesEXT;
#endif // VK_USE_PLATFORM_METAL_EXT

// ---- VK_ARM_shader_instrumentation extension commands
if (!strcmp(name, "CreateShaderInstrumentationARM")) return (void *)table->CreateShaderInstrumentationARM;
if (!strcmp(name, "DestroyShaderInstrumentationARM")) return (void *)table->DestroyShaderInstrumentationARM;
if (!strcmp(name, "CmdBeginShaderInstrumentationARM")) return (void *)table->CmdBeginShaderInstrumentationARM;
if (!strcmp(name, "CmdEndShaderInstrumentationARM")) return (void *)table->CmdEndShaderInstrumentationARM;
if (!strcmp(name, "GetShaderInstrumentationValuesARM")) return (void *)table->GetShaderInstrumentationValuesARM;
if (!strcmp(name, "ClearShaderInstrumentationMetricsARM")) return (void *)table->ClearShaderInstrumentationMetricsARM;

// ---- VK_EXT_fragment_density_map_offset extension commands
if (!strcmp(name, "CmdEndRendering2EXT")) return (void *)table->CmdEndRendering2EXT;

Expand Down Expand Up @@ -3707,6 +3729,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI
// ---- VK_ARM_performance_counters_by_region extension commands
if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;

// ---- VK_ARM_shader_instrumentation extension commands
if (!strcmp(name, "EnumeratePhysicalDeviceShaderInstrumentationMetricsARM")) return (void *)table->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM;

// ---- VK_SEC_ubm_surface extension commands
#if defined(VK_USE_PLATFORM_UBM_SEC)
if (!strcmp(name, "CreateUbmSurfaceSEC")) return (void *)table->CreateUbmSurfaceSEC;
Expand Down Expand Up @@ -11280,6 +11305,122 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerf
}


// ---- VK_ARM_shader_instrumentation extension trampoline/terminators

VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
VkPhysicalDevice physicalDevice,
uint32_t* pDescriptionCount,
VkShaderInstrumentationMetricDescriptionARM* pDescriptions) {
const VkLayerInstanceDispatchTable *disp;
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
if (VK_NULL_HANDLE == unwrapped_phys_dev) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM: Invalid physicalDevice "
"[VUID-vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM-physicalDevice-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
disp = loader_get_instance_layer_dispatch(physicalDevice);
return disp->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(unwrapped_phys_dev, pDescriptionCount, pDescriptions);
}

VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
VkPhysicalDevice physicalDevice,
uint32_t* pDescriptionCount,
VkShaderInstrumentationMetricDescriptionARM* pDescriptions) {
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceShaderInstrumentationMetricsARM) {
loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
"ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceShaderInstrumentationMetricsARM");
abort(); /* Intentionally fail so user can correct issue. */
}
return icd_term->dispatch.EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(phys_dev_term->phys_dev, pDescriptionCount, pDescriptions);
}

VKAPI_ATTR VkResult VKAPI_CALL CreateShaderInstrumentationARM(
VkDevice device,
const VkShaderInstrumentationCreateInfoARM* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkShaderInstrumentationARM* pInstrumentation) {
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
if (NULL == disp) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkCreateShaderInstrumentationARM: Invalid device "
"[VUID-vkCreateShaderInstrumentationARM-device-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
return disp->CreateShaderInstrumentationARM(device, pCreateInfo, pAllocator, pInstrumentation);
}

VKAPI_ATTR void VKAPI_CALL DestroyShaderInstrumentationARM(
VkDevice device,
VkShaderInstrumentationARM instrumentation,
const VkAllocationCallbacks* pAllocator) {
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
if (NULL == disp) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkDestroyShaderInstrumentationARM: Invalid device "
"[VUID-vkDestroyShaderInstrumentationARM-device-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
disp->DestroyShaderInstrumentationARM(device, instrumentation, pAllocator);
}

VKAPI_ATTR void VKAPI_CALL CmdBeginShaderInstrumentationARM(
VkCommandBuffer commandBuffer,
VkShaderInstrumentationARM instrumentation) {
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
if (NULL == disp) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkCmdBeginShaderInstrumentationARM: Invalid commandBuffer "
"[VUID-vkCmdBeginShaderInstrumentationARM-commandBuffer-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
disp->CmdBeginShaderInstrumentationARM(commandBuffer, instrumentation);
}

VKAPI_ATTR void VKAPI_CALL CmdEndShaderInstrumentationARM(
VkCommandBuffer commandBuffer) {
const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
if (NULL == disp) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkCmdEndShaderInstrumentationARM: Invalid commandBuffer "
"[VUID-vkCmdEndShaderInstrumentationARM-commandBuffer-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
disp->CmdEndShaderInstrumentationARM(commandBuffer);
}

VKAPI_ATTR VkResult VKAPI_CALL GetShaderInstrumentationValuesARM(
VkDevice device,
VkShaderInstrumentationARM instrumentation,
uint32_t* pMetricBlockCount,
void* pMetricValues,
VkShaderInstrumentationValuesFlagsARM flags) {
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
if (NULL == disp) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkGetShaderInstrumentationValuesARM: Invalid device "
"[VUID-vkGetShaderInstrumentationValuesARM-device-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
return disp->GetShaderInstrumentationValuesARM(device, instrumentation, pMetricBlockCount, pMetricValues, flags);
}

VKAPI_ATTR void VKAPI_CALL ClearShaderInstrumentationMetricsARM(
VkDevice device,
VkShaderInstrumentationARM instrumentation) {
const VkLayerDispatchTable *disp = loader_get_dispatch(device);
if (NULL == disp) {
loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
"vkClearShaderInstrumentationMetricsARM: Invalid device "
"[VUID-vkClearShaderInstrumentationMetricsARM-device-parameter]");
abort(); /* Intentionally fail so user can correct issue. */
}
disp->ClearShaderInstrumentationMetricsARM(device, instrumentation);
}


// ---- VK_EXT_fragment_density_map_offset extension trampoline/terminators

VKAPI_ATTR void VKAPI_CALL CmdEndRendering2EXT(
Expand Down Expand Up @@ -14107,6 +14248,36 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
return true;
}

// ---- VK_ARM_shader_instrumentation extension commands
if (!strcmp("vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM", name)) {
*addr = (void *)EnumeratePhysicalDeviceShaderInstrumentationMetricsARM;
return true;
}
if (!strcmp("vkCreateShaderInstrumentationARM", name)) {
*addr = (void *)CreateShaderInstrumentationARM;
return true;
}
if (!strcmp("vkDestroyShaderInstrumentationARM", name)) {
*addr = (void *)DestroyShaderInstrumentationARM;
return true;
}
if (!strcmp("vkCmdBeginShaderInstrumentationARM", name)) {
*addr = (void *)CmdBeginShaderInstrumentationARM;
return true;
}
if (!strcmp("vkCmdEndShaderInstrumentationARM", name)) {
*addr = (void *)CmdEndShaderInstrumentationARM;
return true;
}
if (!strcmp("vkGetShaderInstrumentationValuesARM", name)) {
*addr = (void *)GetShaderInstrumentationValuesARM;
return true;
}
if (!strcmp("vkClearShaderInstrumentationMetricsARM", name)) {
*addr = (void *)ClearShaderInstrumentationMetricsARM;
return true;
}

// ---- VK_EXT_fragment_density_map_offset extension commands
if (!strcmp("vkCmdEndRendering2EXT", name)) {
*addr = (void *)CmdEndRendering2EXT;
Expand Down Expand Up @@ -14784,6 +14955,9 @@ const VkLayerInstanceDispatchTable instance_disp = {
// ---- VK_ARM_performance_counters_by_region extension commands
.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM,

// ---- VK_ARM_shader_instrumentation extension commands
.EnumeratePhysicalDeviceShaderInstrumentationMetricsARM = terminator_EnumeratePhysicalDeviceShaderInstrumentationMetricsARM,

// ---- VK_SEC_ubm_surface extension commands
#if defined(VK_USE_PLATFORM_UBM_SEC)
.CreateUbmSurfaceSEC = terminator_CreateUbmSurfaceSEC,
Expand Down
3 changes: 3 additions & 0 deletions loader/generated/vk_loader_extensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,9 @@ struct loader_icd_term_dispatch {
// ---- VK_ARM_performance_counters_by_region extension commands
PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;

// ---- VK_ARM_shader_instrumentation extension commands
PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM EnumeratePhysicalDeviceShaderInstrumentationMetricsARM;

// ---- VK_SEC_ubm_surface extension commands
#if defined(VK_USE_PLATFORM_UBM_SEC)
PFN_vkCreateUbmSurfaceSEC CreateUbmSurfaceSEC;
Expand Down
6 changes: 5 additions & 1 deletion loader/generated/vk_object_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ typedef enum VulkanObjectType {
kVulkanObjectTypeExternalComputeQueueNV = 55,
kVulkanObjectTypeIndirectExecutionSetEXT = 56,
kVulkanObjectTypeIndirectCommandsLayoutEXT = 57,
kVulkanObjectTypeMax = 58,
kVulkanObjectTypeShaderInstrumentationARM = 58,
kVulkanObjectTypeMax = 59,
// Aliases for backwards compatibility of "promoted" types
kVulkanObjectTypeDescriptorUpdateTemplateKHR = kVulkanObjectTypeDescriptorUpdateTemplate,
kVulkanObjectTypeSamplerYcbcrConversionKHR = kVulkanObjectTypeSamplerYcbcrConversion,
Expand Down Expand Up @@ -163,6 +164,7 @@ static const char * const object_string[kVulkanObjectTypeMax] = {
"ExternalComputeQueueNV",
"IndirectExecutionSetEXT",
"IndirectCommandsLayoutEXT",
"ShaderInstrumentationARM",
};

// Helper array to get Vulkan VK_EXT_debug_report object type enum from the internal layers version
Expand Down Expand Up @@ -225,6 +227,7 @@ const VkDebugReportObjectTypeEXT get_debug_report_enum[] = {
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeExternalComputeQueueNV
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeIndirectExecutionSetEXT
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeIndirectCommandsLayoutEXT
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeShaderInstrumentationARM
};

// Helper array to get Official Vulkan VkObjectType enum from the internal layers version
Expand Down Expand Up @@ -287,6 +290,7 @@ const VkObjectType get_object_type_enum[] = {
VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV, // kVulkanObjectTypeExternalComputeQueueNV
VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT, // kVulkanObjectTypeIndirectExecutionSetEXT
VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT, // kVulkanObjectTypeIndirectCommandsLayoutEXT
VK_OBJECT_TYPE_SHADER_INSTRUMENTATION_ARM, // kVulkanObjectTypeShaderInstrumentationARM
};

// Helper function to convert from VkDebugReportObjectTypeEXT to VkObjectType
Expand Down
4 changes: 2 additions & 2 deletions loader/loader.rc
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
#include "winres.h"

// All set through CMake
#define VER_FILE_VERSION 1, 4, 344, 0
#define VER_FILE_DESCRIPTION_STR "1.4.344.Dev Build"
#define VER_FILE_VERSION 1, 4, 345, 0
#define VER_FILE_DESCRIPTION_STR "1.4.345.Dev Build"
#define VER_FILE_VERSION_STR "Vulkan Loader - Dev Build"
#define VER_COPYRIGHT_STR "Copyright (C) 2015-2026"

Expand Down
4 changes: 2 additions & 2 deletions scripts/known_good.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"sub_dir": "Vulkan-Headers",
"build_dir": "Vulkan-Headers/build",
"install_dir": "Vulkan-Headers/build/install",
"commit": "v1.4.344"
"commit": "v1.4.345"
},
{
"name": "googletest",
Expand Down Expand Up @@ -42,4 +42,4 @@
"googletest": "GOOGLETEST_INSTALL_DIR",
"detours": "DETOURS_INSTALL_DIR"
}
}
}
Loading