summaryrefslogtreecommitdiff
path: root/intel/intel_bufmgr.c
diff options
context:
space:
mode:
authorJohn Harrison <John.C.Harrison@Intel.com>2015-07-14 14:52:59 +0100
committerJohn Harrison <John.C.Harrison@Intel.com>2016-06-28 17:37:22 +0100
commitf11b2d577904b1a096d5b36384a9cc83ba51cbb8 (patch)
tree8752fad162333bd123e0daf1bc2884522fd2321a /intel/intel_bufmgr.c
parent74cde450280e4cfd5fcbdef32b9af1c14f26ea31 (diff)
drm/i915: Native syncLibDRM
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;
}