summaryrefslogtreecommitdiff
path: root/intel/intel_bufmgr.c
diff options
context:
space:
mode:
Diffstat (limited to 'intel/intel_bufmgr.c')
-rw-r--r--intel/intel_bufmgr.c43
1 files changed, 40 insertions, 3 deletions
diff --git a/intel/intel_bufmgr.c b/intel/intel_bufmgr.c
index a285340039fe..93c580fe2266 100644
--- a/intel/intel_bufmgr.c
+++ b/intel/intel_bufmgr.c
@@ -153,7 +153,19 @@ int
drm_intel_bo_exec(drm_intel_bo *bo, int used,
drm_clip_rect_t * cliprects, int num_cliprects, int DR4)
{
- return bo->bufmgr->bo_exec(bo, used, cliprects, num_cliprects, DR4);
+ return bo->bufmgr->bo_exec(bo, used, cliprects, num_cliprects, DR4, -1, NULL);
+}
+
+int
+drm_intel_bo_fence_exec(drm_intel_bo *bo, int used,
+ drm_clip_rect_t * cliprects, int num_cliprects, int DR4,
+ int fence_in, int* fence_out)
+{
+ if (fence_out)
+ *fence_out = -1;
+
+ return bo->bufmgr->bo_exec(bo, used, cliprects, num_cliprects, DR4,
+ fence_in, fence_out);
}
int
@@ -164,13 +176,38 @@ drm_intel_bo_mrb_exec(drm_intel_bo *bo, int used,
if (bo->bufmgr->bo_mrb_exec)
return bo->bufmgr->bo_mrb_exec(bo, used,
cliprects, num_cliprects, DR4,
- rings);
+ rings, -1, NULL);
+
+ switch (rings) {
+ case I915_EXEC_DEFAULT:
+ case I915_EXEC_RENDER:
+ return bo->bufmgr->bo_exec(bo, used,
+ cliprects, num_cliprects, DR4,
+ -1, NULL);
+ default:
+ return -ENODEV;
+ }
+}
+
+int
+drm_intel_bo_mrb_fence_exec(drm_intel_bo *bo, int used,
+ drm_clip_rect_t *cliprects, int num_cliprects, int DR4,
+ unsigned int rings, int fence_in, int* fence_out)
+{
+ if (fence_out)
+ *fence_out = -1;
+
+ if (bo->bufmgr->bo_mrb_exec)
+ return bo->bufmgr->bo_mrb_exec(bo, used,
+ cliprects, num_cliprects, DR4,
+ rings, fence_in, fence_out);
switch (rings) {
case I915_EXEC_DEFAULT:
case I915_EXEC_RENDER:
return bo->bufmgr->bo_exec(bo, used,
- cliprects, num_cliprects, DR4);
+ cliprects, num_cliprects, DR4,
+ fence_in, fence_out);
default:
return -ENODEV;
}