mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
54 lines
2.3 KiB
Diff
54 lines
2.3 KiB
Diff
From 4d3f535ebb341ddce05e5b1750fcf17c6c4166c9 Mon Sep 17 00:00:00 2001
|
|
From: James Xiong <james.xiong@intel.com>
|
|
Date: Wed, 20 Nov 2019 15:59:00 -0800
|
|
Subject: [PATCH] iris: handle the failure of converting unsupported yuv
|
|
formats to isl
|
|
|
|
Signed-off-by: James Xiong <james.xiong@intel.com>
|
|
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
|
(cherry picked from commit d8569baaed1a38cf3da9e45375fa2267d9a1eeb0)
|
|
|
|
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3898>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3898>
|
|
Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
|
|
---
|
|
src/gallium/drivers/iris/iris_formats.c | 6 +++++-
|
|
src/gallium/drivers/iris/iris_resource.c | 3 ++-
|
|
2 files changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/gallium/drivers/iris/iris_formats.c b/src/gallium/drivers/iris/iris_formats.c
|
|
index f6344cc7543..a35b663a53c 100644
|
|
--- a/src/gallium/drivers/iris/iris_formats.c
|
|
+++ b/src/gallium/drivers/iris/iris_formats.c
|
|
@@ -338,9 +338,13 @@ iris_format_for_usage(const struct gen_device_info *devinfo,
|
|
isl_surf_usage_flags_t usage)
|
|
{
|
|
enum isl_format format = iris_isl_format_for_pipe_format(pformat);
|
|
- const struct isl_format_layout *fmtl = isl_format_get_layout(format);
|
|
struct isl_swizzle swizzle = ISL_SWIZZLE_IDENTITY;
|
|
|
|
+ if (format == ISL_FORMAT_UNSUPPORTED)
|
|
+ return (struct iris_format_info) { .fmt = format, .swizzle = swizzle };
|
|
+
|
|
+ const struct isl_format_layout *fmtl = isl_format_get_layout(format);
|
|
+
|
|
if (!util_format_is_srgb(pformat)) {
|
|
if (util_format_is_intensity(pformat)) {
|
|
swizzle = ISL_SWIZZLE(RED, RED, RED, RED);
|
|
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
|
|
index bdd715df2c9..7ca6097840a 100644
|
|
--- a/src/gallium/drivers/iris/iris_resource.c
|
|
+++ b/src/gallium/drivers/iris/iris_resource.c
|
|
@@ -85,7 +85,8 @@ modifier_is_supported(const struct gen_device_info *devinfo,
|
|
|
|
enum isl_format linear_format = isl_format_srgb_to_linear(rt_format);
|
|
|
|
- if (!isl_format_supports_ccs_e(devinfo, linear_format))
|
|
+ if (linear_format == ISL_FORMAT_UNSUPPORTED ||
|
|
+ !isl_format_supports_ccs_e(devinfo, linear_format))
|
|
return false;
|
|
|
|
return devinfo->gen >= 9 && devinfo->gen <= 11;
|
|
--
|
|
2.25.1
|
|
|