[vlc-devel] [PATCH 0/4] I420 shaders in Direct3D11

Steve Lhomme robux4 at videolabs.io
Fri Feb 10 15:12:17 CET 2017


One of the drawback of using D3D11 so far was that it doesn't have native I420
support, which is what most software decoders output. These few patches solve
the issue by using 3 different surfaces per decoder picture, one for each I420
planes, with their own dimensions. The pixel shader then reassembles the RGB
colours from the YUV data.

On top of that, to avoid one copy from CPU to GPU, we decode directly to GPU
memory.

Steve Lhomme (4):
  direct3d11: keep track of mapped surfaces
  picture: split the plane definition from the picture creation
  vout: win32: add a function to set the planes of a picture from the
    raw values
  direct3d11: support decoding I420 directly into GPU memory

 include/vlc_picture.h                   |  14 ++
 modules/video_chroma/d3d11_fmt.h        |   1 +
 modules/video_chroma/dxgi_fmt.c         |  13 +-
 modules/video_chroma/dxgi_fmt.h         |   2 +-
 modules/video_output/win32/common.c     |  12 ++
 modules/video_output/win32/common.h     |   1 +
 modules/video_output/win32/direct3d11.c | 337 +++++++++++++++++++++++++-------
 src/libvlccore.sym                      |   1 +
 src/misc/picture.c                      |  14 +-
 9 files changed, 315 insertions(+), 80 deletions(-)

-- 
2.10.2



More information about the vlc-devel mailing list