From: Leo <sunpeng.li@amd.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_color: Add 10bpc frame buffer parameterization to subtests
Date: Thu, 12 Dec 2019 15:53:34 -0500 [thread overview]
Message-ID: <cd5191d3-a041-5d7e-ba3a-69fb11aafa30@amd.com> (raw)
In-Reply-To: <20191212150319.GP1208@intel.com>
On 2019-12-12 10:03 a.m., Ville Syrjälä wrote:
> On Wed, Dec 11, 2019 at 03:46:36PM -0500, sunpeng.li@amd.com wrote:
>> From: Leo Li <sunpeng.li@amd.com>
>>
>> We'd like to test the hardware pipe's color management with 10bit
>> surfaces.
>
> Why exactly? The pipe color management stuff doesn't care what
> pixel format the plane used.
>
We expose 10bpc support to usermode with color management, so it'd be
good to cover it with a test.
With amdpgu, color management indeed doesn't care about surface format,
since it's all converted to fixed point in hardware beforehand. But I
think it's best to not assume hardware behavior, and test the actual
use case instead.
Leo
>> This change parameterizes the hardcoded formats within each
>> test, and ennumerates the additional subtests within a for loop. To
>> avoid renaming existing tests, the 10bpc tests will have '-10bpc'
>> inserted after the pipe name, while the 8bpc test names remain
>> unchanged.
>>
>> Signed-off-by: Leo Li <sunpeng.li@amd.com>
>> ---
>> tests/kms_color.c | 353 ++++++++++++++++++++++++++--------------------
>> 1 file changed, 198 insertions(+), 155 deletions(-)
>>
>> diff --git a/tests/kms_color.c b/tests/kms_color.c
>> index b4b578a7..3c76a0d2 100644
>> --- a/tests/kms_color.c
>> +++ b/tests/kms_color.c
>> @@ -52,6 +52,12 @@ typedef struct {
>> double coeffs[];
>> } gamma_lut_t;
>>
>> +typedef struct {
>> + uint32_t format;
>> + int bpc;
>> + char name[16];
>> +} fb_format_t;
>> +
>> static void paint_gradient_rectangles(data_t *data,
>> drmModeModeInfo *mode,
>> color_t *colors,
>> @@ -269,7 +275,8 @@ static void disable_prop(igt_pipe_t *pipe, enum igt_atomic_crtc_properties prop)
>> * rectangles with linear degamma LUT.
>> */
>> static void test_pipe_degamma(data_t *data,
>> - igt_plane_t *primary)
>> + igt_plane_t *primary,
>> + uint32_t fb_format)
>> {
>> igt_output_t *output;
>> gamma_lut_t *degamma_linear, *degamma_full;
>> @@ -301,7 +308,7 @@ static void test_pipe_degamma(data_t *data,
>> fb_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb);
>> igt_assert(fb_id);
>> @@ -309,7 +316,7 @@ static void test_pipe_degamma(data_t *data,
>> fb_modeset_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb_modeset);
>> igt_assert(fb_modeset_id);
>> @@ -356,7 +363,8 @@ static void test_pipe_degamma(data_t *data,
>> * LUT and verify we have the same CRC as drawing solid color rectangles.
>> */
>> static void test_pipe_gamma(data_t *data,
>> - igt_plane_t *primary)
>> + igt_plane_t *primary,
>> + uint32_t fb_format)
>> {
>> igt_output_t *output;
>> gamma_lut_t *gamma_full;
>> @@ -383,7 +391,7 @@ static void test_pipe_gamma(data_t *data,
>> fb_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb);
>> igt_assert(fb_id);
>> @@ -391,7 +399,7 @@ static void test_pipe_gamma(data_t *data,
>> fb_modeset_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb_modeset);
>> igt_assert(fb_modeset_id);
>> @@ -436,7 +444,8 @@ static void test_pipe_gamma(data_t *data,
>> * with linear legacy gamma LUT.
>> */
>> static void test_pipe_legacy_gamma(data_t *data,
>> - igt_plane_t *primary)
>> + igt_plane_t *primary,
>> + uint32_t fb_format)
>> {
>> igt_output_t *output;
>> color_t red_green_blue[] = {
>> @@ -469,7 +478,7 @@ static void test_pipe_legacy_gamma(data_t *data,
>> fb_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb);
>> igt_assert(fb_id);
>> @@ -477,7 +486,7 @@ static void test_pipe_legacy_gamma(data_t *data,
>> fb_modeset_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb_modeset);
>> igt_assert(fb_modeset_id);
>> @@ -676,7 +685,8 @@ static bool test_pipe_ctm(data_t *data,
>> igt_plane_t *primary,
>> color_t *before,
>> color_t *after,
>> - double *ctm_matrix)
>> + double *ctm_matrix,
>> + uint32_t fb_format)
>> {
>> const double ctm_identity[] = {
>> 1.0, 0.0, 0.0,
>> @@ -705,7 +715,7 @@ static bool test_pipe_ctm(data_t *data,
>> fb_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb);
>> igt_assert(fb_id);
>> @@ -713,7 +723,7 @@ static bool test_pipe_ctm(data_t *data,
>> fb_modeset_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb_modeset);
>> igt_assert(fb_modeset_id);
>> @@ -780,7 +790,8 @@ static bool test_pipe_ctm(data_t *data,
>> */
>> #if 0
>> static void test_pipe_limited_range_ctm(data_t *data,
>> - igt_plane_t *primary)
>> + igt_plane_t *primary,
>> + uint32_t fb_format)
>> {
>> double limited_result = 235.0 / 255.0;
>> color_t red_green_blue_limited[] = {
>> @@ -821,7 +832,7 @@ static void test_pipe_limited_range_ctm(data_t *data,
>> fb_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb);
>> igt_assert(fb_id);
>> @@ -829,7 +840,7 @@ static void test_pipe_limited_range_ctm(data_t *data,
>> fb_modeset_id = igt_create_fb(data->drm_fd,
>> mode->hdisplay,
>> mode->vdisplay,
>> - DRM_FORMAT_XRGB8888,
>> + fb_format,
>> LOCAL_DRM_FORMAT_MOD_NONE,
>> &fb_modeset);
>> igt_assert(fb_modeset_id);
>> @@ -878,13 +889,18 @@ run_tests_for_pipe(data_t *data, enum pipe p)
>> igt_pipe_t *pipe;
>> igt_plane_t *primary;
>> double delta;
>> - int i;
>> + int i, j;
>> color_t red_green_blue[] = {
>> { 1.0, 0.0, 0.0 },
>> { 0.0, 1.0, 0.0 },
>> { 0.0, 0.0, 1.0 }
>> };
>>
>> + fb_format_t fb_formats[] = {
>> + { DRM_FORMAT_XRGB8888, 8 , ""},
>> + { DRM_FORMAT_XRGB2101010, 10 , "-10bpc"}
>> + };
>> +
>> igt_fixture {
>> igt_require_pipe_crc(data->drm_fd);
>>
>> @@ -916,162 +932,189 @@ run_tests_for_pipe(data_t *data, enum pipe p)
>> igt_display_require_output_on_pipe(&data->display, p);
>> }
>>
>> - /* We assume an 8bits depth per color for degamma/gamma LUTs
>> - * for CRC checks with framebuffer references. */
>> - data->color_depth = 8;
>> - delta = 1.0 / (1 << data->color_depth);
>> -
>> - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) {
>> - color_t blue_green_blue[] = {
>> - { 0.0, 0.0, 1.0 },
>> - { 0.0, 1.0, 0.0 },
>> - { 0.0, 0.0, 1.0 }
>> - };
>> - double ctm[] = { 0.0, 0.0, 0.0,
>> - 0.0, 1.0, 0.0,
>> - 1.0, 0.0, 1.0 };
>> - igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> - blue_green_blue, ctm));
>> - }
>> + /* Iterate over fb formats to test */
>> + for (j = 0; j < ARRAY_SIZE(fb_formats); j++) {
>> +
>> + fb_format_t *fb_format = &fb_formats[j];
>> + data->color_depth = fb_format->bpc;
>> + delta = 1.0 / (1 << data->color_depth);
>> +
>> + igt_subtest_f("pipe-%s%s-ctm-red-to-blue", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t blue_green_blue[] = {
>> + { 0.0, 0.0, 1.0 },
>> + { 0.0, 1.0, 0.0 },
>> + { 0.0, 0.0, 1.0 }
>> + };
>> + double ctm[] = { 0.0, 0.0, 0.0,
>> + 0.0, 1.0, 0.0,
>> + 1.0, 0.0, 1.0 };
>> + igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> + blue_green_blue, ctm,
>> + fb_format->format));
>> + }
>>
>> - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) {
>> - color_t red_red_blue[] = {
>> - { 1.0, 0.0, 0.0 },
>> - { 1.0, 0.0, 0.0 },
>> - { 0.0, 0.0, 1.0 }
>> - };
>> - double ctm[] = { 1.0, 1.0, 0.0,
>> - 0.0, 0.0, 0.0,
>> - 0.0, 0.0, 1.0 };
>> - igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> - red_red_blue, ctm));
>> - }
>> + igt_subtest_f("pipe-%s%s-ctm-green-to-red",
>> + kmstest_pipe_name(p), fb_format->name) {
>> + color_t red_red_blue[] = {
>> + { 1.0, 0.0, 0.0 },
>> + { 1.0, 0.0, 0.0 },
>> + { 0.0, 0.0, 1.0 }
>> + };
>> + double ctm[] = { 1.0, 1.0, 0.0,
>> + 0.0, 0.0, 0.0,
>> + 0.0, 0.0, 1.0 };
>> + igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> + red_red_blue, ctm,
>> + fb_format->format));
>> + }
>>
>> - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) {
>> - color_t red_green_red[] = {
>> - { 1.0, 0.0, 0.0 },
>> - { 0.0, 1.0, 0.0 },
>> - { 1.0, 0.0, 0.0 }
>> - };
>> - double ctm[] = { 1.0, 0.0, 1.0,
>> - 0.0, 1.0, 0.0,
>> - 0.0, 0.0, 0.0 };
>> - igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> - red_green_red, ctm));
>> - }
>> + igt_subtest_f("pipe-%s%s-ctm-blue-to-red", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t red_green_red[] = {
>> + { 1.0, 0.0, 0.0 },
>> + { 0.0, 1.0, 0.0 },
>> + { 1.0, 0.0, 0.0 }
>> + };
>> + double ctm[] = { 1.0, 0.0, 1.0,
>> + 0.0, 1.0, 0.0,
>> + 0.0, 0.0, 0.0 };
>> + igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> + red_green_red, ctm,
>> + fb_format->format));
>> + }
>>
>> - /* We tests a few values around the expected result because
>> - * the it depends on the hardware we're dealing with, we can
>> - * either get clamped or rounded values and we also need to
>> - * account for odd number of items in the LUTs. */
>> - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) {
>> - color_t expected_colors[] = {
>> - { 0.0, }, { 0.0, }, { 0.0, }
>> - };
>> - double ctm[] = { 0.25, 0.0, 0.0,
>> - 0.0, 0.25, 0.0,
>> - 0.0, 0.0, 0.25 };
>> - bool success = false;
>> -
>> - for (i = 0; i < 5; i++) {
>> - expected_colors[0].r =
>> - expected_colors[1].g =
>> - expected_colors[2].b =
>> - 0.25 + delta * (i - 2);
>> - success |= test_pipe_ctm(data, primary,
>> - red_green_blue,
>> - expected_colors, ctm);
>> + /* We tests a few values around the expected result because
>> + * the it depends on the hardware we're dealing with, we can
>> + * either get clamped or rounded values and we also need to
>> + * account for odd number of items in the LUTs. */
>> + igt_subtest_f("pipe-%s%s-ctm-0-25", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t expected_colors[] = {
>> + { 0.0, }, { 0.0, }, { 0.0, }
>> + };
>> + double ctm[] = { 0.25, 0.0, 0.0,
>> + 0.0, 0.25, 0.0,
>> + 0.0, 0.0, 0.25 };
>> + bool success = false;
>> +
>> + for (i = 0; i < 5; i++) {
>> + expected_colors[0].r =
>> + expected_colors[1].g =
>> + expected_colors[2].b =
>> + 0.25 + delta * (i - 2);
>> + success |= test_pipe_ctm(data, primary,
>> + red_green_blue,
>> + expected_colors, ctm,
>> + fb_format->format);
>> + }
>> + igt_assert(success);
>> }
>> - igt_assert(success);
>> - }
>>
>> - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) {
>> - color_t expected_colors[] = {
>> - { 0.0, }, { 0.0, }, { 0.0, }
>> - };
>> - double ctm[] = { 0.5, 0.0, 0.0,
>> - 0.0, 0.5, 0.0,
>> - 0.0, 0.0, 0.5 };
>> - bool success = false;
>> -
>> - for (i = 0; i < 5; i++) {
>> - expected_colors[0].r =
>> - expected_colors[1].g =
>> - expected_colors[2].b =
>> - 0.5 + delta * (i - 2);
>> - success |= test_pipe_ctm(data, primary,
>> - red_green_blue,
>> - expected_colors, ctm);
>> + igt_subtest_f("pipe-%s%s-ctm-0-5", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t expected_colors[] = {
>> + { 0.0, }, { 0.0, }, { 0.0, }
>> + };
>> + double ctm[] = { 0.5, 0.0, 0.0,
>> + 0.0, 0.5, 0.0,
>> + 0.0, 0.0, 0.5 };
>> + bool success = false;
>> +
>> + for (i = 0; i < 5; i++) {
>> + expected_colors[0].r =
>> + expected_colors[1].g =
>> + expected_colors[2].b =
>> + 0.5 + delta * (i - 2);
>> + success |= test_pipe_ctm(data, primary,
>> + red_green_blue,
>> + expected_colors, ctm,
>> + fb_format->format);
>> + }
>> + igt_assert(success);
>> }
>> - igt_assert(success);
>> - }
>>
>> - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) {
>> - color_t expected_colors[] = {
>> - { 0.0, }, { 0.0, }, { 0.0, }
>> - };
>> - double ctm[] = { 0.75, 0.0, 0.0,
>> - 0.0, 0.75, 0.0,
>> - 0.0, 0.0, 0.75 };
>> - bool success = false;
>> -
>> - for (i = 0; i < 7; i++) {
>> - expected_colors[0].r =
>> - expected_colors[1].g =
>> - expected_colors[2].b =
>> - 0.75 + delta * (i - 3);
>> - success |= test_pipe_ctm(data, primary,
>> - red_green_blue,
>> - expected_colors, ctm);
>> + igt_subtest_f("pipe-%s%s-ctm-0-75", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t expected_colors[] = {
>> + { 0.0, }, { 0.0, }, { 0.0, }
>> + };
>> + double ctm[] = { 0.75, 0.0, 0.0,
>> + 0.0, 0.75, 0.0,
>> + 0.0, 0.0, 0.75 };
>> + bool success = false;
>> +
>> + for (i = 0; i < 7; i++) {
>> + expected_colors[0].r =
>> + expected_colors[1].g =
>> + expected_colors[2].b =
>> + 0.75 + delta * (i - 3);
>> + success |= test_pipe_ctm(data, primary,
>> + red_green_blue,
>> + expected_colors, ctm,
>> + fb_format->format);
>> + }
>> + igt_assert(success);
>> }
>> - igt_assert(success);
>> - }
>>
>> - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) {
>> - color_t full_rgb[] = {
>> - { 1.0, 0.0, 0.0 },
>> - { 0.0, 1.0, 0.0 },
>> - { 0.0, 0.0, 1.0 }
>> - };
>> - double ctm[] = { 100.0, 0.0, 0.0,
>> - 0.0, 100.0, 0.0,
>> - 0.0, 0.0, 100.0 };
>> -
>> - /* CherryView generates values on 10bits that we
>> - * produce with an 8 bits per color framebuffer. */
>> - igt_require(!IS_CHERRYVIEW(data->devid));
>> -
>> - igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> - full_rgb, ctm));
>> - }
>> + igt_subtest_f("pipe-%s%s-ctm-max", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t full_rgb[] = {
>> + { 1.0, 0.0, 0.0 },
>> + { 0.0, 1.0, 0.0 },
>> + { 0.0, 0.0, 1.0 }
>> + };
>> + double ctm[] = { 100.0, 0.0, 0.0,
>> + 0.0, 100.0, 0.0,
>> + 0.0, 0.0, 100.0 };
>> +
>> + /* CherryView generates values on 10bits that we
>> + * produce with an 8 bits per color framebuffer. */
>> + igt_require(!IS_CHERRYVIEW(data->devid));
>> +
>> + igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> + full_rgb, ctm,
>> + fb_format->format));
>> + }
>>
>> - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) {
>> - color_t all_black[] = {
>> - { 0.0, 0.0, 0.0 },
>> - { 0.0, 0.0, 0.0 },
>> - { 0.0, 0.0, 0.0 }
>> - };
>> - double ctm[] = { -1.0, 0.0, 0.0,
>> - 0.0, -1.0, 0.0,
>> - 0.0, 0.0, -1.0 };
>> - igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> - all_black, ctm));
>> - }
>> + igt_subtest_f("pipe-%s%s-ctm-negative", kmstest_pipe_name(p),
>> + fb_format->name) {
>> + color_t all_black[] = {
>> + { 0.0, 0.0, 0.0 },
>> + { 0.0, 0.0, 0.0 },
>> + { 0.0, 0.0, 0.0 }
>> + };
>> + double ctm[] = { -1.0, 0.0, 0.0,
>> + 0.0, -1.0, 0.0,
>> + 0.0, 0.0, -1.0 };
>> + igt_assert(test_pipe_ctm(data, primary, red_green_blue,
>> + all_black, ctm,
>> + fb_format->format));
>> + }
>>
>> #if 0
>> - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p))
>> - test_pipe_limited_range_ctm(data, primary);
>> + igt_subtest_f("pipe-%s-ctm-limited-range%s",
>> + kmstest_pipe_name(p), fb_format->name)
>> + test_pipe_limited_range_ctm(data, primary,
>> + fb_format->format);
>> #endif
>>
>> - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p))
>> - test_pipe_degamma(data, primary);
>> + igt_subtest_f("pipe-%s%s-degamma", kmstest_pipe_name(p),
>> + fb_format->name)
>> + test_pipe_degamma(data, primary, fb_format->format);
>>
>> - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p))
>> - test_pipe_gamma(data, primary);
>> + igt_subtest_f("pipe-%s%s-gamma", kmstest_pipe_name(p),
>> + fb_format->name)
>> + test_pipe_gamma(data, primary, fb_format->format);
>>
>> - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p))
>> - test_pipe_legacy_gamma(data, primary);
>> + igt_subtest_f("pipe-%s%s-legacy-gamma", kmstest_pipe_name(p),
>> + fb_format->name)
>> + test_pipe_legacy_gamma(data, primary,
>> + fb_format->format);
>>
>> + } // End of fb_formats iterator
>> +
>> + data->color_depth = 8;
>> igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p))
>> test_pipe_legacy_gamma_reset(data, primary);
>>
>> --
>> 2.24.0
>>
>> _______________________________________________
>> igt-dev mailing list
>> igt-dev@lists.freedesktop.org
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Figt-dev&data=02%7C01%7Csunpeng.li%40amd.com%7C6845b4a0d5234b72e7be08d77f146f66%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637117598052178406&sdata=0UanaNxDYRv0jGZHsgdfj0w%2BEBvejAAHAkXWarL3YXI%3D&reserved=0
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2019-12-12 20:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-11 20:46 [igt-dev] [PATCH i-g-t] tests/kms_color: Add 10bpc frame buffer parameterization to subtests sunpeng.li
2019-12-11 20:54 ` Kazlauskas, Nicholas
2019-12-11 21:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
2019-12-12 8:12 ` [igt-dev] ✗ GitLab.Pipeline: " Patchwork
2019-12-12 15:03 ` [igt-dev] [PATCH i-g-t] " Ville Syrjälä
2019-12-12 20:53 ` Leo [this message]
2019-12-12 21:13 ` Ville Syrjälä
2019-12-17 14:00 ` Leo
2020-01-02 22:59 ` Harry Wentland
2020-01-02 23:03 ` Harry Wentland
2020-01-08 14:44 ` Leo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cd5191d3-a041-5d7e-ba3a-69fb11aafa30@amd.com \
--to=sunpeng.li@amd.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.