Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Oscar Mateo <oscar.mateo@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
	intel-gfx@lists.freedesktop.org,
	Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Subject: Re: [PATCH] drm/i915: New vfunc prepare_request
Date: Mon, 1 May 2017 07:28:12 +0000	[thread overview]
Message-ID: <eb503539-8de3-0a90-b406-1fe712b3042f@intel.com> (raw)
In-Reply-To: <20170429083116.GA30926@nuc-i3427.alporthouse.com>



On 04/29/2017 08:31 AM, Chris Wilson wrote:
> On Fri, Apr 28, 2017 at 05:26:09PM +0000, Oscar Mateo wrote:
>> This will be more useful later to support platforms that need to emit
>> HW commands at the beginning of every request (more general than emitting
>> things at the beginning of every batchbuffer, which is already covered by
>> emit_bb_start).
> We already have one... You are presenting this without a good reason and
> failing to transform similar code, which indicates to me that this vfunc
> isn't that general.

It looks like I've missed that. What function are you talking about?

>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_lrc.c        | 17 ++++++++++++-----
>>   drivers/gpu/drm/i915/intel_ringbuffer.h |  1 +
>>   2 files changed, 13 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
>> index 9488578..a5c055a 100644
>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>> @@ -687,6 +687,15 @@ static bool insert_request(struct i915_priotree *pt, struct rb_root *root)
>>   	return first;
>>   }
>>   
>> +static int execlists_prepare_request(struct drm_i915_gem_request *request)
>> +{
>> +	u32 *cs = intel_ring_begin(request, 0);
>> +	if (IS_ERR(cs))
>> +		return PTR_ERR(cs);
>> +
>> +	return 0;
>> +}
>> +
>>   static void execlists_submit_request(struct drm_i915_gem_request *request)
>>   {
>>   	struct intel_engine_cs *engine = request->engine;
>> @@ -879,7 +888,6 @@ static int execlists_request_alloc(struct drm_i915_gem_request *request)
>>   {
>>   	struct intel_engine_cs *engine = request->engine;
>>   	struct intel_context *ce = &request->ctx->engine[engine->id];
>> -	u32 *cs;
>>   	int ret;
>>   
>>   	GEM_BUG_ON(!ce->pin_count);
>> @@ -904,11 +912,9 @@ static int execlists_request_alloc(struct drm_i915_gem_request *request)
>>   			goto err;
>>   	}
>>   
>> -	cs = intel_ring_begin(request, 0);
>> -	if (IS_ERR(cs)) {
>> -		ret = PTR_ERR(cs);
>> +	ret = engine->prepare_request(request);
>> +	if (ret)
>>   		goto err_unreserve;
>> -	}
>>   
>>   	if (!ce->initialised) {
>>   		ret = engine->init_context(request);
>> @@ -1650,6 +1656,7 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *engine)
>>   
>>   static void execlists_set_default_submission(struct intel_engine_cs *engine)
>>   {
>> +	engine->prepare_request = execlists_prepare_request;
>>   	engine->submit_request = execlists_submit_request;
>>   	engine->schedule = execlists_schedule;
>>   	engine->irq_tasklet.func = intel_lrc_irq_handler;
>> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
>> index d901831..67de978 100644
>> --- a/drivers/gpu/drm/i915/intel_ringbuffer.h
>> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
>> @@ -303,6 +303,7 @@ struct intel_engine_cs {
>>   	void		(*emit_breadcrumb)(struct drm_i915_gem_request *req,
>>   					   u32 *cs);
>>   	int		emit_breadcrumb_sz;
>> +	int             (*prepare_request)(struct drm_i915_gem_request *req);
> Why in the emit group?
> -Chris
>

Missing newline.

-- Oscar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-05-01 14:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-29 22:01 [PATCH] drm/i915: New vfunc prepare_request kbuild test robot
2017-04-28 17:26 ` Oscar Mateo
2017-04-29  0:46   ` ✓ Fi.CI.BAT: success for " Patchwork
2017-04-29  8:31   ` [PATCH] " Chris Wilson
2017-05-01  7:28     ` Oscar Mateo [this message]
2017-05-02  8:59       ` Chris Wilson
2017-05-02 15:17         ` Oscar Mateo
2017-04-29 22:01   ` [PATCH] drm/i915: fix ptr_ret.cocci warnings kbuild test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eb503539-8de3-0a90-b406-1fe712b3042f@intel.com \
    --to=oscar.mateo@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=joonas.lahtinen@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox