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

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Tue May 30 16:50:44 UTC 2023


On Tue, May 30, 2023 at 04:50:35PM +0200, Manszewski, Christoph wrote:
> 
> 
> 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.

Yes, but I think this needs some rework in this area.

Thank you for the review.

--
Zbigniew

> 
> 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