[PATCH 4/6] dri/intel: Add intel_fd_for_region

Kristian Høgsberg hoegsberg at gmail.com
Fri Nov 1 18:58:02 CET 2013


On Thu, Oct 31, 2013 at 04:13:14PM -0700, Keith Packard wrote:
> Returns a prime file descriptor for the specified region.
> 
> Signed-off-by: Keith Packard <keithp at keithp.com>
> ---
>  src/mesa/drivers/dri/i915/intel_regions.c | 13 +++++++++++++
>  src/mesa/drivers/dri/i915/intel_regions.h |  4 ++++
>  src/mesa/drivers/dri/i965/intel_regions.c | 13 +++++++++++++
>  src/mesa/drivers/dri/i965/intel_regions.h |  4 ++++
>  4 files changed, 34 insertions(+)

Makes sense.  We should use that in intel_query_image() instead of
calling drm_intel_bo_gem_export_to_prime() directly on
image->region->bo.

Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>

> diff --git a/src/mesa/drivers/dri/i915/intel_regions.c b/src/mesa/drivers/dri/i915/intel_regions.c
> index 9f5b89e..bac997d 100644
> --- a/src/mesa/drivers/dri/i915/intel_regions.c
> +++ b/src/mesa/drivers/dri/i915/intel_regions.c
> @@ -238,6 +238,19 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
>     return region;
>  }
>  
> +int
> +intel_fd_for_region(struct intel_screen *screen,
> +                    struct intel_region *region)
> +{
> +   int  fd;
> +   int  ret;
> +
> +   ret = drm_intel_bo_gem_export_to_prime(region->bo, &fd);
> +   if (ret < 0)
> +      return ret;
> +   return fd;
> +}
> +
>  void
>  intel_region_reference(struct intel_region **dst, struct intel_region *src)
>  {
> diff --git a/src/mesa/drivers/dri/i915/intel_regions.h b/src/mesa/drivers/dri/i915/intel_regions.h
> index 6bc4a42..84c013a 100644
> --- a/src/mesa/drivers/dri/i915/intel_regions.h
> +++ b/src/mesa/drivers/dri/i915/intel_regions.h
> @@ -93,6 +93,10 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
>                            GLuint width, GLuint height, GLuint pitch,
>                            GLuint size, int fd, const char *name);
>  
> +int
> +intel_fd_for_region(struct intel_screen *screen,
> +                    struct intel_region *region);
> +
>  bool
>  intel_region_flink(struct intel_region *region, uint32_t *name);
>  
> diff --git a/src/mesa/drivers/dri/i965/intel_regions.c b/src/mesa/drivers/dri/i965/intel_regions.c
> index 3920f4f..2e70326 100644
> --- a/src/mesa/drivers/dri/i965/intel_regions.c
> +++ b/src/mesa/drivers/dri/i965/intel_regions.c
> @@ -238,6 +238,19 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
>     return region;
>  }
>  
> +int
> +intel_fd_for_region(struct intel_screen *screen,
> +                    struct intel_region *region)
> +{
> +   int  fd;
> +   int  ret;
> +
> +   ret = drm_intel_bo_gem_export_to_prime(region->bo, &fd);
> +   if (ret < 0)
> +      return ret;
> +   return fd;
> +}
> +
>  void
>  intel_region_reference(struct intel_region **dst, struct intel_region *src)
>  {
> diff --git a/src/mesa/drivers/dri/i965/intel_regions.h b/src/mesa/drivers/dri/i965/intel_regions.h
> index 05dfef3..f471b94 100644
> --- a/src/mesa/drivers/dri/i965/intel_regions.h
> +++ b/src/mesa/drivers/dri/i965/intel_regions.h
> @@ -95,6 +95,10 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
>                            GLuint size,
>                            int fd, const char *name);
>  
> +int
> +intel_fd_for_region(struct intel_screen *screen,
> +                    struct intel_region *region);
> +
>  bool
>  intel_region_flink(struct intel_region *region, uint32_t *name);
>  
> -- 
> 1.8.4.2
> 
> 
> ------------------------------------------------------------------------------
> Android is increasing in popularity, but the open development platform that
> developers love is also attractive to malware creators. Download this white
> paper to learn more about secure code signing practices that can help keep
> Android apps secure.
> http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list