[igt-dev] [PATCH i-g-t v2] tests/kms_prime: Create the exporting BO with smem placement
Dixit, Ashutosh
ashutosh.dixit at intel.com
Wed Sep 8 20:50:25 UTC 2021
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:
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