diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index adfe15afd..6a11a043f 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -54,9 +54,6 @@ jobs: steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 - with: - python-version: '3.10' - run: | sudo apt-get -qq update sudo apt install --yes libwayland-dev xorg-dev wayland-protocols @@ -115,9 +112,6 @@ jobs: steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 - with: - python-version: '3.10' - uses: lukka/get-cmake@latest - uses: ilammy/msvc-dev-cmd@v1 with: @@ -143,9 +137,6 @@ jobs: if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 - with: - python-version: '3.8' - uses: lukka/get-cmake@latest - name: Setup ccache @@ -211,9 +202,6 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2 with: key: mingw-ccache - - uses: actions/setup-python@v6 - with: - python-version: '3.10' - uses: lukka/get-cmake@latest - name: GCC Version run: gcc --version # If this fails MINGW is not setup correctly @@ -236,6 +224,7 @@ jobs: - uses: actions/setup-python@v6 with: python-version: '3.10' + - run: pip install pyparsing - run: sudo apt-get -qq update && sudo apt install --yes libwayland-dev xorg-dev wayland-protocols - run: cmake -S . -B build/ -D UPDATE_DEPS=ON -D UPDATE_DEPS_DIR=external -D TOOLS_CODEGEN=ON - run: cmake --build build --target tools_codegen @@ -247,4 +236,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: '3.10' - run: scripts/gn/gn.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 9906c0da7..4253d9b66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ cmake_minimum_required(VERSION 3.22.1) # The VERSION field is generated with the "--generated-version" flag in the generate_source.py script -project(Vulkan-Tools VERSION 1.4.344) +project(Vulkan-Tools VERSION 1.4.345) # This variable enables downstream users to customize the target API # variant (e.g. Vulkan SC) diff --git a/icd/VkICD_mock_icd.json.in b/icd/VkICD_mock_icd.json.in index f9d8723bb..1c975faab 100644 --- a/icd/VkICD_mock_icd.json.in +++ b/icd/VkICD_mock_icd.json.in @@ -2,6 +2,6 @@ "file_format_version": "1.0.1", "ICD": { "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.4.344" + "api_version": "1.4.345" } } \ No newline at end of file diff --git a/icd/generated/function_declarations.h b/icd/generated/function_declarations.h index 92c0be3fb..97b25caf4 100644 --- a/icd/generated/function_declarations.h +++ b/icd/generated/function_declarations.h @@ -533,12 +533,11 @@ static const std::unordered_map device_extension_map = { {"VK_EXT_external_memory_metal", VK_EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION}, #endif {"VK_ARM_performance_counters_by_region", VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION}, + {"VK_ARM_shader_instrumentation", VK_ARM_SHADER_INSTRUMENTATION_SPEC_VERSION}, {"VK_EXT_vertex_attribute_robustness", VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION}, {"VK_ARM_format_pack", VK_ARM_FORMAT_PACK_SPEC_VERSION}, {"VK_VALVE_fragment_density_map_layered", VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION}, -#ifdef VK_ENABLE_BETA_EXTENSIONS {"VK_NV_present_metering", VK_NV_PRESENT_METERING_SPEC_VERSION}, -#endif {"VK_EXT_fragment_density_map_offset", VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION}, {"VK_EXT_zero_initialize_device_memory", VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION}, {"VK_EXT_shader_64bit_indexing", VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION}, @@ -2956,6 +2955,28 @@ static VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerforma VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterARM* pCounters, VkPerformanceCounterDescriptionARM* pCounterDescriptions); +static VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceShaderInstrumentationMetricsARM( + VkPhysicalDevice physicalDevice, uint32_t* pDescriptionCount, VkShaderInstrumentationMetricDescriptionARM* pDescriptions); + +static VKAPI_ATTR VkResult VKAPI_CALL CreateShaderInstrumentationARM(VkDevice device, + const VkShaderInstrumentationCreateInfoARM* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkShaderInstrumentationARM* pInstrumentation); + +static VKAPI_ATTR void VKAPI_CALL DestroyShaderInstrumentationARM(VkDevice device, VkShaderInstrumentationARM instrumentation, + const VkAllocationCallbacks* pAllocator); + +static VKAPI_ATTR void VKAPI_CALL CmdBeginShaderInstrumentationARM(VkCommandBuffer commandBuffer, + VkShaderInstrumentationARM instrumentation); + +static VKAPI_ATTR void VKAPI_CALL CmdEndShaderInstrumentationARM(VkCommandBuffer commandBuffer); + +static VKAPI_ATTR VkResult VKAPI_CALL GetShaderInstrumentationValuesARM(VkDevice device, VkShaderInstrumentationARM instrumentation, + uint32_t* pMetricBlockCount, void* pMetricValues, + VkShaderInstrumentationValuesFlagsARM flags); + +static VKAPI_ATTR void VKAPI_CALL ClearShaderInstrumentationMetricsARM(VkDevice device, VkShaderInstrumentationARM instrumentation); + static VKAPI_ATTR void VKAPI_CALL CmdEndRendering2EXT(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo); @@ -3964,6 +3985,13 @@ static const std::unordered_map name_to_funcptr_map = { #endif {"vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM", (void*)EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM}, + {"vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM", (void*)EnumeratePhysicalDeviceShaderInstrumentationMetricsARM}, + {"vkCreateShaderInstrumentationARM", (void*)CreateShaderInstrumentationARM}, + {"vkDestroyShaderInstrumentationARM", (void*)DestroyShaderInstrumentationARM}, + {"vkCmdBeginShaderInstrumentationARM", (void*)CmdBeginShaderInstrumentationARM}, + {"vkCmdEndShaderInstrumentationARM", (void*)CmdEndShaderInstrumentationARM}, + {"vkGetShaderInstrumentationValuesARM", (void*)GetShaderInstrumentationValuesARM}, + {"vkClearShaderInstrumentationMetricsARM", (void*)ClearShaderInstrumentationMetricsARM}, {"vkCmdEndRendering2EXT", (void*)CmdEndRendering2EXT}, {"vkCmdBeginCustomResolveEXT", (void*)CmdBeginCustomResolveEXT}, {"vkCmdSetComputeOccupancyPriorityNV", (void*)CmdSetComputeOccupancyPriorityNV}, diff --git a/icd/generated/function_definitions.h b/icd/generated/function_definitions.h index c080684e6..1a9919a3e 100644 --- a/icd/generated/function_definitions.h +++ b/icd/generated/function_definitions.h @@ -4444,6 +4444,40 @@ static VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerforma // Not a CREATE or DESTROY function return VK_SUCCESS; } +static VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceShaderInstrumentationMetricsARM( + VkPhysicalDevice physicalDevice, uint32_t* pDescriptionCount, VkShaderInstrumentationMetricDescriptionARM* pDescriptions) { + // Not a CREATE or DESTROY function + return VK_SUCCESS; +} +static VKAPI_ATTR VkResult VKAPI_CALL CreateShaderInstrumentationARM(VkDevice device, + const VkShaderInstrumentationCreateInfoARM* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkShaderInstrumentationARM* pInstrumentation) { + unique_lock_t lock(global_lock); + *pInstrumentation = (VkShaderInstrumentationARM)global_unique_handle++; + return VK_SUCCESS; +} +static VKAPI_ATTR void VKAPI_CALL DestroyShaderInstrumentationARM(VkDevice device, VkShaderInstrumentationARM instrumentation, + const VkAllocationCallbacks* pAllocator) { + // Destroy object +} +static VKAPI_ATTR void VKAPI_CALL CmdBeginShaderInstrumentationARM(VkCommandBuffer commandBuffer, + VkShaderInstrumentationARM instrumentation) { + // Not a CREATE or DESTROY function +} +static VKAPI_ATTR void VKAPI_CALL CmdEndShaderInstrumentationARM(VkCommandBuffer commandBuffer) { + // Not a CREATE or DESTROY function +} +static VKAPI_ATTR VkResult VKAPI_CALL GetShaderInstrumentationValuesARM(VkDevice device, VkShaderInstrumentationARM instrumentation, + uint32_t* pMetricBlockCount, void* pMetricValues, + VkShaderInstrumentationValuesFlagsARM flags) { + // Not a CREATE or DESTROY function + return VK_SUCCESS; +} +static VKAPI_ATTR void VKAPI_CALL ClearShaderInstrumentationMetricsARM(VkDevice device, + VkShaderInstrumentationARM instrumentation) { + // Not a CREATE or DESTROY function +} static VKAPI_ATTR void VKAPI_CALL CmdEndRendering2EXT(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo) { // Not a CREATE or DESTROY function diff --git a/icd/generated/vk_typemap_helper.h b/icd/generated/vk_typemap_helper.h index 07dc8639c..0b32b7daf 100644 --- a/icd/generated/vk_typemap_helper.h +++ b/icd/generated/vk_typemap_helper.h @@ -12767,6 +12767,52 @@ struct LvlSTypeMap +struct LvlTypeMap { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM; +}; + +template <> +struct LvlSTypeMap { + typedef VkPhysicalDeviceShaderInstrumentationFeaturesARM Type; +}; + +// Map type VkPhysicalDeviceShaderInstrumentationPropertiesARM to id +// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM +template <> +struct LvlTypeMap { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM; +}; + +template <> +struct LvlSTypeMap { + typedef VkPhysicalDeviceShaderInstrumentationPropertiesARM Type; +}; + +// Map type VkShaderInstrumentationCreateInfoARM to id VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM +template <> +struct LvlTypeMap { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM; +}; + +template <> +struct LvlSTypeMap { + typedef VkShaderInstrumentationCreateInfoARM Type; +}; + +// Map type VkShaderInstrumentationMetricDescriptionARM to id VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM +template <> +struct LvlTypeMap { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM; +}; + +template <> +struct LvlSTypeMap { + typedef VkShaderInstrumentationMetricDescriptionARM Type; +}; + // Map type VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT to id // VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT template <> @@ -12826,7 +12872,6 @@ struct LvlSTypeMap struct LvlTypeMap { @@ -12838,8 +12883,6 @@ struct LvlSTypeMap { typedef VkSetPresentConfigNV Type; }; -#endif // VK_ENABLE_BETA_EXTENSIONS -#ifdef VK_ENABLE_BETA_EXTENSIONS // Map type VkPhysicalDevicePresentMeteringFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV template <> struct LvlTypeMap { @@ -12851,7 +12894,6 @@ struct LvlSTypeMap diff --git a/scripts/known_good.json b/scripts/known_good.json index 547fcc894..99066542b 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -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": "MoltenVK", @@ -56,7 +56,7 @@ "cmake_options": [ "-DLOADER_USE_UNSAFE_FILE_SEARCH=ON" ], - "commit": "v1.4.344", + "commit": "v1.4.345", "build_platforms": [ "windows", "linux",