diff options
| author | Norbert Nopper <Norbert.Nopper@nxp.com> | 2016-11-25 07:55:13 +0100 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-11-29 13:24:05 -0700 |
| commit | 09854fbb01a3c10287b759e88f40e5c05c9be9ba (patch) | |
| tree | 11a85a8261e364b5e0f10155fe6320bf8c769c04 /layers/unique_objects.cpp | |
| parent | d328f5199e828b2ab80f13d05871f31c1c9d0a96 (diff) | |
| download | usermoji-09854fbb01a3c10287b759e88f40e5c05c9be9ba.tar.xz | |
layers: Complete support for VK_KHR_Display ext
Fixed using display extension only crash.
Added vkGetDisplayPlaneCapabilitiesKHR.
Fixes, that unique objects works for display extension.
Change-Id: I66727a430b9d55bfa40fdddc884f40c91aa29f11
Diffstat (limited to 'layers/unique_objects.cpp')
| -rw-r--r-- | layers/unique_objects.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp index 3a0945a8..b8564f36 100644 --- a/layers/unique_objects.cpp +++ b/layers/unique_objects.cpp @@ -676,6 +676,26 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayModePropertiesKHR(VkPhysicalDevice phys } return result; } + +VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, + uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR *pCapabilities) { + layer_data *dev_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map); + { + std::lock_guard<std::mutex> lock(global_lock); + auto it = dev_data->unique_id_mapping.find(reinterpret_cast<uint64_t &>(mode)); + if (it == dev_data->unique_id_mapping.end()) { + uint64_t unique_id = global_unique_id++; + dev_data->unique_id_mapping[unique_id] = reinterpret_cast<uint64_t &>(mode); + + mode = reinterpret_cast<VkDisplayModeKHR &>(unique_id); + } else { + mode = reinterpret_cast<VkDisplayModeKHR &>(it->second); + } + } + VkResult result = + dev_data->instance_dispatch_table->GetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities); + return result; +} #endif } // namespace unique_objects |
