Message ID | 1424366285-29232-44-git-send-email-John.C.Harrison@Intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 19/02/2015 17:17, John.C.Harrison@Intel.com wrote: > From: John Harrison <John.C.Harrison@Intel.com> > > Updated the ring->emit_bb_start() implementation to take a request instead of a > ringbuf/context pair. > > For: VIZ-5115 > Signed-off-by: John Harrison <John.C.Harrison@Intel.com> > --- > drivers/gpu/drm/i915/intel_lrc.c | 12 +++++------- > drivers/gpu/drm/i915/intel_ringbuffer.h | 3 +-- > 2 files changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > index f4661ec..5212b54 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -704,7 +704,7 @@ int intel_execlists_submission(struct i915_execbuffer_params *params, > exec_start = params->batch_obj_vm_offset + > args->batch_start_offset; > > - ret = ring->emit_bb_start(ringbuf, params->ctx, exec_start, params->dispatch_flags); > + ret = ring->emit_bb_start(params->request, exec_start, params->dispatch_flags); > if (ret) > return ret; > > @@ -1166,14 +1166,14 @@ static int gen9_init_render_ring(struct intel_engine_cs *ring) > return init_workarounds_ring(ring); > } > > -static int gen8_emit_bb_start(struct intel_ringbuffer *ringbuf, > - struct intel_context *ctx, > +static int gen8_emit_bb_start(struct drm_i915_gem_request *req, > u64 offset, unsigned dispatch_flags) > { > + struct intel_ringbuffer *ringbuf = req->ringbuf; > bool ppgtt = !(dispatch_flags & I915_DISPATCH_SECURE); > int ret; > > - ret = intel_logical_ring_begin(ringbuf, ctx, 4); > + ret = intel_logical_ring_begin(ringbuf, req->ctx, 4); > if (ret) > return ret; > > @@ -1353,9 +1353,7 @@ static int intel_lr_context_render_state_init(struct drm_i915_gem_request *req) > if (so.rodata == NULL) > return 0; > > - ret = req->ring->emit_bb_start(req->ringbuf, > - req->ctx, > - so.ggtt_offset, > + ret = req->ring->emit_bb_start(req, so.ggtt_offset, > I915_DISPATCH_SECURE); > if (ret) > goto out; > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h > index 0b03b3a..1ff0ad1 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.h > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h > @@ -237,8 +237,7 @@ struct intel_engine_cs { > int (*emit_flush)(struct drm_i915_gem_request *request, > u32 invalidate_domains, > u32 flush_domains); > - int (*emit_bb_start)(struct intel_ringbuffer *ringbuf, > - struct intel_context *ctx, > + int (*emit_bb_start)(struct drm_i915_gem_request *req, > u64 offset, unsigned dispatch_flags); > > /** > Reviewed-by: Tomas Elf <tomas.elf@intel.com> Thanks, Tomas
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index f4661ec..5212b54 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -704,7 +704,7 @@ int intel_execlists_submission(struct i915_execbuffer_params *params, exec_start = params->batch_obj_vm_offset + args->batch_start_offset; - ret = ring->emit_bb_start(ringbuf, params->ctx, exec_start, params->dispatch_flags); + ret = ring->emit_bb_start(params->request, exec_start, params->dispatch_flags); if (ret) return ret; @@ -1166,14 +1166,14 @@ static int gen9_init_render_ring(struct intel_engine_cs *ring) return init_workarounds_ring(ring); } -static int gen8_emit_bb_start(struct intel_ringbuffer *ringbuf, - struct intel_context *ctx, +static int gen8_emit_bb_start(struct drm_i915_gem_request *req, u64 offset, unsigned dispatch_flags) { + struct intel_ringbuffer *ringbuf = req->ringbuf; bool ppgtt = !(dispatch_flags & I915_DISPATCH_SECURE); int ret; - ret = intel_logical_ring_begin(ringbuf, ctx, 4); + ret = intel_logical_ring_begin(ringbuf, req->ctx, 4); if (ret) return ret; @@ -1353,9 +1353,7 @@ static int intel_lr_context_render_state_init(struct drm_i915_gem_request *req) if (so.rodata == NULL) return 0; - ret = req->ring->emit_bb_start(req->ringbuf, - req->ctx, - so.ggtt_offset, + ret = req->ring->emit_bb_start(req, so.ggtt_offset, I915_DISPATCH_SECURE); if (ret) goto out; diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index 0b03b3a..1ff0ad1 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -237,8 +237,7 @@ struct intel_engine_cs { int (*emit_flush)(struct drm_i915_gem_request *request, u32 invalidate_domains, u32 flush_domains); - int (*emit_bb_start)(struct intel_ringbuffer *ringbuf, - struct intel_context *ctx, + int (*emit_bb_start)(struct drm_i915_gem_request *req, u64 offset, unsigned dispatch_flags); /**