intel/context: new execbuf interface for contexts
To support this we extract the common execbuf2 functionality to be called with, or without contexts. The context'd execbuf does not support some of the dri1 stuff. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>main
parent
b3b123dfb1
commit
3ed38714bd
|
@ -187,6 +187,11 @@ int drm_intel_get_aperture_sizes(int fd, size_t *mappable, size_t *total);
|
|||
int drm_intel_bufmgr_gem_get_devid(drm_intel_bufmgr *bufmgr);
|
||||
int drm_intel_gem_bo_wait(drm_intel_bo *bo, int64_t timeout_ns);
|
||||
|
||||
drm_intel_context *drm_intel_gem_context_create(drm_intel_bufmgr *bufmgr);
|
||||
void drm_intel_gem_context_destroy(drm_intel_context *ctx);
|
||||
int drm_intel_gem_bo_context_exec(drm_intel_bo *bo, drm_intel_context *ctx,
|
||||
int used, unsigned int flags);
|
||||
|
||||
/* drm_intel_bufmgr_fake.c */
|
||||
drm_intel_bufmgr *drm_intel_bufmgr_fake_init(int fd,
|
||||
unsigned long low_offset,
|
||||
|
|
|
@ -2187,7 +2187,7 @@ drm_intel_gem_bo_exec(drm_intel_bo *bo, int used,
|
|||
}
|
||||
|
||||
static int
|
||||
drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used,
|
||||
do_exec2(drm_intel_bo *bo, int used, drm_intel_context *ctx,
|
||||
drm_clip_rect_t *cliprects, int num_cliprects, int DR4,
|
||||
unsigned int flags)
|
||||
{
|
||||
|
@ -2231,7 +2231,10 @@ drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used,
|
|||
execbuf.DR1 = 0;
|
||||
execbuf.DR4 = DR4;
|
||||
execbuf.flags = flags;
|
||||
execbuf.rsvd1 = 0;
|
||||
if (ctx == NULL)
|
||||
i915_execbuffer2_set_context_id(execbuf, 0);
|
||||
else
|
||||
i915_execbuffer2_set_context_id(execbuf, ctx->ctx_id);
|
||||
execbuf.rsvd2 = 0;
|
||||
|
||||
aub_exec(bo, flags, used);
|
||||
|
@ -2279,11 +2282,26 @@ drm_intel_gem_bo_exec2(drm_intel_bo *bo, int used,
|
|||
drm_clip_rect_t *cliprects, int num_cliprects,
|
||||
int DR4)
|
||||
{
|
||||
return drm_intel_gem_bo_mrb_exec2(bo, used,
|
||||
cliprects, num_cliprects, DR4,
|
||||
return do_exec2(bo, used, NULL, cliprects, num_cliprects, DR4,
|
||||
I915_EXEC_RENDER);
|
||||
}
|
||||
|
||||
static int
|
||||
drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used,
|
||||
drm_clip_rect_t *cliprects, int num_cliprects, int DR4,
|
||||
unsigned int flags)
|
||||
{
|
||||
return do_exec2(bo, used, NULL, cliprects, num_cliprects, DR4,
|
||||
flags);
|
||||
}
|
||||
|
||||
int
|
||||
drm_intel_gem_bo_context_exec(drm_intel_bo *bo, drm_intel_context *ctx,
|
||||
int used, unsigned int flags)
|
||||
{
|
||||
return do_exec2(bo, used, ctx, NULL, 0, 0, flags);
|
||||
}
|
||||
|
||||
static int
|
||||
drm_intel_gem_bo_pin(drm_intel_bo *bo, uint32_t alignment)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue