Opened 2 weeks ago

Closed 64 minutes ago

#19760 closed enhancement (fixed)

Vulkan-Headers Vulkan-Loader 1.3.285

Reported by: Bruce Dubbs Owned by: Douglas R. Reno
Priority: normal Milestone: 12.2
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description (last modified by Bruce Dubbs)

New point version.

Change History (5)

comment:1 by Bruce Dubbs, 2 weeks ago

Description: modified (diff)
Summary: Vulkan-Headers 1.3.284Vulkan-Headers Vulkan-Loader 1.3.284

comment:2 by Douglas R. Reno, 9 days ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

comment:3 by Douglas R. Reno, 5 hours ago

Summary: Vulkan-Headers Vulkan-Loader 1.3.284Vulkan-Headers Vulkan-Loader 1.3.285

comment:4 by Douglas R. Reno, 110 minutes ago

Vulkan-Headers

Update for Vulkan-Docs 1.3.284 
Update for Vulkan-Docs 1.3.285 

Vulkan-Loader

build(deps): bump github/codeql-action from 3.25.0 to 3.25.1 
Gracefully handle error results from vkEnumeratePhysicalDevices
  If any driver returned non-VK_SUCCESS values (except for OOHM) when the
  loader calls vkEnumeratePhysicalDevices, it would give up and return
  immediately. This could result in perfectly functional drivers being
  ignored.
  The solution is to just skip over drivers that return non-VK_SUCCESS.
Add simple timer of ICD preloading in live tests 
  Adds a simple executable that times how long vkEnumerateInstanceExtensionProperties
  takes over and over to see how well the ICD preloading functions.
Unload drivers which report 0 physical devices 
  The loader did not unload any ICD's which contained zero physical devices, which
  could cause premature exhaustion of memory in some circumstances, like 32 bit
  applications. While the policy of the loader has been to keep things open for
  the duration of the instance, these ICD's don't meaningfully participate in
  anything due to the lack of VkPhysicalDevices.
  This change adds a check after vkEnumeratePhysicalDevices where pPhysicalDevices
  is not NULL such that all loader_icd_terms which reported zero physical devices
  have its vkDestroyInstance called, and removed from the loader_instance's
  icd_term linked list.
Rename total_icd_count to icd_terms_count 
Enhance driver unloading tests 
Fix TestICD enabled instance extension tracking 
Use ICD lib_name in error reporting instead of index 
  The index must be referenced against the loader's internal index of each
  ICD. Instead, we should print the lib_name in the error message, making
  it more clear which driver the error is coming from.
Enhance DriverUnloading tests 
  Drivers resize after 32 elements, so to test that path we need to loop
  over instance level handle creation (surface, debug messenger, debug
  report).
  The driver unloading tests needed to create a debug report callback, so
  that functionality was added to the test framework, modifying
  VulkanFunctions with a new init function and to make InstWrapper call it
  when creating an instance.
  Modify how test_icd_version_7 operates so that by default the functions
  are exported which is the 'assumed' codepath. This results in a bit of
  duplication between version 6 & 7, but was kept so as to not modify
  every test. This also clarifies how a test should enable querying of
  the functions through vkGetInstanceProcAddr versus exporting those
  functions (it was combined before).
Refactor instance level objects to not use icd_index 
  The previous way per-ICD instance level objects were accessed was
  using the ICD's index into an array that was allocated with the object.
  This solution worked while the indexes were static, but with the
  recent change to remove unused ICD's that is no longer the case.
  This commit replaces an array per object with object arrays, one for each
  type (surface, debug messenger, & debug report) and per ICD. That flips
  where the index comes from, with the instance storing an array indication
  which indices are used and which are free.
  Whenever an instance level object is created, the loader checks if there
  is a free index available, reusing it if available. Otherwise it resizes
  its own store as well as each ICD's array for that object.
ci: Update to python 3.11 
Add missing VKAPI_ATTR/VKAPI_CALL in test_icd.cpp 
  Necessary for any functions called across dll boundaries on 32 bit windows.
Add VK_LAYER_PATH ordering test 
build(deps): bump github/codeql-action from 3.25.1 to 3.25.3 
Allow layers to call global functions in vkCreateInstance 
  Layers that want to call other global functions during vkCreateInstance
  couldn't due to loader_gpa_instance_terminator missing the necessary logic.
  Because those global functions have a different signature, it was decided
  to update the terminator_<function> signatures to match the Vulkan API, and
  make dedicated pre-instance intercetpion functions with the appropriate
  Chain object as the first parameter.
  Now during the call down to vkCreateInstance a layer can query for
  pre-instance functions with vkGetInstanceProcAddr and is able to call them
  using the Vulkan API function signature.
Fix tests framework_config.h to work all the time 
  When using multi-config build systems such as MSVC, it was possible
  for the framework_config.h to not be updated properly, resulting in
  the wrong binaries being used during testing. By ditching the
  common header file and directly specifying the header file to use
  through a compiler definition, the code is now shorter and more
  reliable.
Use std::filesystem instead of custom fs::path 
  Removes code and makes the codebase more understandable (by not
  introducing weird behavior unique to fs::path).
  Replaces a lot of the bespoke logic to handle string<->wstring due
  to using std::filesystem::path.
Add Create/DestroyDebugReportCallback to test_icd 
Destroy Instance objects before Instance & use correct allocator 
  The loader was accidentally destroying instance level objects after
  it called vkDestroyInstance. This only was caught during driver unloading
  because in a well behaved app, all objects are destroyed before calling
  vkDestroyInstance.
  The other issue was that a non-null pAllocator was passed into
  object destruction but the members of VkAllocatorCallbacks were NULL,
  due to just taking a pointer to the instance's allocator callbacks.
  That has been fixed. A possible issue is that the allocator callbacks
  used during object creation weren't used in destruction, which has
  also been fixed.
build: Update to header 1.3.284 
Check for NULL in unloading of preloaded-icd's 
  strcmp has undefined behavior if either parameter is NULL. Due to clearing
  out unloaded entries, this would cause unload_drivers_without_physical_devices
  to try to compare against already unloaded entries.
  This commit also condenses the preloaded_icds list so that it doesn't contain
  gaps.
build: Update to header 1.3.285 

comment:5 by Douglas R. Reno, 64 minutes ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.