]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/libdrm.git/blobdiff - intel/intel_bufmgr_priv.h
intel/context: Add drm_intel_context type
[glsdk/libdrm.git] / intel / intel_bufmgr_priv.h
index febee0f7267267f441a1285ef2cbf08a131f1129..2592d42d5b3f9f42d30209a2a0f0706164aa6ba7 100644 (file)
@@ -162,12 +162,24 @@ struct _drm_intel_bufmgr {
        int (*bo_emit_reloc) (drm_intel_bo *bo, uint32_t offset,
                              drm_intel_bo *target_bo, uint32_t target_offset,
                              uint32_t read_domains, uint32_t write_domain);
+       int (*bo_emit_reloc_fence)(drm_intel_bo *bo, uint32_t offset,
+                                  drm_intel_bo *target_bo,
+                                  uint32_t target_offset,
+                                  uint32_t read_domains,
+                                  uint32_t write_domain);
 
        /** Executes the command buffer pointed to by bo. */
        int (*bo_exec) (drm_intel_bo *bo, int used,
                        drm_clip_rect_t *cliprects, int num_cliprects,
                        int DR4);
 
+       /** Executes the command buffer pointed to by bo on the selected
+        * ring buffer
+        */
+       int (*bo_mrb_exec) (drm_intel_bo *bo, int used,
+                           drm_clip_rect_t *cliprects, int num_cliprects,
+                           int DR4, unsigned flags);
+
        /**
         * Pin a buffer to the aperture and fix the offset until unpinned
         *
@@ -241,6 +253,13 @@ struct _drm_intel_bufmgr {
         */
        int (*bo_disable_reuse) (drm_intel_bo *bo);
 
+       /**
+        * Query whether a buffer is reusable.
+        *
+        * \param bo Buffer to query
+        */
+       int (*bo_is_reusable) (drm_intel_bo *bo);
+
        /**
         *
         * Return the pipe associated with a crtc_id so that vblank
@@ -261,6 +280,11 @@ struct _drm_intel_bufmgr {
        int debug;
 };
 
+struct _drm_intel_context {
+       unsigned int ctx_id;
+       struct _drm_intel_bufmgr *bufmgr;
+};
+
 #define ALIGN(value, alignment)        ((value + alignment - 1) & ~(alignment - 1))
 #define ROUND_UP_TO(x, y)      (((x) + (y) - 1) / (y) * (y))
 #define ROUND_UP_TO_MB(x)      ROUND_UP_TO((x), 1024*1024)