[igt-dev] [PATCH i-g-t v3 18/22] tests/prime_udl: Remove libdrm dependency

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Sep 28 04:05:23 UTC 2020


On Fri, Sep 18, 2020 at 12:58:52PM +0200, Dominik Grzegorzek wrote:
> Use intel_bb / intel_buf to remove libdrm dependency.
> 
> Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  tests/prime_udl.c | 44 ++++++++++++++++++++------------------------
>  1 file changed, 20 insertions(+), 24 deletions(-)
> 
> diff --git a/tests/prime_udl.c b/tests/prime_udl.c
> index 9b600659..b2e94160 100644
> --- a/tests/prime_udl.c
> +++ b/tests/prime_udl.c
> @@ -27,14 +27,13 @@
>  #include "xf86drm.h"
>  #include <xf86drmMode.h>
>  
> -#include "intel_bufmgr.h"
> -
>  int intel_fd = -1, udl_fd = -1;
> -drm_intel_bufmgr *bufmgr;
> -uint32_t devid;
> -struct intel_batchbuffer *intel_batch;
> +struct buf_ops *bops;
> +
> +#define WIDTH 640
> +#define HEIGHT 480
> +#define BO_SIZE (WIDTH*HEIGHT*2)
>  
> -#define BO_SIZE (640*480*2)
>  
>  static int find_and_open_devices(void)
>  {
> @@ -94,34 +93,38 @@ static int dumb_bo_destroy(int fd, uint32_t handle)
>   */
>  static int test1(void)
>  {
> -	drm_intel_bo *test_intel_bo;
> +	struct intel_buf *test_intel_buf;
>  	int prime_fd;
>  	int ret;
>  	uint32_t udl_handle;
>  
> -	test_intel_bo = drm_intel_bo_alloc(bufmgr, "test bo", BO_SIZE, 4096);
> +	test_intel_buf = intel_buf_create(bops, WIDTH, HEIGHT, 16, 4096,
> +					  I915_TILING_NONE,
> +					  I915_COMPRESSION_NONE);
>

Use 0 instead 4096 to avoid overallocate. 

  
> -	drm_intel_bo_gem_export_to_prime(test_intel_bo, &prime_fd);
> +	prime_fd = prime_handle_to_fd(intel_fd, test_intel_buf->handle);

Check prime_handle_to_fd_for_mmap().

>  
>  	ret = drmPrimeFDToHandle(udl_fd, prime_fd, &udl_handle);

You're mixing no-drm and drm calls. In the future I guess we need 
to export lmem too so likely no-drm way is appropriate one.

>  
>  	dumb_bo_destroy(udl_fd, udl_handle);
> -	drm_intel_bo_unreference(test_intel_bo);
> +	intel_buf_destroy(test_intel_buf);
>  	return ret;
>  }
>  
>  static int test2(void)
>  {
> -	drm_intel_bo *test_intel_bo;
> +	struct intel_buf *test_intel_buf;
>  	uint32_t fb_id;
>  	drmModeClip clip;
>  	int prime_fd;
>  	uint32_t udl_handle;
>  	int ret;
>  
> -	test_intel_bo = drm_intel_bo_alloc(bufmgr, "test bo", BO_SIZE, 4096);
> +	test_intel_buf = intel_buf_create(bops, WIDTH, HEIGHT, 16, 4096,
> +					  I915_TILING_NONE,
> +					  I915_COMPRESSION_NONE);
>  
> -	drm_intel_bo_gem_export_to_prime(test_intel_bo, &prime_fd);
> +	prime_fd = prime_handle_to_fd(intel_fd, test_intel_buf->handle);

Same as above.

--
Zbigniew

>  
>  	ret = drmPrimeFDToHandle(udl_fd, prime_fd, &udl_handle);
>  	if (ret)
> @@ -141,7 +144,7 @@ static int test2(void)
>  	}
>  out:
>  	dumb_bo_destroy(udl_fd, udl_handle);
> -	drm_intel_bo_unreference(test_intel_bo);
> +	intel_buf_destroy(test_intel_buf);
>  	return ret;
>  }
>  
> @@ -152,22 +155,15 @@ igt_simple_main
>  	igt_skip_on(udl_fd == -1);
>  	igt_skip_on(intel_fd == -1);
>  
> -	/* set up intel bufmgr */
> -	bufmgr = drm_intel_bufmgr_gem_init(intel_fd, 4096);
> -	drm_intel_bufmgr_gem_enable_reuse(bufmgr);
> -
> -	/* set up an intel batch buffer */
> -	devid = intel_get_drm_devid(intel_fd);
> -	intel_batch = intel_batchbuffer_alloc(bufmgr, devid);
> +	/* set up intel buf ops */
> +	bops = buf_ops_create(intel_fd);
>  
>  	/* create an object on the i915 */
>  	igt_assert(test1() == 0);
>  
>  	igt_assert(test2() == 0);
>  
> -	intel_batchbuffer_free(intel_batch);
> -
> -	drm_intel_bufmgr_destroy(bufmgr);
> +	buf_ops_destroy(bops);
>  
>  	close(intel_fd);
>  	close(udl_fd);
> -- 
> 2.20.1
> 


More information about the igt-dev mailing list