Loading vulkan/libvulkan/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -68,10 +68,14 @@ cc_library_shared { "vulkan_headers", ], shared_libs: [ "android.hardware.configstore@1.0", "android.hardware.configstore-utils", "libziparchive", "libhardware", "libsync", "libbase", "libhidlbase", "libhidltransport", "liblog", "libui", "libgraphicsenv", Loading vulkan/libvulkan/driver.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <log/log.h> #include <android/dlext.h> #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <configstore/Utils.h> #include <cutils/properties.h> #include <graphicsenv/GraphicsEnv.h> #include <utils/Vector.h> Loading @@ -36,6 +38,9 @@ #include "driver.h" #include "stubhal.h" using namespace android::hardware::configstore; using namespace android::hardware::configstore::V1_0; // TODO(b/37049319) Get this from a header once one exists extern "C" { android_namespace_t* android_get_exported_namespace(const char*); Loading Loading @@ -826,6 +831,14 @@ VkResult EnumerateDeviceExtensionProperties( VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION}); bool hdrBoardConfig = getBool<ISurfaceFlingerConfigs, &ISurfaceFlingerConfigs::hasHDRDisplay>( false); if (hdrBoardConfig) { loader_extensions.push_back({VK_EXT_HDR_METADATA_EXTENSION_NAME, VK_EXT_HDR_METADATA_SPEC_VERSION}); } VkPhysicalDevicePresentationPropertiesANDROID presentation_properties; if (QueryPresentationProperties(physicalDevice, &presentation_properties) && presentation_properties.sharedImage) { Loading vulkan/libvulkan/swapchain.cpp +30 −6 Original line number Diff line number Diff line Loading @@ -1650,15 +1650,39 @@ VkResult GetSwapchainStatusKHR( } VKAPI_ATTR void SetHdrMetadataEXT( VkDevice device, VkDevice, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pHdrMetadataEXTs) { // TODO: courtneygo: implement actual function (void)device; (void)swapchainCount; (void)pSwapchains; (void)pHdrMetadataEXTs; for (uint32_t idx = 0; idx < swapchainCount; idx++) { Swapchain* swapchain = SwapchainFromHandle(pSwapchains[idx]); if (!swapchain) continue; if (swapchain->surface.swapchain_handle != pSwapchains[idx]) continue; ANativeWindow* window = swapchain->surface.window.get(); VkHdrMetadataEXT vulkanMetadata = pHdrMetadataEXTs[idx]; const android_smpte2086_metadata smpteMetdata = { {vulkanMetadata.displayPrimaryRed.x, vulkanMetadata.displayPrimaryRed.y}, {vulkanMetadata.displayPrimaryGreen.x, vulkanMetadata.displayPrimaryGreen.y}, {vulkanMetadata.displayPrimaryBlue.x, vulkanMetadata.displayPrimaryBlue.y}, {vulkanMetadata.whitePoint.x, vulkanMetadata.whitePoint.y}, vulkanMetadata.maxLuminance, vulkanMetadata.minLuminance}; native_window_set_buffers_smpte2086_metadata(window, &smpteMetdata); const android_cta861_3_metadata cta8613Metadata = { vulkanMetadata.maxContentLightLevel, vulkanMetadata.maxFrameAverageLightLevel}; native_window_set_buffers_cta861_3_metadata(window, &cta8613Metadata); } return; } Loading Loading
vulkan/libvulkan/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -68,10 +68,14 @@ cc_library_shared { "vulkan_headers", ], shared_libs: [ "android.hardware.configstore@1.0", "android.hardware.configstore-utils", "libziparchive", "libhardware", "libsync", "libbase", "libhidlbase", "libhidltransport", "liblog", "libui", "libgraphicsenv", Loading
vulkan/libvulkan/driver.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <log/log.h> #include <android/dlext.h> #include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h> #include <configstore/Utils.h> #include <cutils/properties.h> #include <graphicsenv/GraphicsEnv.h> #include <utils/Vector.h> Loading @@ -36,6 +38,9 @@ #include "driver.h" #include "stubhal.h" using namespace android::hardware::configstore; using namespace android::hardware::configstore::V1_0; // TODO(b/37049319) Get this from a header once one exists extern "C" { android_namespace_t* android_get_exported_namespace(const char*); Loading Loading @@ -826,6 +831,14 @@ VkResult EnumerateDeviceExtensionProperties( VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME, VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION}); bool hdrBoardConfig = getBool<ISurfaceFlingerConfigs, &ISurfaceFlingerConfigs::hasHDRDisplay>( false); if (hdrBoardConfig) { loader_extensions.push_back({VK_EXT_HDR_METADATA_EXTENSION_NAME, VK_EXT_HDR_METADATA_SPEC_VERSION}); } VkPhysicalDevicePresentationPropertiesANDROID presentation_properties; if (QueryPresentationProperties(physicalDevice, &presentation_properties) && presentation_properties.sharedImage) { Loading
vulkan/libvulkan/swapchain.cpp +30 −6 Original line number Diff line number Diff line Loading @@ -1650,15 +1650,39 @@ VkResult GetSwapchainStatusKHR( } VKAPI_ATTR void SetHdrMetadataEXT( VkDevice device, VkDevice, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pHdrMetadataEXTs) { // TODO: courtneygo: implement actual function (void)device; (void)swapchainCount; (void)pSwapchains; (void)pHdrMetadataEXTs; for (uint32_t idx = 0; idx < swapchainCount; idx++) { Swapchain* swapchain = SwapchainFromHandle(pSwapchains[idx]); if (!swapchain) continue; if (swapchain->surface.swapchain_handle != pSwapchains[idx]) continue; ANativeWindow* window = swapchain->surface.window.get(); VkHdrMetadataEXT vulkanMetadata = pHdrMetadataEXTs[idx]; const android_smpte2086_metadata smpteMetdata = { {vulkanMetadata.displayPrimaryRed.x, vulkanMetadata.displayPrimaryRed.y}, {vulkanMetadata.displayPrimaryGreen.x, vulkanMetadata.displayPrimaryGreen.y}, {vulkanMetadata.displayPrimaryBlue.x, vulkanMetadata.displayPrimaryBlue.y}, {vulkanMetadata.whitePoint.x, vulkanMetadata.whitePoint.y}, vulkanMetadata.maxLuminance, vulkanMetadata.minLuminance}; native_window_set_buffers_smpte2086_metadata(window, &smpteMetdata); const android_cta861_3_metadata cta8613Metadata = { vulkanMetadata.maxContentLightLevel, vulkanMetadata.maxFrameAverageLightLevel}; native_window_set_buffers_cta861_3_metadata(window, &cta8613Metadata); } return; } Loading