[igt-dev] [PATCH i-g-t 2/2] lib/intel_batchbuffer: Use COMPUTE instead RENDER engine for Xe on PVC

Manszewski, Christoph christoph.manszewski at intel.com
Tue May 30 14:50:35 UTC 2023



On 30.05.2023 14:25, Zbigniew Kempczyński wrote:
> On Tue, May 30, 2023 at 09:13:39AM +0200, Manszewski, Christoph wrote:
>> Hi Zbigniew,
>>
>> On 29.05.2023 18:54, Zbigniew Kempczyński wrote:
>>> For gpgpu fill currently we select I915_EXEC_RENDER which is correct
>>> as pipeline selection allows to submit compute job on it. However
>>> newer platforms like PVC have no render engine so replacing to compute
>>> engine is necessary. At the moment this is workaround - more rework
>>> in intel-bb is necessary to better support both - i915 and xe.
>>
>> [PATCH i-g-t v3] lib/intel_bb: Enable custom engine support for xe
>> makes it possible to provide custom engines. Let me know what you think.
> 
> Still we're using intel_bb_exec(I915_EXEC_RENDER, ...) on gpgpu what

True.


> means we need to do conditionals there or introduce engine translation
> layer in intel-bb. I'm going to convert current argument passing model
> to designated initializers used in igt spin factory. But this doesn't
> conflict your change which I'm going to review today.

Agreed, moreover having these two changes coexisting leaves the choice 
to the user, whether he wants to provide a custom engine, or rely on 
legacy mode.

Reviewed-by: Christoph Manszewski <christoph.manszewski at intel.com>

Christoph


> 
> --
> Zbigniew
> 
>>
>> Christoph
>>
>>
>>>
>>> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
>>> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
>>> ---
>>>    lib/intel_batchbuffer.c | 5 ++++-
>>>    1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
>>> index 9f65536173..71f62973c8 100644
>>> --- a/lib/intel_batchbuffer.c
>>> +++ b/lib/intel_batchbuffer.c
>>> @@ -2315,7 +2315,10 @@ __xe_bb_exec(struct intel_bb *ibb, uint64_t flags, bool sync)
>>>    			inst.engine_class = DRM_XE_ENGINE_CLASS_VIDEO_DECODE;
>>>    			break;
>>>    		case I915_EXEC_RENDER:
>>> -			inst.engine_class = DRM_XE_ENGINE_CLASS_RENDER;
>>> +			if (IS_PONTEVECCHIO(xe_dev_id(ibb->fd)))
>>> +				inst.engine_class = DRM_XE_ENGINE_CLASS_COMPUTE;
>>> +			else
>>> +				inst.engine_class = DRM_XE_ENGINE_CLASS_RENDER;
>>>    			break;
>>>    		case I915_EXEC_VEBOX:
>>>    			inst.engine_class = DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE;


More information about the igt-dev mailing list