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

Commit f768e04b authored by Yuxin Hu's avatar Yuxin Hu
Browse files

Add VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT to FP16 surface

VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT is not enabled
on any VkFormat. This means ANGLE on Vulkan is not exposing
EGL_EXT_gl_colorspace_display_p3_linear EGL colorspace,
because ANGLE's query of VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
vulkan color space returns nothing. This causes
TextureViewTest that relies on
EGL_EXT_gl_colorspace_display_p3_linear color space support
to fail on ANGLE. To fix it, enable the
VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT color space on
VK_FORMAT_R16G16B16A16_SFLOAT VkFormat first.

Test: atest --verbose CtsViewTestCases:android.view.cts.TextureViewTest
Bug: b/322044839
Change-Id: I95b6b425aef4b7870797e406dce59f596f1f50c3
parent d3ff5213
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@
 * limitations under the License.
 * limitations under the License.
 */
 */


#include "vulkan/vulkan_core.h"
#define ATRACE_TAG ATRACE_TAG_GRAPHICS
#define ATRACE_TAG ATRACE_TAG_GRAPHICS


#include <aidl/android/hardware/graphics/common/Dataspace.h>
#include <aidl/android/hardware/graphics/common/Dataspace.h>
@@ -789,6 +790,9 @@ VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice pdev,
            all_formats.emplace_back(
            all_formats.emplace_back(
                VkSurfaceFormatKHR{VK_FORMAT_R16G16B16A16_SFLOAT,
                VkSurfaceFormatKHR{VK_FORMAT_R16G16B16A16_SFLOAT,
                                   VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT});
                                   VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT});
            all_formats.emplace_back(
                VkSurfaceFormatKHR{VK_FORMAT_R16G16B16A16_SFLOAT,
                                   VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT});
        }
        }
    }
    }