Loading vulkan/libvulkan/driver.cpp +18 −22 Original line number Diff line number Diff line Loading @@ -16,30 +16,29 @@ #define ATRACE_TAG ATRACE_TAG_GRAPHICS #include "driver.h" #include <dlfcn.h> #include <malloc.h> #include <stdlib.h> #include <string.h> #include <sys/prctl.h> #include <dlfcn.h> #include <algorithm> #include <array> #include <new> #include <log/log.h> #include <android/dlext.h> #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <android-base/properties.h> #include <configstore/Utils.h> #include <cutils/properties.h> #include <graphicsenv/GraphicsEnv.h> #include <log/log.h> #include <sys/prctl.h> #include <utils/Timers.h> #include <utils/Trace.h> #include <utils/Vector.h> #include "android-base/properties.h" #include <algorithm> #include <array> #include <new> #include <vector> #include "driver.h" #include "stubhal.h" using namespace android::hardware::configstore; Loading Loading @@ -809,8 +808,7 @@ VkResult EnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { android::Vector<VkExtensionProperties> loader_extensions; std::vector<VkExtensionProperties> loader_extensions; loader_extensions.push_back({ VK_KHR_SURFACE_EXTENSION_NAME, VK_KHR_SURFACE_SPEC_VERSION}); Loading @@ -833,7 +831,7 @@ VkResult EnumerateInstanceExtensionProperties( uint32_t count = std::min( *pPropertyCount, static_cast<uint32_t>(loader_extensions.size())); std::copy_n(loader_extensions.begin(), count, pProperties); std::copy_n(loader_extensions.data(), count, pProperties); if (count < loader_extensions.size()) { *pPropertyCount = count; Loading Loading @@ -879,8 +877,7 @@ VkResult EnumerateInstanceExtensionProperties( bool QueryPresentationProperties( VkPhysicalDevice physicalDevice, VkPhysicalDevicePresentationPropertiesANDROID *presentation_properties) { VkPhysicalDevicePresentationPropertiesANDROID *presentation_properties) { const InstanceData& data = GetData(physicalDevice); // GPDP2 must be present and enabled on the instance. Loading Loading @@ -920,7 +917,7 @@ VkResult EnumerateDeviceExtensionProperties( VkExtensionProperties* pProperties) { const InstanceData& data = GetData(physicalDevice); // extensions that are unconditionally exposed by the loader android::Vector<VkExtensionProperties> loader_extensions; std::vector<VkExtensionProperties> loader_extensions; loader_extensions.push_back({ VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION}); Loading Loading @@ -956,7 +953,7 @@ VkResult EnumerateDeviceExtensionProperties( uint32_t count = std::min( *pPropertyCount, static_cast<uint32_t>(loader_extensions.size())); std::copy_n(loader_extensions.begin(), count, pProperties); std::copy_n(loader_extensions.data(), count, pProperties); if (count < loader_extensions.size()) { *pPropertyCount = count; Loading Loading @@ -1245,11 +1242,10 @@ VkResult EnumeratePhysicalDeviceGroups( if (!device_count) return VK_INCOMPLETE; android::Vector<VkPhysicalDevice> devices; devices.resize(device_count); std::vector<VkPhysicalDevice> devices(device_count); *pPhysicalDeviceGroupCount = device_count; result = EnumeratePhysicalDevices(instance, &device_count, devices.editArray()); result = EnumeratePhysicalDevices(instance, &device_count, devices.data()); if (result < 0) return result; Loading vulkan/libvulkan/swapchain.cpp +11 −13 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ #include <ui/BufferQueueDefs.h> #include <utils/StrongPointer.h> #include <utils/Trace.h> #include <utils/Vector.h> #include <algorithm> #include <unordered_set> Loading Loading @@ -132,7 +131,6 @@ int InvertTransformToNative(VkSurfaceTransformFlagBitsKHR transform) { class TimingInfo { public: TimingInfo() = default; TimingInfo(const VkPresentTimeGOOGLE* qp, uint64_t nativeFrameId) : vals_{qp->presentID, qp->desiredPresentTime, 0, 0, 0}, native_frame_id_(nativeFrameId) {} Loading Loading @@ -266,7 +264,7 @@ struct Swapchain { bool dequeued; } images[android::BufferQueueDefs::NUM_BUFFER_SLOTS]; android::Vector<TimingInfo> timing; std::vector<TimingInfo> timing; }; VkSwapchainKHR HandleFromSwapchain(Swapchain* swapchain) { Loading Loading @@ -349,7 +347,7 @@ uint32_t get_num_ready_timings(Swapchain& swapchain) { uint32_t num_ready = 0; const size_t num_timings = swapchain.timing.size() - MIN_NUM_FRAMES_AGO + 1; for (uint32_t i = 0; i < num_timings; i++) { TimingInfo& ti = swapchain.timing.editItemAt(i); TimingInfo& ti = swapchain.timing[i]; if (ti.ready()) { // This TimingInfo is ready to be reported to the user. Add it // to the num_ready. Loading Loading @@ -419,7 +417,7 @@ void copy_ready_timings(Swapchain& swapchain, } uint32_t num_copied = 0; size_t num_to_remove = 0; int32_t num_to_remove = 0; for (uint32_t i = 0; i <= last_ready && num_copied < *count; i++) { const TimingInfo& ti = swapchain.timing[i]; if (ti.ready()) { Loading @@ -431,7 +429,8 @@ void copy_ready_timings(Swapchain& swapchain, // Discard old frames that aren't ready if newer frames are ready. // We don't expect to get the timing info for those old frames. swapchain.timing.removeItemsAt(0, num_to_remove); swapchain.timing.erase(swapchain.timing.begin(), swapchain.timing.begin() + num_to_remove); *count = num_copied; } Loading Loading @@ -817,11 +816,10 @@ VkResult GetPhysicalDeviceSurfaceFormats2KHR( } else { // temp vector for forwarding; we'll marshal it into the pSurfaceFormats // after the call. android::Vector<VkSurfaceFormatKHR> surface_formats; surface_formats.resize(*pSurfaceFormatCount); std::vector<VkSurfaceFormatKHR> surface_formats(*pSurfaceFormatCount); VkResult result = GetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, pSurfaceInfo->surface, pSurfaceFormatCount, &surface_formats.editItemAt(0)); surface_formats.data()); if (result == VK_SUCCESS || result == VK_INCOMPLETE) { // marshal results individually due to stride difference. Loading Loading @@ -863,7 +861,7 @@ VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice pdev, } uint32_t max_buffer_count = static_cast<uint32_t>(query_value); android::Vector<VkPresentModeKHR> present_modes; std::vector<VkPresentModeKHR> present_modes; if (min_undequeued_buffers + 1 < max_buffer_count) present_modes.push_back(VK_PRESENT_MODE_MAILBOX_KHR); present_modes.push_back(VK_PRESENT_MODE_FIFO_KHR); Loading @@ -883,7 +881,7 @@ VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice pdev, if (*count < num_modes) result = VK_INCOMPLETE; *count = std::min(*count, num_modes); std::copy(present_modes.begin(), present_modes.begin() + int(*count), modes); std::copy_n(present_modes.data(), *count, modes); } else { *count = num_modes; } Loading Loading @@ -1647,9 +1645,9 @@ VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* present_info) { // Add a new timing record with the user's presentID and // the nativeFrameId. swapchain.timing.push_back(TimingInfo(time, nativeFrameId)); swapchain.timing.emplace_back(time, nativeFrameId); while (swapchain.timing.size() > MAX_TIMING_INFOS) { swapchain.timing.removeAt(0); swapchain.timing.erase(swapchain.timing.begin()); } if (time->desiredPresentTime) { // Set the desiredPresentTime: Loading Loading
vulkan/libvulkan/driver.cpp +18 −22 Original line number Diff line number Diff line Loading @@ -16,30 +16,29 @@ #define ATRACE_TAG ATRACE_TAG_GRAPHICS #include "driver.h" #include <dlfcn.h> #include <malloc.h> #include <stdlib.h> #include <string.h> #include <sys/prctl.h> #include <dlfcn.h> #include <algorithm> #include <array> #include <new> #include <log/log.h> #include <android/dlext.h> #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <android-base/properties.h> #include <configstore/Utils.h> #include <cutils/properties.h> #include <graphicsenv/GraphicsEnv.h> #include <log/log.h> #include <sys/prctl.h> #include <utils/Timers.h> #include <utils/Trace.h> #include <utils/Vector.h> #include "android-base/properties.h" #include <algorithm> #include <array> #include <new> #include <vector> #include "driver.h" #include "stubhal.h" using namespace android::hardware::configstore; Loading Loading @@ -809,8 +808,7 @@ VkResult EnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { android::Vector<VkExtensionProperties> loader_extensions; std::vector<VkExtensionProperties> loader_extensions; loader_extensions.push_back({ VK_KHR_SURFACE_EXTENSION_NAME, VK_KHR_SURFACE_SPEC_VERSION}); Loading @@ -833,7 +831,7 @@ VkResult EnumerateInstanceExtensionProperties( uint32_t count = std::min( *pPropertyCount, static_cast<uint32_t>(loader_extensions.size())); std::copy_n(loader_extensions.begin(), count, pProperties); std::copy_n(loader_extensions.data(), count, pProperties); if (count < loader_extensions.size()) { *pPropertyCount = count; Loading Loading @@ -879,8 +877,7 @@ VkResult EnumerateInstanceExtensionProperties( bool QueryPresentationProperties( VkPhysicalDevice physicalDevice, VkPhysicalDevicePresentationPropertiesANDROID *presentation_properties) { VkPhysicalDevicePresentationPropertiesANDROID *presentation_properties) { const InstanceData& data = GetData(physicalDevice); // GPDP2 must be present and enabled on the instance. Loading Loading @@ -920,7 +917,7 @@ VkResult EnumerateDeviceExtensionProperties( VkExtensionProperties* pProperties) { const InstanceData& data = GetData(physicalDevice); // extensions that are unconditionally exposed by the loader android::Vector<VkExtensionProperties> loader_extensions; std::vector<VkExtensionProperties> loader_extensions; loader_extensions.push_back({ VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION}); Loading Loading @@ -956,7 +953,7 @@ VkResult EnumerateDeviceExtensionProperties( uint32_t count = std::min( *pPropertyCount, static_cast<uint32_t>(loader_extensions.size())); std::copy_n(loader_extensions.begin(), count, pProperties); std::copy_n(loader_extensions.data(), count, pProperties); if (count < loader_extensions.size()) { *pPropertyCount = count; Loading Loading @@ -1245,11 +1242,10 @@ VkResult EnumeratePhysicalDeviceGroups( if (!device_count) return VK_INCOMPLETE; android::Vector<VkPhysicalDevice> devices; devices.resize(device_count); std::vector<VkPhysicalDevice> devices(device_count); *pPhysicalDeviceGroupCount = device_count; result = EnumeratePhysicalDevices(instance, &device_count, devices.editArray()); result = EnumeratePhysicalDevices(instance, &device_count, devices.data()); if (result < 0) return result; Loading
vulkan/libvulkan/swapchain.cpp +11 −13 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ #include <ui/BufferQueueDefs.h> #include <utils/StrongPointer.h> #include <utils/Trace.h> #include <utils/Vector.h> #include <algorithm> #include <unordered_set> Loading Loading @@ -132,7 +131,6 @@ int InvertTransformToNative(VkSurfaceTransformFlagBitsKHR transform) { class TimingInfo { public: TimingInfo() = default; TimingInfo(const VkPresentTimeGOOGLE* qp, uint64_t nativeFrameId) : vals_{qp->presentID, qp->desiredPresentTime, 0, 0, 0}, native_frame_id_(nativeFrameId) {} Loading Loading @@ -266,7 +264,7 @@ struct Swapchain { bool dequeued; } images[android::BufferQueueDefs::NUM_BUFFER_SLOTS]; android::Vector<TimingInfo> timing; std::vector<TimingInfo> timing; }; VkSwapchainKHR HandleFromSwapchain(Swapchain* swapchain) { Loading Loading @@ -349,7 +347,7 @@ uint32_t get_num_ready_timings(Swapchain& swapchain) { uint32_t num_ready = 0; const size_t num_timings = swapchain.timing.size() - MIN_NUM_FRAMES_AGO + 1; for (uint32_t i = 0; i < num_timings; i++) { TimingInfo& ti = swapchain.timing.editItemAt(i); TimingInfo& ti = swapchain.timing[i]; if (ti.ready()) { // This TimingInfo is ready to be reported to the user. Add it // to the num_ready. Loading Loading @@ -419,7 +417,7 @@ void copy_ready_timings(Swapchain& swapchain, } uint32_t num_copied = 0; size_t num_to_remove = 0; int32_t num_to_remove = 0; for (uint32_t i = 0; i <= last_ready && num_copied < *count; i++) { const TimingInfo& ti = swapchain.timing[i]; if (ti.ready()) { Loading @@ -431,7 +429,8 @@ void copy_ready_timings(Swapchain& swapchain, // Discard old frames that aren't ready if newer frames are ready. // We don't expect to get the timing info for those old frames. swapchain.timing.removeItemsAt(0, num_to_remove); swapchain.timing.erase(swapchain.timing.begin(), swapchain.timing.begin() + num_to_remove); *count = num_copied; } Loading Loading @@ -817,11 +816,10 @@ VkResult GetPhysicalDeviceSurfaceFormats2KHR( } else { // temp vector for forwarding; we'll marshal it into the pSurfaceFormats // after the call. android::Vector<VkSurfaceFormatKHR> surface_formats; surface_formats.resize(*pSurfaceFormatCount); std::vector<VkSurfaceFormatKHR> surface_formats(*pSurfaceFormatCount); VkResult result = GetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, pSurfaceInfo->surface, pSurfaceFormatCount, &surface_formats.editItemAt(0)); surface_formats.data()); if (result == VK_SUCCESS || result == VK_INCOMPLETE) { // marshal results individually due to stride difference. Loading Loading @@ -863,7 +861,7 @@ VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice pdev, } uint32_t max_buffer_count = static_cast<uint32_t>(query_value); android::Vector<VkPresentModeKHR> present_modes; std::vector<VkPresentModeKHR> present_modes; if (min_undequeued_buffers + 1 < max_buffer_count) present_modes.push_back(VK_PRESENT_MODE_MAILBOX_KHR); present_modes.push_back(VK_PRESENT_MODE_FIFO_KHR); Loading @@ -883,7 +881,7 @@ VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice pdev, if (*count < num_modes) result = VK_INCOMPLETE; *count = std::min(*count, num_modes); std::copy(present_modes.begin(), present_modes.begin() + int(*count), modes); std::copy_n(present_modes.data(), *count, modes); } else { *count = num_modes; } Loading Loading @@ -1647,9 +1645,9 @@ VkResult QueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* present_info) { // Add a new timing record with the user's presentID and // the nativeFrameId. swapchain.timing.push_back(TimingInfo(time, nativeFrameId)); swapchain.timing.emplace_back(time, nativeFrameId); while (swapchain.timing.size() > MAX_TIMING_INFOS) { swapchain.timing.removeAt(0); swapchain.timing.erase(swapchain.timing.begin()); } if (time->desiredPresentTime) { // Set the desiredPresentTime: Loading