[igt-dev] [PATCH i-g-t v2] tests/kms_prime: Create the exporting BO with smem placement
Ruhl, Michael J
michael.j.ruhl at intel.com
Wed Sep 8 20:59:08 UTC 2021
>-----Original Message-----
>From: Dixit, Ashutosh <ashutosh.dixit at intel.com>
>Sent: Wednesday, September 8, 2021 4:50 PM
>To: C, Ramalingam <ramalingam.c at intel.com>
>Cc: igt-dev <igt-dev at lists.freedesktop.org>; Wilson, Chris P
><chris.p.wilson at intel.com>; Ruhl, Michael J <michael.j.ruhl at intel.com>
>Subject: Re: [PATCH i-g-t v2] tests/kms_prime: Create the exporting BO with
>smem placement
>
>On Wed, 08 Sep 2021 03:41:37 -0700, Ramalingam C wrote:
>>
>> On i915, to avail the dmabuf, the sharing object needs to migratable
>> into smem. So if the shared object is lmem, then it needs to have the
>> smem as second placement option.
>>
>> Currently kms_prime sharing the dumb buffer between the devices.
>> But dumb buffer can't have the placements and resides at lmem for the
>> dgfx. Hence to meet the i915 expectation for dgfx, we create the BO
>> using the gem_create with smem as second placement option.
>
>Maybe someone else should also take a look at the premise and the patch but
>it looks ok to me overall so:
This looks reasonable to me as well.
Reviewed-by: Michael J. Ruhl <michael.j.ruhl at intel.com>
M
>Reviewed-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
>
>> v2: Used gem_mmap__device_coherent for mmaped ptr (Ashutosh)
>>
>> Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
>> ---
>> tests/kms_prime.c | 23 +++++++++++------------
>> 1 file changed, 11 insertions(+), 12 deletions(-)
>>
>> diff --git a/tests/kms_prime.c b/tests/kms_prime.c
>> index 2e20c58bc16e..ccbb2feadd29 100644
>> --- a/tests/kms_prime.c
>> +++ b/tests/kms_prime.c
>> @@ -100,18 +100,17 @@ static void prepare_scratch(int exporter_fd, struct
>dumb_bo *scratch,
>> scratch->height = mode->vdisplay;
>> scratch->bpp = 32;
>>
>> - scratch->handle = kmstest_dumb_create(exporter_fd,
>> - ALIGN(scratch->width, 256),
>> - scratch->height,
>> - scratch->bpp,
>> - &scratch->pitch,
>> - &scratch->size);
>> -
>> -
>> - ptr = kmstest_dumb_map_buffer(exporter_fd,
>> - scratch->handle,
>> - scratch->size,
>> - PROT_WRITE);
>> + igt_calc_fb_size(exporter_fd, mode->hdisplay, mode->vdisplay,
>DRM_FORMAT_XRGB8888,
>> + DRM_FORMAT_MOD_NONE, &scratch->size,
>&scratch->pitch);
>> + if (gem_has_lmem(exporter_fd))
>> + scratch->handle =
>gem_create_in_memory_regions(exporter_fd, scratch->size,
>> + REGION_LMEM(0),
>REGION_SMEM);
>> + else
>> + scratch->handle =
>gem_create_in_memory_regions(exporter_fd, scratch->size,
>> + REGION_SMEM);
>> +
>> + ptr = gem_mmap__device_coherent(exporter_fd, scratch->handle,
>0, scratch->size,
>> + PROT_WRITE | PROT_READ);
>>
>> for (size_t idx = 0; idx < scratch->size / sizeof(*ptr); ++idx)
>> ptr[idx] = color;
>> --
>> 2.20.1
>>
More information about the igt-dev
mailing list