[Intel-gfx] [PATCH v2 5/7] tests/kms_draw_crc: add support for Y tiling
Praveen Paneri
praveen.paneri at intel.com
Fri Jul 14 14:00:30 UTC 2017
On Friday 14 July 2017 01:49 AM, Paulo Zanoni wrote:
> Em Qua, 2017-07-12 às 13:45 +0530, Praveen Paneri escreveu:
>> 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.
>
> Or you can just give a reviewed-by tag to my original patch :).
Sure! I will add that in the next series :)
>
>>
>> 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(m
>>>> etho
>>>> d))
>>>> - draw_method_subtest(method,
>>>> format_index,
>>>> - LOCAL_DRM_FO
>>>> RMAT
>>>> _MOD_NONE);
>>>> - igt_subtest_f("draw-method-%s-%s-tiled",
>>>> - format_str(format_index),
>>>> - igt_draw_get_method_name(m
>>>> etho
>>>> d))
>>>> - draw_method_subtest(method,
>>>> format_index,
>>>> - LOCAL_I915_FORMA
>>>> T_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