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