OSDN Git Service

intel: libdrm support for fence management in execbuf
[android-x86/external-libdrm.git] / shared-core / i915_drm.h
index 976ff18..5456e91 100644 (file)
@@ -111,14 +111,25 @@ typedef struct drm_i915_sarea {
        unsigned int rotated_tiled;
        unsigned int rotated2_tiled;
 
-       int planeA_x;
-       int planeA_y;
-       int planeA_w;
-       int planeA_h;
-       int planeB_x;
-       int planeB_y;
-       int planeB_w;
-       int planeB_h;
+       /* compat defines for the period of time when pipeA_* got renamed
+        * to planeA_*.  They mean pipe, really.
+        */
+#define planeA_x pipeA_x
+#define planeA_y pipeA_y
+#define planeA_w pipeA_w
+#define planeA_h pipeA_h
+#define planeB_x pipeB_x
+#define planeB_y pipeB_y
+#define planeB_w pipeB_w
+#define planeB_h pipeB_h
+       int pipeA_x;
+       int pipeA_y;
+       int pipeA_w;
+       int pipeA_h;
+       int pipeB_x;
+       int pipeB_y;
+       int pipeB_w;
+       int pipeB_h;
 
        /* Triple buffering */
        drm_handle_t third_handle;
@@ -285,6 +296,7 @@ typedef struct drm_i915_irq_wait {
 #define I915_PARAM_LAST_DISPATCH         3
 #define I915_PARAM_CHIPSET_ID            4
 #define I915_PARAM_HAS_GEM               5
+#define I915_PARAM_NUM_FENCES_AVAIL      6
 
 typedef struct drm_i915_getparam {
        int param;
@@ -296,6 +308,7 @@ typedef struct drm_i915_getparam {
 #define I915_SETPARAM_USE_MI_BATCHBUFFER_START            1
 #define I915_SETPARAM_TEX_LRU_LOG_GRANULARITY             2
 #define I915_SETPARAM_ALLOW_BATCHBUFFER                   3
+#define I915_SETPARAM_NUM_USED_FENCES                     4
 
 typedef struct drm_i915_setparam {
        int param;
@@ -469,8 +482,12 @@ struct drm_i915_gem_pread {
        uint64_t offset;
        /** Length of data to read */
        uint64_t size;
-       /** Pointer to write the data into. */
-       uint64_t data_ptr;      /* void *, but pointers are not 32/64 compatible */
+       /**
+        * Pointer to write the data into.
+        *
+        * This is a fixed-size type for 32/64 compatibility.
+        */
+       uint64_t data_ptr;
 };
 
 struct drm_i915_gem_pwrite {
@@ -481,8 +498,12 @@ struct drm_i915_gem_pwrite {
        uint64_t offset;
        /** Length of data to write */
        uint64_t size;
-       /** Pointer to read the data from. */
-       uint64_t data_ptr;      /* void *, but pointers are not 32/64 compatible */
+       /**
+        * Pointer to read the data from.
+        *
+        * This is a fixed-size type for 32/64 compatibility.
+        */
+       uint64_t data_ptr;
 };
 
 struct drm_i915_gem_mmap {
@@ -497,8 +518,12 @@ struct drm_i915_gem_mmap {
         * The value will be page-aligned.
         */
        uint64_t size;
-       /** Returned pointer the data was mapped at */
-       uint64_t addr_ptr;      /* void *, but pointers are not 32/64 compatible */
+       /**
+        * Returned pointer the data was mapped at.
+        *
+        * This is a fixed-size type for 32/64 compatibility.
+        */
+       uint64_t addr_ptr;
 };
 
 struct drm_i915_gem_mmap_gtt {
@@ -643,7 +668,8 @@ struct drm_i915_gem_execbuffer {
        uint32_t DR1;
        uint32_t DR4;
        uint32_t num_cliprects;
-       uint64_t cliprects_ptr; /* struct drm_clip_rect *cliprects */
+       /** This is a struct drm_clip_rect *cliprects */
+       uint64_t cliprects_ptr;
 };
 
 struct drm_i915_gem_pin {