[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