Message ID | 1383261196-25093-5-git-send-email-keithp@keithp.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
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@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@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@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/dri-devel > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel
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);
Returns a prime file descriptor for the specified region. Signed-off-by: Keith Packard <keithp@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(+)