Re: [PATCH 00/18] [RFC] Introduce the Haswell VECS

Ben Widawsky
2012-11-07T12:02:34Z

The basic usage of this feature is already upstream in libva.

git://anongit.freedesktop.org/vaapi/intel-driver

On Tue, 6 Nov 2012 16:25:24 +0000
Ben Widawsky <ben@bwidawsk.net> wrote:

> The VECS is a new command streamer introduced in Haswell which allows
> offloading of video post processing to a new engine called the VEBOX.
> Like other rings, it is up to userspace to take advantage of it. Also
> like the other rings, the primary enabling is turning on interrupts,
> adding the new semaphores, and other basic bits. Somewhat more
> complicated than the other rings, the VECS has its interrupts in the
> PMIMR, so as a result, I did a bunch of interrupt naming cleanups
> because I thought it made more sense.
>
> Coming separately will be the basic i-g-t test cases. I still have some
> work to do on those, but figure that the review can go on in parallel.
>
> In terms of the work history, these started as patches by me, finished by
> Haihao, and then cleaned up and rebased by me. I tried to leave credit to
> Haihao where applicable, but I rewrote a lot of his stuff, so blame me if
> something is bad.
>
> Ben Widawsky (14):
> drm/i915: Comments for semaphore clarification
> drm/i915: Semaphore MBOX update generalization
> drm/i915: Introduce VECS: the 4th ring
> drm/i915: Add VECS semaphore bits
> drm/i915: Rename ring flush functions
> drm/i915: Vebox ringbuffer init
> drm/i915: Create a more generic pm handler for hsw+
> drm/i915: make PM interrupt writes non-destructive
> drm/i915: Create an ivybridge_irq_preinstall
> drm/i915: Add PM regs to pre install
> drm/i915: Convert irq_refounct to struct
> drm/i915: consolidate interrupt naming scheme
> drm/i915: vebox interrupt get/put
> drm/i915: Enable vebox interrupts
>
> Xiang, Haihao (4):
> drm/i915: add HAS_VEBOX
> drm/i915: add VEBOX into debugfs
> drm/i915: add I915_EXEC_VEBOX to i915_gem_do_execbuffer()
> drm/i915: add I915_PARAM_HAS_VEBOX to i915_getparam
>
> drivers/gpu/drm/i915/i915_debugfs.c | 13 ++
> drivers/gpu/drm/i915/i915_dma.c | 5 +-
> drivers/gpu/drm/i915/i915_drv.c | 2 +
> drivers/gpu/drm/i915/i915_drv.h | 3 +
> drivers/gpu/drm/i915/i915_gem.c | 8 ++
> drivers/gpu/drm/i915/i915_gem_execbuffer.c | 9 ++
> drivers/gpu/drm/i915/i915_irq.c | 153 +++++++++++++++++------
> drivers/gpu/drm/i915/i915_reg.h | 148 ++++++++++++-----------
> drivers/gpu/drm/i915/intel_pm.c | 8 +-
> drivers/gpu/drm/i915/intel_ringbuffer.c | 188 +++++++++++++++++++++--------
> drivers/gpu/drm/i915/intel_ringbuffer.h | 13 +-
> include/uapi/drm/i915_drm.h | 3 +-
> 12 files changed, 383 insertions(+), 170 deletions(-)
>

--
Ben Widawsky, Intel Open Source Technology Center