Returns a prime file descriptor for the specified region.

Signed-off-by: Keith Packard <kei...@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(+)

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
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to