diff options
Diffstat (limited to 'intel/intel_bufmgr.c')
-rw-r--r-- | intel/intel_bufmgr.c | 43 |
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; } |