[Intel-gfx] [PATCH v2 5/7] tests/kms_draw_crc: add support for Y tiling
Praveen Paneri
praveen.paneri at intel.com
Wed Jul 12 08:15:18 UTC 2017
Hi Paulo,
On Wednesday 12 July 2017 12:33 AM, Paulo Zanoni wrote:
> Em Sex, 2017-04-28 às 20:07 +0530, Praveen Paneri escreveu:
>> From: Paulo Zanoni <paulo.r.zanoni at intel.com>
>>
>> This is the program that's supposed to test lib/igt_draw. We just
>> added Y tiling support for the library, so add the tests now.
>>
>
> This is not my original version of the patch, yet there's no changelog
> mentioning that this is a new version.
>
> https://patchwork.freedesktop.org/patch/72040/
>
> Why were the kmstest_unset_all_crtcs() calls added? My guess is that
> they ended up here as a rebase artifact, but please clarify if there's
> an actual reason.
Yes this is a rebase artifact and is not actually required. I will fix it.
Thanks,
Praveen
>
>
>> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
>> Signed-off-by: Praveen Paneri <praveen.paneri at intel.com>
>> ---
>> tests/kms_draw_crc.c | 58 ++++++++++++++++++++++++++++++++++++++--
>> ------------
>> 1 file changed, 43 insertions(+), 15 deletions(-)
>>
>> diff --git a/tests/kms_draw_crc.c b/tests/kms_draw_crc.c
>> index c57d3a3..1d91b48 100644
>> --- a/tests/kms_draw_crc.c
>> +++ b/tests/kms_draw_crc.c
>> @@ -47,6 +47,13 @@ static const uint32_t formats[N_FORMATS] = {
>> DRM_FORMAT_XRGB2101010,
>> };
>>
>> +#define N_TILING_METHODS 3
>> +static const uint64_t tilings[N_TILING_METHODS] = {
>> + LOCAL_DRM_FORMAT_MOD_NONE,
>> + LOCAL_I915_FORMAT_MOD_X_TILED,
>> + LOCAL_I915_FORMAT_MOD_Y_TILED,
>> +};
>> +
>> struct base_crc {
>> bool set;
>> igt_crc_t crc;
>> @@ -151,6 +158,11 @@ static void draw_method_subtest(enum
>> igt_draw_method method,
>> {
>> igt_crc_t crc;
>>
>> + if (tiling == LOCAL_I915_FORMAT_MOD_Y_TILED)
>> + igt_require(intel_gen(intel_get_drm_devid(drm_fd))
>>> = 9);
>> +
>> + kmstest_unset_all_crtcs(drm_fd, drm_res);
>> +
>> /* Use IGT_DRAW_MMAP_GTT on an untiled buffer as the
>> parameter for
>> * comparison. Cache the value so we don't recompute it for
>> every single
>> * subtest. */
>> @@ -208,6 +220,12 @@ static void fill_fb_subtest(void)
>> get_fill_crc(LOCAL_I915_FORMAT_MOD_X_TILED, &crc);
>> igt_assert_crc_equal(&crc, &base_crc);
>>
>> + if (intel_gen(intel_get_drm_devid(drm_fd)) >= 9) {
>> + get_fill_crc(LOCAL_I915_FORMAT_MOD_Y_TILED, &crc);
>> + igt_assert_crc_equal(&crc, &base_crc);
>> + }
>> +
>> + kmstest_unset_all_crtcs(drm_fd, drm_res);
>> igt_remove_fb(drm_fd, &fb);
>> }
>>
>> @@ -265,28 +283,38 @@ static const char *format_str(int format_index)
>> }
>> }
>>
>> +static const char *tiling_str(int tiling_index)
>> +{
>> + switch (tilings[tiling_index]) {
>> + case LOCAL_DRM_FORMAT_MOD_NONE:
>> + return "untiled";
>> + case LOCAL_I915_FORMAT_MOD_X_TILED:
>> + return "xtiled";
>> + case LOCAL_I915_FORMAT_MOD_Y_TILED:
>> + return "ytiled";
>> + default:
>> + igt_assert(false);
>> + }
>> +}
>> +
>> igt_main
>> {
>> enum igt_draw_method method;
>> - int format_index;
>> + int format_idx, tiling_idx;
>>
>> igt_fixture
>> setup_environment();
>>
>> - for (format_index = 0; format_index < N_FORMATS;
>> format_index++) {
>> - for (method = 0; method < IGT_DRAW_METHOD_COUNT;
>> method++) {
>> - igt_subtest_f("draw-method-%s-%s-untiled",
>> - format_str(format_index),
>> - igt_draw_get_method_name(metho
>> d))
>> - draw_method_subtest(method,
>> format_index,
>> - LOCAL_DRM_FORMAT
>> _MOD_NONE);
>> - igt_subtest_f("draw-method-%s-%s-tiled",
>> - format_str(format_index),
>> - igt_draw_get_method_name(metho
>> d))
>> - draw_method_subtest(method,
>> format_index,
>> - LOCAL_I915_FORMAT_MO
>> D_X_TILED);
>> - }
>> - }
>> + for (format_idx = 0; format_idx < N_FORMATS; format_idx++) {
>> + for (method = 0; method < IGT_DRAW_METHOD_COUNT; method++) {
>> + for (tiling_idx = 0; tiling_idx < N_TILING_METHODS;
>> tiling_idx++) {
>> + igt_subtest_f("draw-method-%s-%s-%s",
>> + format_str(format_idx),
>> + igt_draw_get_method_name(method),
>> + tiling_str(tiling_idx))
>> + draw_method_subtest(method, format_idx,
>> + tilings[tiling_idx]);
>> + } } }
>>
>> igt_subtest("fill-fb")
>> fill_fb_subtest();
More information about the Intel-gfx
mailing list