summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-03-12 03:17:41 +0100
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-03-13 15:51:20 +0100
commit9c33c40b824b7db5a484d1c2633ecadbd6d48a03 (patch)
treed9d0b4928755ba6c026da307bfc36203fb7c0ecc
parentcd8f796df658caf91af31de35d87ab0de77e69e9 (diff)
Fix up NTSC shaders, nw
-rw-r--r--bgfx/chains/hlsl.json28
-rw-r--r--bgfx/shaders/dx11/fs_blit.binbin38808 -> 38808 bytes
-rw-r--r--bgfx/shaders/dx11/fs_color.binbin41211 -> 41211 bytes
-rw-r--r--bgfx/shaders/dx11/fs_deconverge.binbin41062 -> 41062 bytes
-rw-r--r--bgfx/shaders/dx11/fs_gui.binbin38808 -> 38808 bytes
-rw-r--r--bgfx/shaders/dx11/fs_ntsc_decode.binbin58542 -> 59140 bytes
-rw-r--r--bgfx/shaders/dx11/fs_ntsc_encode.binbin48410 -> 48340 bytes
-rw-r--r--bgfx/shaders/dx11/fs_phosphor.binbin41138 -> 41138 bytes
-rw-r--r--bgfx/shaders/dx11/fs_ratios.binbin41118 -> 41118 bytes
-rw-r--r--bgfx/shaders/dx11/fs_screen.binbin38808 -> 38808 bytes
-rw-r--r--bgfx/shaders/dx11/fs_tint.binbin38963 -> 38963 bytes
-rw-r--r--bgfx/shaders/dx11/vs_blit.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_color.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_deconverge.binbin43858 -> 43858 bytes
-rw-r--r--bgfx/shaders/dx11/vs_gui.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_ntsc_decode.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_ntsc_encode.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_phosphor.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_ratios.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_screen.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx11/vs_tint.binbin38987 -> 38987 bytes
-rw-r--r--bgfx/shaders/dx9/fs_ntsc_decode.binbin8110 -> 7756 bytes
-rw-r--r--bgfx/shaders/dx9/fs_ntsc_encode.binbin4010 -> 3552 bytes
-rw-r--r--bgfx/shaders/gles/fs_ntsc_decode.binbin5045 -> 7008 bytes
-rw-r--r--bgfx/shaders/gles/fs_ntsc_encode.binbin2998 -> 3162 bytes
-rw-r--r--bgfx/shaders/glsl/fs_ntsc_decode.binbin4768 -> 6620 bytes
-rw-r--r--bgfx/shaders/glsl/fs_ntsc_encode.binbin2849 -> 3002 bytes
-rw-r--r--bgfx/shaders/metal/fs_ntsc_decode.binbin5616 -> 7457 bytes
-rw-r--r--bgfx/shaders/metal/fs_ntsc_encode.binbin3613 -> 3700 bytes
-rw-r--r--src/osd/modules/render/bgfx/entryuniformreader.cpp1
-rw-r--r--src/osd/modules/render/bgfx/fs_ntsc_decode.sc48
-rw-r--r--src/osd/modules/render/bgfx/fs_ntsc_encode.sc28
32 files changed, 60 insertions, 45 deletions
diff --git a/bgfx/chains/hlsl.json b/bgfx/chains/hlsl.json
index df743cd9d7d..d9d85020bd5 100644
--- a/bgfx/chains/hlsl.json
+++ b/bgfx/chains/hlsl.json
@@ -40,6 +40,12 @@
"prescale": 1,
"doublebuffer": true
},
+ {
+ "name": "deadend",
+ "mode": "guest",
+ "prescale": 1,
+ "doublebuffer": true
+ },
{ "name": "native",
"mode": "native",
"prescale": 1,
@@ -53,7 +59,7 @@
],
"passes": [
{ "effect": "ntsc_encode",
- "name": "NTSC Decode",
+ "name": "NTSC Encode",
"disablewhen": [
{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
{ "type": "slider", "condition": "equal", "combine": "or", "name": "ntsc", "value": 0 }
@@ -108,7 +114,25 @@
],
"output": "guest"
},
- { "effect": "blit",
+ { "effect": "color",
+ "name": "Color Convolution",
+ "disablewhen": [
+ { "type": "slider", "condition": "equal", "name": "adjustments", "value": 0 }
+ ],
+ "uniforms": [
+ { "uniform": "u_red_ratios", "slider": "red_ratios" },
+ { "uniform": "u_grn_ratios", "slider": "grn_ratios" },
+ { "uniform": "u_blu_ratios", "slider": "blu_ratios" },
+ { "uniform": "u_offset", "slider": "offset" },
+ { "uniform": "u_scale", "slider": "scale" },
+ { "uniform": "u_saturation", "slider": "saturation" }
+ ],
+ "input": [
+ { "sampler": "DiffuseSampler", "texture": "guest" }
+ ],
+ "output": "guest"
+ },
+ { "effect": "blit",
"name": "Prescale",
"input": [
{ "sampler": "s_tex", "texture": "guest" }
diff --git a/bgfx/shaders/dx11/fs_blit.bin b/bgfx/shaders/dx11/fs_blit.bin
index a85e820871c..bcc74538c33 100644
--- a/bgfx/shaders/dx11/fs_blit.bin
+++ b/bgfx/shaders/dx11/fs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_color.bin b/bgfx/shaders/dx11/fs_color.bin
index 0d67b7ae49a..29925bc9dd2 100644
--- a/bgfx/shaders/dx11/fs_color.bin
+++ b/bgfx/shaders/dx11/fs_color.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_deconverge.bin b/bgfx/shaders/dx11/fs_deconverge.bin
index 16f2c569081..7c949f52c1d 100644
--- a/bgfx/shaders/dx11/fs_deconverge.bin
+++ b/bgfx/shaders/dx11/fs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_gui.bin b/bgfx/shaders/dx11/fs_gui.bin
index d7b1df5f758..ab00cc60da6 100644
--- a/bgfx/shaders/dx11/fs_gui.bin
+++ b/bgfx/shaders/dx11/fs_gui.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ntsc_decode.bin b/bgfx/shaders/dx11/fs_ntsc_decode.bin
index 8b8c4806386..0b32595c26b 100644
--- a/bgfx/shaders/dx11/fs_ntsc_decode.bin
+++ b/bgfx/shaders/dx11/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ntsc_encode.bin b/bgfx/shaders/dx11/fs_ntsc_encode.bin
index 739ac01c72f..f9f9d79fcdb 100644
--- a/bgfx/shaders/dx11/fs_ntsc_encode.bin
+++ b/bgfx/shaders/dx11/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_phosphor.bin b/bgfx/shaders/dx11/fs_phosphor.bin
index 4de9fe2d94f..bdea6c132ea 100644
--- a/bgfx/shaders/dx11/fs_phosphor.bin
+++ b/bgfx/shaders/dx11/fs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_ratios.bin b/bgfx/shaders/dx11/fs_ratios.bin
index 74aaff2e824..0c321faea93 100644
--- a/bgfx/shaders/dx11/fs_ratios.bin
+++ b/bgfx/shaders/dx11/fs_ratios.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_screen.bin b/bgfx/shaders/dx11/fs_screen.bin
index 27b8da9aa5f..b8102b8b1c0 100644
--- a/bgfx/shaders/dx11/fs_screen.bin
+++ b/bgfx/shaders/dx11/fs_screen.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/fs_tint.bin b/bgfx/shaders/dx11/fs_tint.bin
index 3c85a877510..bae1d78d0b5 100644
--- a/bgfx/shaders/dx11/fs_tint.bin
+++ b/bgfx/shaders/dx11/fs_tint.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_blit.bin b/bgfx/shaders/dx11/vs_blit.bin
index c9df5a9aa19..ef289c07bb2 100644
--- a/bgfx/shaders/dx11/vs_blit.bin
+++ b/bgfx/shaders/dx11/vs_blit.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_color.bin b/bgfx/shaders/dx11/vs_color.bin
index f4162cb7460..1f44cbbc0c3 100644
--- a/bgfx/shaders/dx11/vs_color.bin
+++ b/bgfx/shaders/dx11/vs_color.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_deconverge.bin b/bgfx/shaders/dx11/vs_deconverge.bin
index 1ff405263ad..f41efa6ecc2 100644
--- a/bgfx/shaders/dx11/vs_deconverge.bin
+++ b/bgfx/shaders/dx11/vs_deconverge.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_gui.bin b/bgfx/shaders/dx11/vs_gui.bin
index 38b6e0ca8ba..0645a268fc4 100644
--- a/bgfx/shaders/dx11/vs_gui.bin
+++ b/bgfx/shaders/dx11/vs_gui.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ntsc_decode.bin b/bgfx/shaders/dx11/vs_ntsc_decode.bin
index 523172676c5..b52ec9d374d 100644
--- a/bgfx/shaders/dx11/vs_ntsc_decode.bin
+++ b/bgfx/shaders/dx11/vs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ntsc_encode.bin b/bgfx/shaders/dx11/vs_ntsc_encode.bin
index f063fcbb7bc..cb37598ab61 100644
--- a/bgfx/shaders/dx11/vs_ntsc_encode.bin
+++ b/bgfx/shaders/dx11/vs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_phosphor.bin b/bgfx/shaders/dx11/vs_phosphor.bin
index 3c73f85053e..ca2a6ee9654 100644
--- a/bgfx/shaders/dx11/vs_phosphor.bin
+++ b/bgfx/shaders/dx11/vs_phosphor.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_ratios.bin b/bgfx/shaders/dx11/vs_ratios.bin
index 2dfcd19c4cd..87a97456f61 100644
--- a/bgfx/shaders/dx11/vs_ratios.bin
+++ b/bgfx/shaders/dx11/vs_ratios.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_screen.bin b/bgfx/shaders/dx11/vs_screen.bin
index d4c1054ae31..4b5f0d0f6f2 100644
--- a/bgfx/shaders/dx11/vs_screen.bin
+++ b/bgfx/shaders/dx11/vs_screen.bin
Binary files differ
diff --git a/bgfx/shaders/dx11/vs_tint.bin b/bgfx/shaders/dx11/vs_tint.bin
index 2aa021d990d..71db63aa558 100644
--- a/bgfx/shaders/dx11/vs_tint.bin
+++ b/bgfx/shaders/dx11/vs_tint.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_ntsc_decode.bin b/bgfx/shaders/dx9/fs_ntsc_decode.bin
index 988dd059efa..801e212fe1c 100644
--- a/bgfx/shaders/dx9/fs_ntsc_decode.bin
+++ b/bgfx/shaders/dx9/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/dx9/fs_ntsc_encode.bin b/bgfx/shaders/dx9/fs_ntsc_encode.bin
index 754b52af0e4..5aff8b1d48c 100644
--- a/bgfx/shaders/dx9/fs_ntsc_encode.bin
+++ b/bgfx/shaders/dx9/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_ntsc_decode.bin b/bgfx/shaders/gles/fs_ntsc_decode.bin
index 49458ff0b80..3676644d741 100644
--- a/bgfx/shaders/gles/fs_ntsc_decode.bin
+++ b/bgfx/shaders/gles/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/gles/fs_ntsc_encode.bin b/bgfx/shaders/gles/fs_ntsc_encode.bin
index 0d0bdbeea37..42a30179227 100644
--- a/bgfx/shaders/gles/fs_ntsc_encode.bin
+++ b/bgfx/shaders/gles/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_ntsc_decode.bin b/bgfx/shaders/glsl/fs_ntsc_decode.bin
index 59fdbb640ed..aab5144f780 100644
--- a/bgfx/shaders/glsl/fs_ntsc_decode.bin
+++ b/bgfx/shaders/glsl/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/fs_ntsc_encode.bin b/bgfx/shaders/glsl/fs_ntsc_encode.bin
index 7a11254d662..23b12243808 100644
--- a/bgfx/shaders/glsl/fs_ntsc_encode.bin
+++ b/bgfx/shaders/glsl/fs_ntsc_encode.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_ntsc_decode.bin b/bgfx/shaders/metal/fs_ntsc_decode.bin
index 22787c6ef21..ce6bc5aab2e 100644
--- a/bgfx/shaders/metal/fs_ntsc_decode.bin
+++ b/bgfx/shaders/metal/fs_ntsc_decode.bin
Binary files differ
diff --git a/bgfx/shaders/metal/fs_ntsc_encode.bin b/bgfx/shaders/metal/fs_ntsc_encode.bin
index 179129f0e95..c41d301b780 100644
--- a/bgfx/shaders/metal/fs_ntsc_encode.bin
+++ b/bgfx/shaders/metal/fs_ntsc_encode.bin
Binary files differ
diff --git a/src/osd/modules/render/bgfx/entryuniformreader.cpp b/src/osd/modules/render/bgfx/entryuniformreader.cpp
index 8bac8399292..d1affe9ca09 100644
--- a/src/osd/modules/render/bgfx/entryuniformreader.cpp
+++ b/src/osd/modules/render/bgfx/entryuniformreader.cpp
@@ -22,6 +22,7 @@ bgfx_entry_uniform* entry_uniform_reader::read_from_value(const Value& value, bg
std::string name = value["uniform"].GetString();
bgfx_uniform* uniform = effect->uniform(name);
+
assert(uniform != nullptr);
if (value.HasMember("slider"))
diff --git a/src/osd/modules/render/bgfx/fs_ntsc_decode.sc b/src/osd/modules/render/bgfx/fs_ntsc_decode.sc
index fa40850ff58..8479377817c 100644
--- a/src/osd/modules/render/bgfx/fs_ntsc_decode.sc
+++ b/src/osd/modules/render/bgfx/fs_ntsc_decode.sc
@@ -31,20 +31,6 @@ SAMPLER2D(DiffuseSampler, 0);
// Constants
//-----------------------------------------------------------------------------
-const vec4 PI = vec4(3.1415927, 3.1415927, 3.1415927, 3.1415927);
-const vec4 PI2 = vec4(6.2831854, 6.2831854, 6.2831854, 6.2831854);
-
-const vec4 YDot = vec4(0.299, 0.587, 0.114, 0.0);
-const vec4 IDot = vec4(0.595716, -0.274453, -0.321263, 0.0);
-const vec4 QDot = vec4(0.211456, -0.522591, 0.311135, 0.0);
-
-const vec3 RDot = vec3(1.0, 0.956, 0.621);
-const vec3 GDot = vec3(1.0, -0.272, -0.647);
-const vec3 BDot = vec3(1.0, -1.106, 1.703);
-
-const vec4 OffsetX = vec4(0.0, 0.25, 0., 0.75);
-const vec4 NotchOffset = vec4(0.0, 1.0, 2.0, 3.0);
-
void main()
{
vec4 BaseTexel = texture2D(DiffuseSampler, v_texcoord0.xy);
@@ -68,6 +54,9 @@ void main()
vec4 Fc_i_2 = Fc_i * two;
vec4 Fc_q_2 = Fc_q * two;
+ const vec4 PI = vec4(3.1415927, 3.1415927, 3.1415927, 3.1415927);
+ const vec4 PI2 = vec4(6.2831854, 6.2831854, 6.2831854, 6.2831854);
+
vec4 W = PI2 * u_cc_value.xxxx * u_scan_time.xxxx;
vec4 WoPI = W / PI;
@@ -81,16 +70,15 @@ void main()
vec4 Cy = v_texcoord0.yyyy;
vec4 VPosition = vec4(Cy / u_screenrect.y);
- vec4 i = zero;
- /* for (int i = 0; i < 64; i = i + 4) */
- /* { &*/
- // float n = i - 32.0;
- // vec4 n4 = vec4(n, n, n, n) + NotchOffset;
- vec4 n4 = i + NotchOffset;
+ for (int index = 0; index < 64; index = index + 4)
+ {
+ float n = float(index);
+ vec4 n4 = vec4(n, n, n, n) + vec4(0.0, 1.0, 2.0, 3.0);
vec4 Cx = v_texcoord0.xxxx + SourceTexelDims.xxxx * (n4 * quarter);
vec4 HPosition = Cx / u_screenrect.xxxx;
+ // theory: What if we put white in the input of the NTSC decode shader?
vec4 C = texture2D(DiffuseSampler, vec2(Cx.x, Cy.x));
vec4 T = HPosition + HOffset + VPosition * VScale;
@@ -104,13 +92,20 @@ void main()
vec4 SincIIn = Fc_i * PI2 * n4;
vec4 SincQIn = Fc_q * PI2 * n4;
+ SincYIn1 = SincYIn1 == zero ? one : SincYIn1;
+ SincYIn2 = SincYIn2 == zero ? one : SincYIn2;
+ SincYIn3 = SincYIn3 == zero ? one : SincYIn3;
+
+ SincIIn = SincIIn == zero ? one : SincIIn;
+ SincQIn = SincQIn == zero ? one : SincQIn;
+
vec4 SincY1 = SincYIn1 != zero ? sin(SincYIn1) / SincYIn1 : one;
vec4 SincY2 = SincYIn2 != zero ? sin(SincYIn2) / SincYIn2 : one;
vec4 SincY3 = SincYIn3 != zero ? sin(SincYIn3) / SincYIn3 : one;
vec4 IdealY = (Fc_y1 * two * SincY1 - Fc_y2 * two * SincY2) + Fc_y3 * two * SincY3;
vec4 IdealI = Fc_i_2 * (SincIIn != zero ? sin(SincIIn) / SincIIn : one);
- vec4 IdealQ = Fc_q_2 * (SincQIn != zero ? sin(SincIIn) / SincIIn : one);
+ vec4 IdealQ = Fc_q_2 * (SincQIn != zero ? sin(SincQIn) / SincQIn : one);
vec4 FilterY = SincKernel * IdealY;
vec4 FilterI = SincKernel * IdealI;
@@ -119,17 +114,18 @@ void main()
YAccum = YAccum + C * FilterY;
IAccum = IAccum + C * cos(WT) * FilterI;
QAccum = QAccum + C * sin(WT) * FilterQ;
- /* } */
-
+ }
+
vec3 YIQ = vec3(
(YAccum.r + YAccum.g + YAccum.b + YAccum.a),
(IAccum.r + IAccum.g + IAccum.b + IAccum.a) * 2.0,
(QAccum.r + QAccum.g + QAccum.b + QAccum.a) * 2.0);
vec3 RGB = vec3(
- dot(YIQ, RDot),
- dot(YIQ, GDot),
- dot(YIQ, BDot));
+ dot(YIQ, vec3(1.0, 0.956, 0.621)),
+ dot(YIQ, vec3(1.0, -0.272, -0.647)),
+ dot(YIQ, vec3(1.0, -1.106, 1.703)));
+ // RGB obviously contains a NaN somewhere along the line! Returns black if vec4 etc. are included, white if just vec4(1.0)
gl_FragColor = vec4(RGB, BaseTexel.a) * v_color0;
}
diff --git a/src/osd/modules/render/bgfx/fs_ntsc_encode.sc b/src/osd/modules/render/bgfx/fs_ntsc_encode.sc
index 5cf8a8ada26..5812b01a8a0 100644
--- a/src/osd/modules/render/bgfx/fs_ntsc_encode.sc
+++ b/src/osd/modules/render/bgfx/fs_ntsc_encode.sc
@@ -27,27 +27,16 @@ SAMPLER2D(DiffuseSampler, 0);
// Constants
//-----------------------------------------------------------------------------
-const vec4 PI = vec4(3.1415927, 3.1415927, 3.1415927, 3.1415927);
-const vec4 PI2 = vec4(6.2831854, 6.2831854, 6.2831854, 6.2831854);
-
-const vec4 YDot = vec4(0.299, 0.587, 0.114, 0.0);
-const vec4 IDot = vec4(0.595716, -0.274453, -0.321263, 0.0);
-const vec4 QDot = vec4(0.211456, -0.522591, 0.311135, 0.0);
-
-const vec4 OffsetX = vec4(0.0, 0.25, 0., 0.75);
-const vec4 NotchOffset = vec4(0.0, 1.0, 2.0, 3.0);
-
void main()
{
- vec2 SourceTexelDims = u_texsize.xy;
vec2 SourceRes = (1.0 / u_texsize.xy) * u_screenrect.xy;
vec2 PValueSourceTexel = vec2(u_p_value.x, 0.0) * u_texsize.xy;
- vec2 C0 = v_texcoord0 + PValueSourceTexel * vec2(OffsetX.x, 0.0);
- vec2 C1 = v_texcoord0 + PValueSourceTexel * vec2(OffsetX.y, 0.0);
- vec2 C2 = v_texcoord0 + PValueSourceTexel * vec2(OffsetX.z, 0.0);
- vec2 C3 = v_texcoord0 + PValueSourceTexel * vec2(OffsetX.w, 0.0);
+ vec2 C0 = v_texcoord0 + PValueSourceTexel * vec2(0.0, 0.0);
+ vec2 C1 = v_texcoord0 + PValueSourceTexel * vec2(0.25, 0.0);
+ vec2 C2 = v_texcoord0 + PValueSourceTexel * vec2(0.5, 0.0);
+ vec2 C3 = v_texcoord0 + PValueSourceTexel * vec2(0.75, 0.0);
vec4 Cx = vec4(C0.x, C1.x, C2.x, C3.x);
vec4 Cy = vec4(C0.y, C1.y, C2.y, C3.y);
vec4 Texel0 = texture2D(DiffuseSampler, C0);
@@ -55,13 +44,18 @@ void main()
vec4 Texel2 = texture2D(DiffuseSampler, C2);
vec4 Texel3 = texture2D(DiffuseSampler, C3);
- vec4 HPosition = Cx / u_screenrect.x;
- vec4 VPosition = Cy / u_screenrect.y;
+ vec4 HPosition = Cx / u_screenrect.xxxx;
+ vec4 VPosition = Cy / u_screenrect.yyyy;
+ const vec4 YDot = vec4(0.299, 0.587, 0.114, 0.0);
+ const vec4 IDot = vec4(0.595716, -0.274453, -0.321263, 0.0);
+ const vec4 QDot = vec4(0.211456, -0.522591, 0.311135, 0.0);
vec4 Y = vec4(dot(Texel0, YDot), dot(Texel1, YDot), dot(Texel2, YDot), dot(Texel3, YDot));
vec4 I = vec4(dot(Texel0, IDot), dot(Texel1, IDot), dot(Texel2, IDot), dot(Texel3, IDot));
vec4 Q = vec4(dot(Texel0, QDot), dot(Texel1, QDot), dot(Texel2, QDot), dot(Texel3, QDot));
+ const vec4 PI = vec4(3.1415927, 3.1415927, 3.1415927, 3.1415927);
+ const vec4 PI2 = vec4(6.2831854, 6.2831854, 6.2831854, 6.2831854);
vec4 W = PI2 * u_cc_value.xxxx * u_scan_time.xxxx;
vec4 WoPI = W / PI;