Closed charles-lunarg closed 1 week ago
CI Vulkan-Loader build queued with queue ID 235438.
CI Vulkan-Loader build # 2663 running.
CI Vulkan-Loader build # 2663 passed.
The changes look good to me.
I wondered if it is common for the loader to cache the app's *CreateInfo struct when the loader creates an instance-level object that wraps the ICD's own objects. vk.xml
contains only four objects tagged with parent="VkInstance"
. They are:
VkPhysicalDevice
, wrapped by loader_physical_device_tramp()
and loader_physical_device_term()
, much more complicatedVkSurfaceKHR
, wrapped by VkIcdSurface
VkDebugReportCallbackEXT
, wrapped by loader_msg_callback_map_entry
VkDebugUtilsMessengerEXT
, wrapped by loader_debug_utils_messenger_list
Probably these objects should all follow a similar pattern, with the exception that physical device is way more complicated.
None of these objects cache the *CreateInfo
except VkIcdSurface
. Removing the cached createInfo from VkIcdSurface
makes sense.
I checked another WSI object's factory: terminator_CreateDisplayModeKHR()
. This one does not have a similar pattern to VkSurfaceKHR
, and that makes sense because the parent of VkDisplayModeKHR
is VkPhysicalDevice
, not VkInstance
.
Lack of response to me indicates that this isn't a controversial PR to make - I'll go ahead and merge. If this does become an issue, it can be reverted.
All of the VkIcdSurface members, as well as the *_size & offset members are unused by the codebase. And drivers do not have access to this struct, as it is internal to the loader - no common definition exists elsewhere for drivers to use either.