[Intel-gfx] [PATCH] tests/kms_ccs: Fix the color/ccs surface generation

Daniel Stone daniel at fooishbar.org
Fri Aug 4 15:42:51 UTC 2017


On 4 August 2017 at 15:56, Jason Ekstrand <jason at jlekstrand.net> wrote:
> On August 4, 2017 2:59:56 AM Daniel Stone <daniel at fooishbar.org> wrote:
>>> +               width = ALIGN(f.width * 4, 32) / 32;
>>> +               height = ALIGN(f.height, 16) / 16;
>>> +               f.pitches[1] = ALIGN(width * 1, 128);
>>>                 f.modifier[1] = modifier;
>>>                 f.offsets[1] = size[0];
>>> -               size[1] = f.pitches[1] * ALIGN(height, 64);
>>> +               size[1] = f.pitches[1] * ALIGN(height, 32);
>>
>>
>> I changed this to f.height rather than height, because otherwise the
>> kernel was rejecting the aux buffer for being too small.
>
> Congratulations, you found a bug in the kernel branch you're running.  The
> downsized height is definitely what we want and it works fine with my kernel
> branch.

Great. Which kernel are you running then? I'm running from here:
https://git.collabora.com/cgit/user/daniels/linux.git/refs/heads

Currently we have hsub/vsub defined as 16/8 (Vidya inverted this, but
I never got a clear answer on why), tile_width as 128, and tile_height
comes out as 32. Given the calculations in intel_fill_fb_info, I come
out with the kernel demanding either 34816 bytes for CCS (using 16/8
hsub/vsub), or 20480 bytes (8/16) for a 1920x1080 framebuffer. Which
kernel do you have, and how are you coming out with that calculation?
Do we need to go back and re-figure out what pitch is?

FWIW, ISL seems to get it right, according to the kernel.

Cheers,
Daniel


More information about the Intel-gfx mailing list