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

Commit cdec9919 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "libvulkan: revert the false surface support implementation"

parents c183b7c6 c7e46c47
Loading
Loading
Loading
Loading
+2 −37
Original line number Original line Diff line number Diff line
@@ -606,44 +606,9 @@ void DestroySurfaceKHR(VkInstance instance,
VKAPI_ATTR
VKAPI_ATTR
VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice /*pdev*/,
VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice /*pdev*/,
                                            uint32_t /*queue_family*/,
                                            uint32_t /*queue_family*/,
                                            VkSurfaceKHR surface_handle,
                                            VkSurfaceKHR /*surface_handle*/,
                                            VkBool32* supported) {
                                            VkBool32* supported) {
    ATRACE_CALL();
    *supported = VK_TRUE;

    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);

    return VK_SUCCESS;
    return VK_SUCCESS;
}
}