Message ID | 1424366285-29232-27-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 two render_state_init() functions to take a request pointer instead > of a ring. This removes their reliance on the OLR. > > v2: Rebased to newer tree. > > For: VIZ-5115 > Signed-off-by: John Harrison <John.C.Harrison@Intel.com> > --- > drivers/gpu/drm/i915/i915_gem_render_state.c | 18 +++++++++--------- > drivers/gpu/drm/i915/i915_gem_render_state.h | 2 +- > drivers/gpu/drm/i915/intel_lrc.c | 22 ++++++++++------------ > drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- > 4 files changed, 21 insertions(+), 23 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c > index 989476e..85cc746 100644 > --- a/drivers/gpu/drm/i915/i915_gem_render_state.c > +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c > @@ -152,29 +152,29 @@ int i915_gem_render_state_prepare(struct intel_engine_cs *ring, > return 0; > } > > -int i915_gem_render_state_init(struct intel_engine_cs *ring) > +int i915_gem_render_state_init(struct drm_i915_gem_request *req) > { > struct render_state so; > int ret; > > - ret = i915_gem_render_state_prepare(ring, &so); > + ret = i915_gem_render_state_prepare(req->ring, &so); > if (ret) > return ret; > > if (so.rodata == NULL) > return 0; > > - ret = ring->dispatch_execbuffer(ring, > - so.ggtt_offset, > - so.rodata->batch_items * 4, > - I915_DISPATCH_SECURE); > + ret = req->ring->dispatch_execbuffer(req->ring, > + so.ggtt_offset, > + so.rodata->batch_items * 4, > + I915_DISPATCH_SECURE); > if (ret) > goto out; > > - i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), ring); > + i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), req->ring); > > - WARN_ON(ring->outstanding_lazy_request->batch_obj); > - ring->outstanding_lazy_request->batch_obj = so.obj; > + WARN_ON(req->batch_obj); > + req->batch_obj = so.obj; > /* __i915_add_request moves object to inactive if it fails */ > out: > i915_gem_render_state_fini(&so); > diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.h b/drivers/gpu/drm/i915/i915_gem_render_state.h > index c44961e..7aa7372 100644 > --- a/drivers/gpu/drm/i915/i915_gem_render_state.h > +++ b/drivers/gpu/drm/i915/i915_gem_render_state.h > @@ -39,7 +39,7 @@ struct render_state { > int gen; > }; > > -int i915_gem_render_state_init(struct intel_engine_cs *ring); > +int i915_gem_render_state_init(struct drm_i915_gem_request *req); > void i915_gem_render_state_fini(struct render_state *so); > int i915_gem_render_state_prepare(struct intel_engine_cs *ring, > struct render_state *so); > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > index cbec056..f0bb98a 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -1345,31 +1345,29 @@ static int gen8_emit_request(struct intel_ringbuffer *ringbuf, > return 0; > } > > -static int intel_lr_context_render_state_init(struct intel_engine_cs *ring, > - struct intel_context *ctx) > +static int intel_lr_context_render_state_init(struct drm_i915_gem_request *req) > { > - struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf; > struct render_state so; > int ret; > > - ret = i915_gem_render_state_prepare(ring, &so); > + ret = i915_gem_render_state_prepare(req->ring, &so); > if (ret) > return ret; > > if (so.rodata == NULL) > return 0; > > - ret = ring->emit_bb_start(ringbuf, > - ctx, > - so.ggtt_offset, > - I915_DISPATCH_SECURE); > + ret = req->ring->emit_bb_start(req->ringbuf, > + req->ctx, > + so.ggtt_offset, > + I915_DISPATCH_SECURE); > if (ret) > goto out; > > - i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), ring); > + i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), req->ring); > > - WARN_ON(ring->outstanding_lazy_request->batch_obj); > - ring->outstanding_lazy_request->batch_obj = so.obj; > + WARN_ON(req->batch_obj); > + req->batch_obj = so.obj; > /* __i915_add_request moves object to inactive if it fails */ > out: > i915_gem_render_state_fini(&so); > @@ -1384,7 +1382,7 @@ static int gen8_init_rcs_context(struct drm_i915_gem_request *req) > if (ret) > return ret; > > - return intel_lr_context_render_state_init(req->ring, req->ctx); > + return intel_lr_context_render_state_init(req); > } > > /** > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > index 26964a2..efb1729 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > @@ -783,7 +783,7 @@ static int intel_rcs_ctx_init(struct drm_i915_gem_request *req) > if (ret != 0) > return ret; > > - ret = i915_gem_render_state_init(req->ring); > + ret = i915_gem_render_state_init(req); > if (ret) > DRM_ERROR("init render state: %d\n", ret); > > Reviewed-by: Tomas Elf <tomas.elf@intel.com> Thanks, Tomas
diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c index 989476e..85cc746 100644 --- a/drivers/gpu/drm/i915/i915_gem_render_state.c +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c @@ -152,29 +152,29 @@ int i915_gem_render_state_prepare(struct intel_engine_cs *ring, return 0; } -int i915_gem_render_state_init(struct intel_engine_cs *ring) +int i915_gem_render_state_init(struct drm_i915_gem_request *req) { struct render_state so; int ret; - ret = i915_gem_render_state_prepare(ring, &so); + ret = i915_gem_render_state_prepare(req->ring, &so); if (ret) return ret; if (so.rodata == NULL) return 0; - ret = ring->dispatch_execbuffer(ring, - so.ggtt_offset, - so.rodata->batch_items * 4, - I915_DISPATCH_SECURE); + ret = req->ring->dispatch_execbuffer(req->ring, + so.ggtt_offset, + so.rodata->batch_items * 4, + I915_DISPATCH_SECURE); if (ret) goto out; - i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), ring); + i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), req->ring); - WARN_ON(ring->outstanding_lazy_request->batch_obj); - ring->outstanding_lazy_request->batch_obj = so.obj; + WARN_ON(req->batch_obj); + req->batch_obj = so.obj; /* __i915_add_request moves object to inactive if it fails */ out: i915_gem_render_state_fini(&so); diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.h b/drivers/gpu/drm/i915/i915_gem_render_state.h index c44961e..7aa7372 100644 --- a/drivers/gpu/drm/i915/i915_gem_render_state.h +++ b/drivers/gpu/drm/i915/i915_gem_render_state.h @@ -39,7 +39,7 @@ struct render_state { int gen; }; -int i915_gem_render_state_init(struct intel_engine_cs *ring); +int i915_gem_render_state_init(struct drm_i915_gem_request *req); void i915_gem_render_state_fini(struct render_state *so); int i915_gem_render_state_prepare(struct intel_engine_cs *ring, struct render_state *so); diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index cbec056..f0bb98a 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -1345,31 +1345,29 @@ static int gen8_emit_request(struct intel_ringbuffer *ringbuf, return 0; } -static int intel_lr_context_render_state_init(struct intel_engine_cs *ring, - struct intel_context *ctx) +static int intel_lr_context_render_state_init(struct drm_i915_gem_request *req) { - struct intel_ringbuffer *ringbuf = ctx->engine[ring->id].ringbuf; struct render_state so; int ret; - ret = i915_gem_render_state_prepare(ring, &so); + ret = i915_gem_render_state_prepare(req->ring, &so); if (ret) return ret; if (so.rodata == NULL) return 0; - ret = ring->emit_bb_start(ringbuf, - ctx, - so.ggtt_offset, - I915_DISPATCH_SECURE); + ret = req->ring->emit_bb_start(req->ringbuf, + req->ctx, + so.ggtt_offset, + I915_DISPATCH_SECURE); if (ret) goto out; - i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), ring); + i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), req->ring); - WARN_ON(ring->outstanding_lazy_request->batch_obj); - ring->outstanding_lazy_request->batch_obj = so.obj; + WARN_ON(req->batch_obj); + req->batch_obj = so.obj; /* __i915_add_request moves object to inactive if it fails */ out: i915_gem_render_state_fini(&so); @@ -1384,7 +1382,7 @@ static int gen8_init_rcs_context(struct drm_i915_gem_request *req) if (ret) return ret; - return intel_lr_context_render_state_init(req->ring, req->ctx); + return intel_lr_context_render_state_init(req); } /** diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 26964a2..efb1729 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -783,7 +783,7 @@ static int intel_rcs_ctx_init(struct drm_i915_gem_request *req) if (ret != 0) return ret; - ret = i915_gem_render_state_init(req->ring); + ret = i915_gem_render_state_init(req); if (ret) DRM_ERROR("init render state: %d\n", ret);