Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4eb0c6e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "libvulkan: revert the false surface support implementation" am:...

Merge "libvulkan: revert the false surface support implementation" am: cdec9919 am: 5de62c01 am: 3e6d95ef

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1576763

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie584fceb2241f12a83039d25d57edd576b27a461
parents e73c2172 3e6d95ef
Loading
Loading
Loading
Loading
+2 −37
Original line number Diff line number Diff line
@@ -606,44 +606,9 @@ void DestroySurfaceKHR(VkInstance instance,
VKAPI_ATTR
VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice /*pdev*/,
                                            uint32_t /*queue_family*/,
                                            VkSurfaceKHR surface_handle,
                                            VkSurfaceKHR /*surface_handle*/,
                                            VkBool32* supported) {
    ATRACE_CALL();

    const Surface* surface = SurfaceFromHandle(surface_handle);
    if (!surface) {
        return VK_ERROR_SURFACE_LOST_KHR;
    }
    const ANativeWindow* window = surface->window.get();

    int query_value;
    int err = window->query(window, NATIVE_WINDOW_FORMAT, &query_value);
    if (err != android::OK || query_value < 0) {
        ALOGE("NATIVE_WINDOW_FORMAT query failed: %s (%d) value=%d",
              strerror(-err), err, query_value);
        return VK_ERROR_SURFACE_LOST_KHR;
    }

    android_pixel_format native_format =
        static_cast<android_pixel_format>(query_value);

    bool format_supported = false;
    switch (native_format) {
        case HAL_PIXEL_FORMAT_RGBA_8888:
        case HAL_PIXEL_FORMAT_RGB_565:
        case HAL_PIXEL_FORMAT_RGBA_FP16:
        case HAL_PIXEL_FORMAT_RGBA_1010102:
            format_supported = true;
            break;
        default:
            break;
    }

    *supported = static_cast<VkBool32>(
        format_supported || (surface->consumer_usage &
                             (AHARDWAREBUFFER_USAGE_CPU_READ_MASK |
                              AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK)) == 0);

    *supported = VK_TRUE;
    return VK_SUCCESS;
}