1
mirror of https://github.com/mpv-player/mpv synced 2024-11-14 22:48:35 +01:00
mpv/video/out/d3d_shader_nv12.h
wm4 4b177bd5c2 vo_direct3d: support NV12 with shaders
Semi-important, because --hwdec=dxva2 outputs NV12, and we really don't
want people to end up with the "old" StretchRect method.

Unfortunately, I couldn't actually get it to work. It seems most D3D
drivers (including the wine D3D implementation) reject D3DFMT_A8L8,
and I could not find any other 2-channel 8 bit Direct3D 9 format. It
seems newer D3D APIs have DXGI_FORMAT_R8G8_UNORM, but there's no way
to get it in D3D9.

Still pushing this; maybe it actually works on some drivers.
2015-03-02 19:09:18 +01:00

124 lines
3.5 KiB
C

#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// fxc /Tps_2_0 -DUSE_NV12=1 /Fhd3d_shader_nv12.h d3d_shader_yuv.hlsl
// /Vnd3d_shader_nv12
//
//
// Parameters:
//
// float4x4 colormatrix;
// sampler2D tex0;
// sampler2D tex1;
//
//
// Registers:
//
// Name Reg Size
// ------------ ----- ----
// colormatrix c0 4
// tex0 s0 1
// tex1 s1 1
//
ps_2_0
def c4, 1, 0, 0, 0
dcl t0.xy
dcl t1.xy
dcl_2d s0
dcl_2d s1
texld r0, t0, s0
texld r1, t1, s1
mov r0.y, r1.x
mov r0.z, r1.z
mov r0.w, c4.x
dp4 r1.x, r0, c0
dp4 r1.y, r0, c1
dp4 r1.z, r0, c2
dp4 r1.w, r0, c3
mov oC0, r1
// approximately 10 instruction slots used (2 texture, 8 arithmetic)
#endif
const BYTE d3d_shader_nv12[] =
{
0, 2, 255, 255, 254, 255,
56, 0, 67, 84, 65, 66,
28, 0, 0, 0, 171, 0,
0, 0, 0, 2, 255, 255,
3, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
164, 0, 0, 0, 88, 0,
0, 0, 2, 0, 0, 0,
4, 0, 2, 0, 100, 0,
0, 0, 0, 0, 0, 0,
116, 0, 0, 0, 3, 0,
0, 0, 1, 0, 2, 0,
124, 0, 0, 0, 0, 0,
0, 0, 140, 0, 0, 0,
3, 0, 1, 0, 1, 0,
6, 0, 148, 0, 0, 0,
0, 0, 0, 0, 99, 111,
108, 111, 114, 109, 97, 116,
114, 105, 120, 0, 3, 0,
3, 0, 4, 0, 4, 0,
1, 0, 0, 0, 0, 0,
0, 0, 116, 101, 120, 48,
0, 171, 171, 171, 4, 0,
12, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0,
0, 0, 116, 101, 120, 49,
0, 171, 171, 171, 4, 0,
12, 0, 1, 0, 1, 0,
1, 0, 0, 0, 0, 0,
0, 0, 112, 115, 95, 50,
95, 48, 0, 77, 105, 99,
114, 111, 115, 111, 102, 116,
32, 40, 82, 41, 32, 72,
76, 83, 76, 32, 83, 104,
97, 100, 101, 114, 32, 67,
111, 109, 112, 105, 108, 101,
114, 32, 57, 46, 50, 57,
46, 57, 53, 50, 46, 51,
49, 49, 49, 0, 81, 0,
0, 5, 4, 0, 15, 160,
0, 0, 128, 63, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 31, 0,
0, 2, 0, 0, 0, 128,
0, 0, 3, 176, 31, 0,
0, 2, 0, 0, 0, 128,
1, 0, 3, 176, 31, 0,
0, 2, 0, 0, 0, 144,
0, 8, 15, 160, 31, 0,
0, 2, 0, 0, 0, 144,
1, 8, 15, 160, 66, 0,
0, 3, 0, 0, 15, 128,
0, 0, 228, 176, 0, 8,
228, 160, 66, 0, 0, 3,
1, 0, 15, 128, 1, 0,
228, 176, 1, 8, 228, 160,
1, 0, 0, 2, 0, 0,
2, 128, 1, 0, 0, 128,
1, 0, 0, 2, 0, 0,
4, 128, 1, 0, 170, 128,
1, 0, 0, 2, 0, 0,
8, 128, 4, 0, 0, 160,
9, 0, 0, 3, 1, 0,
1, 128, 0, 0, 228, 128,
0, 0, 228, 160, 9, 0,
0, 3, 1, 0, 2, 128,
0, 0, 228, 128, 1, 0,
228, 160, 9, 0, 0, 3,
1, 0, 4, 128, 0, 0,
228, 128, 2, 0, 228, 160,
9, 0, 0, 3, 1, 0,
8, 128, 0, 0, 228, 128,
3, 0, 228, 160, 1, 0,
0, 2, 0, 8, 15, 128,
1, 0, 228, 128, 255, 255,
0, 0
};