mirror of
https://github.com/mpv-player/mpv
synced 2024-12-28 10:02:17 +00:00
032a3b8272
This actually applies to YUV formats with 9-16 bit depths. This hack is disabled by default, and the VO will use 16 bit textures normally. It can be enabled by passing the no16bit-textures option is passed to vo_direct3d. Then the VO will use D3DFMT_A8L8 as texture formats for the YUV plane (instead of D3DFMT_L16), and compute the sampled two color values back into one. In some cases it might be undesireable to use 16 bit texture formats. At least some OpenGL drivers on Linux (Mesa + Intel) round values sampled from 16 bit textures back into 8 bit, which loses 8 from 10 bit color information when playing 10 bit formats. It is unknown whether there are D3D9 drivers which do this, so this commit might be removed later.
171 lines
4.9 KiB
C
171 lines
4.9 KiB
C
#if 0
|
|
//
|
|
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
|
|
//
|
|
// fxc /Tps_2_0 /Fhz:\tmp\mplayer\libvo\d3d_shader_yuv_2ch.h
|
|
// z:\tmp\mplayer\libvo\d3d_shader_yuv.hlsl /Vnd3d_shader_yuv_2ch
|
|
// /DUSE_2CH=1
|
|
//
|
|
//
|
|
// Parameters:
|
|
//
|
|
// float4x4 colormatrix;
|
|
// float2 depth;
|
|
// sampler2D tex0;
|
|
// sampler2D tex1;
|
|
// sampler2D tex2;
|
|
//
|
|
//
|
|
// Registers:
|
|
//
|
|
// Name Reg Size
|
|
// ------------ ----- ----
|
|
// colormatrix c0 4
|
|
// depth c5 1
|
|
// tex0 s0 1
|
|
// tex1 s1 1
|
|
// tex2 s2 1
|
|
//
|
|
|
|
ps_2_0
|
|
def c4, 1, 0, 0, 0
|
|
dcl t0.xy
|
|
dcl t1.xy
|
|
dcl t2.xy
|
|
dcl_2d s0
|
|
dcl_2d s1
|
|
dcl_2d s2
|
|
texld r0, t0, s0
|
|
texld r1, t1, s1
|
|
texld r2, t2, s2
|
|
mul r0.x, r0.x, c5.x
|
|
mad r0.x, r0.w, c5.y, r0.x
|
|
mul r1.x, r1.x, c5.x
|
|
mad r0.y, r1.w, c5.y, r1.x
|
|
mul r1.x, r2.x, c5.x
|
|
mad r0.z, r2.w, c5.y, r1.x
|
|
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 15 instruction slots used (3 texture, 12 arithmetic)
|
|
#endif
|
|
|
|
const BYTE d3d_shader_yuv_2ch[] =
|
|
{
|
|
0, 2, 255, 255, 254, 255,
|
|
78, 0, 67, 84, 65, 66,
|
|
28, 0, 0, 0, 3, 1,
|
|
0, 0, 0, 2, 255, 255,
|
|
5, 0, 0, 0, 28, 0,
|
|
0, 0, 0, 1, 0, 0,
|
|
252, 0, 0, 0, 128, 0,
|
|
0, 0, 2, 0, 0, 0,
|
|
4, 0, 2, 0, 140, 0,
|
|
0, 0, 0, 0, 0, 0,
|
|
156, 0, 0, 0, 2, 0,
|
|
5, 0, 1, 0, 22, 0,
|
|
164, 0, 0, 0, 0, 0,
|
|
0, 0, 180, 0, 0, 0,
|
|
3, 0, 0, 0, 1, 0,
|
|
2, 0, 188, 0, 0, 0,
|
|
0, 0, 0, 0, 204, 0,
|
|
0, 0, 3, 0, 1, 0,
|
|
1, 0, 6, 0, 212, 0,
|
|
0, 0, 0, 0, 0, 0,
|
|
228, 0, 0, 0, 3, 0,
|
|
2, 0, 1, 0, 10, 0,
|
|
236, 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,
|
|
100, 101, 112, 116, 104, 0,
|
|
171, 171, 1, 0, 3, 0,
|
|
1, 0, 2, 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,
|
|
116, 101, 120, 50, 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, 55, 46, 57,
|
|
53, 50, 46, 51, 48, 50,
|
|
50, 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, 128, 2, 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, 31, 0, 0, 2,
|
|
0, 0, 0, 144, 2, 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, 66, 0,
|
|
0, 3, 2, 0, 15, 128,
|
|
2, 0, 228, 176, 2, 8,
|
|
228, 160, 5, 0, 0, 3,
|
|
0, 0, 1, 128, 0, 0,
|
|
0, 128, 5, 0, 0, 160,
|
|
4, 0, 0, 4, 0, 0,
|
|
1, 128, 0, 0, 255, 128,
|
|
5, 0, 85, 160, 0, 0,
|
|
0, 128, 5, 0, 0, 3,
|
|
1, 0, 1, 128, 1, 0,
|
|
0, 128, 5, 0, 0, 160,
|
|
4, 0, 0, 4, 0, 0,
|
|
2, 128, 1, 0, 255, 128,
|
|
5, 0, 85, 160, 1, 0,
|
|
0, 128, 5, 0, 0, 3,
|
|
1, 0, 1, 128, 2, 0,
|
|
0, 128, 5, 0, 0, 160,
|
|
4, 0, 0, 4, 0, 0,
|
|
4, 128, 2, 0, 255, 128,
|
|
5, 0, 85, 160, 1, 0,
|
|
0, 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
|
|
};
|