diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2019-06-28 22:24:41 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2019-07-08 16:32:53 +0300 |
commit | c6c75e11175baeb6b984e0cc13c6fbe2863a0794 (patch) | |
tree | 6eeaff5b832abf4d434cbe0ff95ad0fa5b288d17 /tests/kms_plane.c | |
parent | 3cbe76c509bcc32b2380de7f1b56825b66268b29 (diff) |
tests/kms_plane: Throw away yet another bit
CHV pipe A/C sprites are causing a crc mismatch with BT.601
when we keep the six msbs. If we throw away one more bit we get
matches for BT.601. BT.709 matches even with 6 bits, as do the
pipe B planes with their programmable CSC. Also IVB and KBL
were both happy with 6 bits, so doesn't seem that that these
CHV mismatches are due to bugs in our code, just the hw is
a bit imprecise.
v2: s/bi/bit/ in the subject (Nicholas)
Cc: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Uma Shankar <uma.shanka@intel.com>
Tested-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'tests/kms_plane.c')
-rw-r--r-- | tests/kms_plane.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/tests/kms_plane.c b/tests/kms_plane.c index ce4bf9e1..5f1a73f8 100644 --- a/tests/kms_plane.c +++ b/tests/kms_plane.c @@ -30,6 +30,13 @@ #include <stdio.h> #include <string.h> +/* + * Throw away enough lsbs in pixel formats tests + * to get a match despite some differences between + * the software and hardware YCbCr<->RGB conversion + * routines. + */ +#define LUT_MASK 0xf800 typedef struct { float red; @@ -697,7 +704,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe, continue; if (format == DRM_FORMAT_C8) { - if (!set_c8_legacy_lut(data, pipe, 0xfc00)) + if (!set_c8_legacy_lut(data, pipe, LUT_MASK)) continue; } else { if (!igt_fb_supported_format(format)) @@ -716,7 +723,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe, ref_crc, &fb); if (format == DRM_FORMAT_C8) - set_legacy_lut(data, pipe, 0xfc00); + set_legacy_lut(data, pipe, LUT_MASK); } igt_pipe_crc_stop(data->pipe_crc); @@ -751,7 +758,7 @@ test_pixel_formats(data_t *data, enum pipe pipe) igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); - set_legacy_lut(data, pipe, 0xfc00); + set_legacy_lut(data, pipe, LUT_MASK); test_init(data, pipe); |