OSDN Git Service

Don't advertise BGR24 as a render/texture target
authorrenchenglei <chenglei.ren@intel.com>
Tue, 16 Oct 2018 03:19:26 +0000 (11:19 +0800)
committerrenchenglei <chenglei.ren@intel.com>
Tue, 16 Oct 2018 03:19:26 +0000 (11:19 +0800)
Mesa drivers can't use it, in general. This patch could
fix following CTS case:
SingleLayer_ColorTest_GpuColorOutputAndSampledImage_R8G8B8_UNORM
SingleLayer_ColorTest_GpuColorOutputCpuRead_R8G8B8_UNORM
SingleLayer_ColorTest_GpuColorOutputIsRenderable_R8G8B8_UNORM
SingleLayer_ColorTest_GpuSampledImageCanBeSampled_R8G8B8_UNORM

Tracked-On: https://jira01.devtools.intel.com/browse/OAM-70130

drv_priv.h
i915_private.c

index 6aa3f83..26f98cf 100644 (file)
@@ -104,6 +104,9 @@ struct backend {
                            BO_USE_SW_READ_OFTEN | BO_USE_SW_WRITE_OFTEN | \
                             BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY | BO_USE_TEXTURE
 
+#define BO_USE_SW_MASK BO_USE_SW_READ_OFTEN | BO_USE_SW_WRITE_OFTEN | \
+                       BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY
+
 #define LINEAR_METADATA (struct format_metadata) { 0, 1, DRM_FORMAT_MOD_NONE }
 // clang-format on
 
index 5b2ddf8..7a20a2e 100644 (file)
@@ -23,7 +23,9 @@
 static const uint32_t private_linear_source_formats[] = { DRM_FORMAT_R16,    DRM_FORMAT_NV16,
                                                          DRM_FORMAT_YUV420, DRM_FORMAT_YUV422,
                                                          DRM_FORMAT_YUV444, DRM_FORMAT_NV21,
-                                                         DRM_FORMAT_P010, DRM_FORMAT_RGB888, DRM_FORMAT_BGR888 };
+                                                         DRM_FORMAT_P010 };
+
+static const uint32_t private_rgb24_formats[] = { DRM_FORMAT_RGB888, DRM_FORMAT_BGR888 };
 
 static const uint32_t private_source_formats[] = { DRM_FORMAT_P010, DRM_FORMAT_NV12_Y_TILED_INTEL };
 
@@ -108,6 +110,10 @@ int i915_private_add_combinations(struct driver *drv)
        drv_add_combinations(drv, private_source_formats, ARRAY_SIZE(private_source_formats),
                             &metadata, texture_flags | BO_USE_CAMERA_MASK);
 
+        /* Android CTS tests require this. */
+        drv_add_combinations(drv, private_rgb24_formats, ARRAY_SIZE(private_rgb24_formats),
+                             &metadata, BO_USE_SW_MASK);
+
        texture_flags &= ~BO_USE_RENDERSCRIPT;
        texture_flags &= ~BO_USE_SW_WRITE_OFTEN;
        texture_flags &= ~BO_USE_SW_READ_OFTEN;