aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornyorain <nyorain@gmail.com>2022-01-21 16:09:49 +0100
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2022-01-26 15:49:07 -0700
commitb69bea34466e746f919388ff88a783fae64ca43a (patch)
treecb7342c705e93b1c3a2a29a2268cfa836e5297fd
parent00b06c365fa76fb44a1ecf12661d21d6d941df63 (diff)
downloadusermoji-b69bea34466e746f919388ff88a783fae64ca43a.tar.xz
mockicd: Fix queue destruction for multiple devices
-rw-r--r--icd/generated/mock_icd.cpp11
-rw-r--r--scripts/mock_icd_generator.py11
2 files changed, 10 insertions, 12 deletions
diff --git a/icd/generated/mock_icd.cpp b/icd/generated/mock_icd.cpp
index 24a9c611..5642f39f 100644
--- a/icd/generated/mock_icd.cpp
+++ b/icd/generated/mock_icd.cpp
@@ -381,14 +381,13 @@ static VKAPI_ATTR void VKAPI_CALL DestroyDevice(
unique_lock_t lock(global_lock);
// First destroy sub-device objects
// Destroy Queues
- for (auto dev_queue_map_pair : queue_map) {
- for (auto queue_family_map_pair : queue_map[dev_queue_map_pair.first]) {
- for (auto index_queue_pair : queue_map[dev_queue_map_pair.first][queue_family_map_pair.first]) {
- DestroyDispObjHandle((void*)index_queue_pair.second);
- }
+ for (auto queue_family_map_pair : queue_map[device]) {
+ for (auto index_queue_pair : queue_map[device][queue_family_map_pair.first]) {
+ DestroyDispObjHandle((void*)index_queue_pair.second);
}
}
- queue_map.clear();
+
+ queue_map.erase(device);
buffer_map.erase(device);
image_memory_size_map.erase(device);
// Now destroy device
diff --git a/scripts/mock_icd_generator.py b/scripts/mock_icd_generator.py
index 5973c005..6fd86219 100644
--- a/scripts/mock_icd_generator.py
+++ b/scripts/mock_icd_generator.py
@@ -503,14 +503,13 @@ CUSTOM_C_INTERCEPTS = {
unique_lock_t lock(global_lock);
// First destroy sub-device objects
// Destroy Queues
- for (auto dev_queue_map_pair : queue_map) {
- for (auto queue_family_map_pair : queue_map[dev_queue_map_pair.first]) {
- for (auto index_queue_pair : queue_map[dev_queue_map_pair.first][queue_family_map_pair.first]) {
- DestroyDispObjHandle((void*)index_queue_pair.second);
- }
+ for (auto queue_family_map_pair : queue_map[device]) {
+ for (auto index_queue_pair : queue_map[device][queue_family_map_pair.first]) {
+ DestroyDispObjHandle((void*)index_queue_pair.second);
}
}
- queue_map.clear();
+
+ queue_map.erase(device);
buffer_map.erase(device);
image_memory_size_map.erase(device);
// Now destroy device