[vlc-commits] direct3d11: support RGBA64 playback

Steve Lhomme git at videolan.org
Thu Feb 7 09:43:19 CET 2019


vlc/vlc-3.0 | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Fri Aug  3 08:03:11 2018 +0200| [348ed1e4f1f77e5da91e2a57821f78e621ac8fdf] | committer: Steve Lhomme

direct3d11: support RGBA64 playback

This is the best option to display software RGB sources above 8 bits.

Ref #19563 which wouldn't play on 4.0 otherwise

(cherry picked from commit 24a7b990bed891f76bb1aeb1a0e6ce7c5fb43e66)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=348ed1e4f1f77e5da91e2a57821f78e621ac8fdf
---

 modules/video_chroma/dxgi_fmt.c            | 1 +
 modules/video_output/win32/d3d11_shaders.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/modules/video_chroma/dxgi_fmt.c b/modules/video_chroma/dxgi_fmt.c
index a7001152fd..6adf613895 100644
--- a/modules/video_chroma/dxgi_fmt.c
+++ b/modules/video_chroma/dxgi_fmt.c
@@ -85,6 +85,7 @@ static const d3d_format_t d3d_formats[] = {
     { "R8G8B8A8", DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_RGBA,          8, 1, 1, { DXGI_FORMAT_R8G8B8A8_UNORM } },
     { "VA_RGBA",  DXGI_FORMAT_R8G8B8A8_UNORM, VLC_CODEC_D3D11_OPAQUE,  8, 1, 1, { DXGI_FORMAT_R8G8B8A8_UNORM } },
     { "R8G8B8X8", DXGI_FORMAT_B8G8R8X8_UNORM, VLC_CODEC_RGB32,         8, 1, 1, { DXGI_FORMAT_B8G8R8X8_UNORM } },
+    { "RGBA64",   DXGI_FORMAT_R16G16B16A16_UNORM, VLC_CODEC_RGBA64,   16, 1, 1, { DXGI_FORMAT_R16G16B16A16_UNORM } },
     { "RGB10A2",  DXGI_FORMAT_R10G10B10A2_UNORM, VLC_CODEC_RGBA10,    10, 1, 1, { DXGI_FORMAT_R10G10B10A2_UNORM } },
     { "AYUV",     DXGI_FORMAT_AYUV,           VLC_CODEC_VUYA,          8, 1, 1, { DXGI_FORMAT_R8G8B8A8_UNORM } },
     { "B5G6R5",   DXGI_FORMAT_B5G6R5_UNORM,   VLC_CODEC_RGB16,         5, 1, 1, { DXGI_FORMAT_B5G6R5_UNORM } },
diff --git a/modules/video_output/win32/d3d11_shaders.c b/modules/video_output/win32/d3d11_shaders.c
index 8bea3a7817..9646895773 100644
--- a/modules/video_output/win32/d3d11_shaders.c
+++ b/modules/video_output/win32/d3d11_shaders.c
@@ -246,6 +246,7 @@ HRESULT D3D11_CompilePixelShader(vlc_object_t *o, d3d11_handle_t *hd3d, bool leg
     case DXGI_FORMAT_B8G8R8X8_UNORM:
     case DXGI_FORMAT_B5G6R5_UNORM:
     case DXGI_FORMAT_R10G10B10A2_UNORM:
+    case DXGI_FORMAT_R16G16B16A16_UNORM:
         psz_sampler =
                 "sample = shaderTexture[0].Sample(samplerState, coords);";
         break;



More information about the vlc-commits mailing list