aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.h
diff options
context:
space:
mode:
authorMark Young <marky@lunarg.com>2017-03-10 17:31:18 -0700
committerMark Young <marky@lunarg.com>2017-03-16 10:38:05 -0600
commit2becce6c2922a9bd9866ec62aa74dfd0de2c655d (patch)
tree739828aa75006f2284978c44757da708e89b34dc /loader/loader.h
parent33ececd03ff44cbb37ead0359ce5a5964d3c3b1c (diff)
downloadusermoji-2becce6c2922a9bd9866ec62aa74dfd0de2c655d.tar.xz
loader: Fix vkEnumeratePhysicalDeviceGroupsKHX
vkEnumeratePhysicalDeviceGroupsKHX was not properly generating the physical device information or groups. Several changes resolve most of the issue, however, I'm still seeing issues when certain layers enabled. Change-Id: Id8d4553da25491a3d0a97e8d44e21340b41bc09c
Diffstat (limited to 'loader/loader.h')
-rw-r--r--loader/loader.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/loader/loader.h b/loader/loader.h
index a341f6cf..78160d0d 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -223,12 +223,23 @@ struct loader_instance_dispatch_table {
struct loader_instance {
struct loader_instance_dispatch_table *disp; // must be first entry in structure
+ // We need to manually track physical devices over time. If the user
+ // re-queries the information, we don't want to delete old data or
+ // create new data unless necessary.
uint32_t total_gpu_count;
uint32_t phys_dev_count_term;
struct loader_physical_device_term **phys_devs_term;
uint32_t phys_dev_count_tramp;
struct loader_physical_device_tramp **phys_devs_tramp;
+ // We also need to manually track physical device groups, but we don't need
+ // loader specific structures since we have that content in the physical
+ // device stored internal to the public structures.
+ uint32_t phys_dev_group_count_term;
+ struct VkPhysicalDeviceGroupPropertiesKHX **phys_dev_groups_term;
+ uint32_t phys_dev_group_count_tramp;
+ struct VkPhysicalDeviceGroupPropertiesKHX **phys_dev_groups_tramp;
+
struct loader_instance *next;
uint32_t total_icd_count;