Fix D3D11 mix-blending when the source alpha is 0. (bug 1281593 part 1, r=mstange)
authorDavid Anderson <danderson@mozilla.com>
Tue, 02 Aug 2016 11:43:15 -0700
changeset 307866 7d1cec49be7a45ae49f08f0eff16c8fe2d16bbee
parent 307865 b9a1e78400a27b633dda90fa2434daa36e161de5
child 307867 8a8ee572051dbc143881719e1ae0b42a83017d47
push id30521
push usercbook@mozilla.com
push dateWed, 03 Aug 2016 15:04:18 +0000
treeherdermozilla-central@7f1b2e71efdc [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmstange
bugs1281593
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Fix D3D11 mix-blending when the source alpha is 0. (bug 1281593 part 1, r=mstange)
gfx/layers/d3d11/CompositorD3D11.hlsl
gfx/layers/d3d11/CompositorD3D11Shaders.h
--- a/gfx/layers/d3d11/CompositorD3D11.hlsl
+++ b/gfx/layers/d3d11/CompositorD3D11.hlsl
@@ -384,17 +384,17 @@ float4 BlendShader(const VS_BLEND_OUTPUT
   float4 source = ComputeBlendSourceColor(aVertex);
 
   // Shortcut when the backdrop or source alpha is 0, otherwise we may leak
   // infinity into the blend function and return incorrect results.
   if (backdrop.a == 0.0) {
     return source;
   }
   if (source.a == 0.0) {
-    return backdrop;
+    return float4(0, 0, 0, 0);
   }
 
   // The spec assumes there is no premultiplied alpha. The backdrop is always
   // premultiplied, so undo the premultiply. If the source is premultiplied we
   // must fix that as well.
   backdrop.rgb /= backdrop.a;
   if (iBlendConfig.w) {
     source.rgb /= source.a;
--- a/gfx/layers/d3d11/CompositorD3D11Shaders.h
+++ b/gfx/layers/d3d11/CompositorD3D11Shaders.h
@@ -6116,85 +6116,85 @@ ShaderBytes sLayerQuadBlendMaskVS = { La
     cmp r13.y, r5.x, r5.z, r1.w
     add r14, -r4.xyzx, -c11.yyyw
     rsq r1.w, r8.x
     rcp r1.w, r1.w
     cmp r1.w, r12.z, r10.x, r1.w
     mad r1.w, r6.x, -r0.w, r1.w
     mad r1.w, r9.x, r1.w, r8.x
     mad r9, r6.xyzx, -r0.w, -c11.wwwy
-    mad r10.xyz, r6, r0.w, c3.x
-    mul r10.xyz, r10, r10
+    mad r6.xyz, r6, r0.w, c3.x
+    mul r6.xyz, r6, r6
     mad r0.w, r11.x, -r9.w, r8.x
     cmp r13.x, r14.w, r0.w, r1.w
     cmp r0.xyz, -r7.z, r13, r0
-    add r11.xyz, r8, r8
-    mad r13.xyz, r4, -c3.y, r11
-    add r13.xyz, r13, c3.x
-    mad r15.xyz, r4, -r11, r13
-    mul r11.xyz, r4, r11
-    add r16.xyz, r4, r4
-    mul r17.xyz, r8, r16
-    mad r13.xyz, r16, -r8, r13
-    cmp r9.xyz, r9, r11, r13
-    cmp r5.yz, r5.xxyw, r17, r15
-    cmp r5.x, r14.w, r17.x, r15.x
+    add r10.xyz, r8, r8
+    mad r11.xyz, r4, -c3.y, r10
+    add r11.xyz, r11, c3.x
+    mad r13.xyz, r4, -r10, r11
+    mul r10.xyz, r4, r10
+    add r15.xyz, r4, r4
+    mul r16.xyz, r8, r15
+    mad r11.xyz, r15, -r8, r11
+    cmp r9.xyz, r9, r10, r11
+    cmp r5.yz, r5.xxyw, r16, r13
+    cmp r5.x, r14.w, r16.x, r13.x
     cmp r0.xyz, -r7.y, r5, r0
     rcp r0.w, r4.x
     mad r0.w, r9.w, -r0.w, -c3.x
     max r1.w, r0.w, -c11.z
     mul r5.xyz, r4, r4
     cmp r0.w, -r5.x, -c11.z, r1.w
-    cmp r11.x, -r10.x, -c3.x, r0.w
+    cmp r10.x, -r6.x, -c3.x, r0.w
     rcp r0.w, r4.y
     mad r0.w, r12.x, -r0.w, -c3.x
     max r1.w, r0.w, -c11.z
     cmp r0.w, -r5.y, -c11.z, r1.w
-    cmp r11.y, -r10.y, -c3.x, r0.w
+    cmp r10.y, -r6.y, -c3.x, r0.w
     rcp r0.w, r4.z
     mad r0.w, r12.y, -r0.w, -c3.x
     max r1.w, r0.w, -c11.z
     cmp r0.w, -r5.z, -c11.z, r1.w
-    cmp r11.z, -r10.z, -c3.x, r0.w
-    cmp r0.xyz, -r7.x, r11, r0
+    cmp r10.z, -r6.z, -c3.x, r0.w
+    cmp r0.xyz, -r7.x, r10, r0
     add r5, r4.w, c5
     mul r5, r5, r5
-    add r7.xyz, r4, c3.x
-    mul r7.xyz, r7, r7
+    add r6.xyz, r4, c3.x
+    mul r6.xyz, r6, r6
     rcp r0.w, r14.x
     mul r0.w, r0.w, r8.x
     min r1.w, r0.w, -c3.x
-    cmp r0.w, -r7.x, -c3.x, r1.w
-    mul r10.xyz, r8, r8
-    cmp r11.x, -r10.x, -c11.z, r0.w
+    cmp r0.w, -r6.x, -c3.x, r1.w
+    mul r7.xyz, r8, r8
+    cmp r10.x, -r7.x, -c11.z, r0.w
     rcp r0.w, r14.y
     rcp r1.w, r14.z
     mul r1.w, r1.w, r8.z
     min r2.w, r1.w, -c3.x
-    cmp r1.w, -r7.z, -c3.x, r2.w
-    cmp r11.z, -r10.z, -c11.z, r1.w
+    cmp r1.w, -r6.z, -c3.x, r2.w
+    cmp r10.z, -r7.z, -c11.z, r1.w
     mul r0.w, r0.w, r8.y
     min r1.w, r0.w, -c3.x
-    cmp r0.w, -r7.y, -c3.x, r1.w
-    cmp r11.y, -r10.y, -c11.z, r0.w
-    cmp r0.xyz, -r5.w, r11, r0
-    max r7.xyz, r8, r4
-    min r10.xyz, r4, r8
-    cmp r0.xyz, -r5.z, r7, r0
-    cmp r0.xyz, -r5.y, r10, r0
+    cmp r0.w, -r6.y, -c3.x, r1.w
+    cmp r10.y, -r7.y, -c11.z, r0.w
+    cmp r0.xyz, -r5.w, r10, r0
+    max r6.xyz, r8, r4
+    min r7.xyz, r4, r8
+    cmp r0.xyz, -r5.z, r6, r0
+    cmp r0.xyz, -r5.y, r7, r0
     cmp r0.xyz, -r5.x, r9, r0
     cmp r0.xyz, -r10.w, r1, r0
     cmp r0.xyz, -c2.z, r2, r0
     lrp r1.xyz, r6.w, r0, r4
+    mul r1.w, r6.w, r6.w
     mul r0.xyz, r3.w, r1
     mul r1.x, r3.w, r3.w
     mov r0.w, r3.w
-    cmp r0, -r1.x, r6, r0
-    mul r1.x, r6.w, r6.w
-    cmp r0, -r1.x, r3, r0
+    cmp r0, -r1.x, -c11.z, r0
+    cmp r0, -r1.w, r3, r0
     mov oC0, r0
 
 // approximately 326 instruction slots used (6 texture, 320 arithmetic)
 ps_4_0
 dcl_constantbuffer CB0[3], immediateIndexed
 dcl_sampler s0, mode_default
 dcl_resource_texture2d (float,float,float,float) t0
 dcl_resource_texture2d (float,float,float,float) t1
@@ -6295,17 +6295,17 @@ endif
 movc r1.xyzw, r2.xxxx, r1.xyzw, l(0,0,0,1.000000)
 eq r2.x, r0.w, l(0.000000)
 if_nz r2.x
   mov o0.xyzw, r1.xyzw
   ret 
 endif 
 eq r2.x, r1.w, l(0.000000)
 if_nz r2.x
-  mov o0.xyzw, r0.xyzw
+  mov o0.xyzw, l(0,0,0,0)
   ret 
 endif 
 div r0.xyz, r0.xyzx, r0.wwww
 div r2.xyz, r1.xyzx, r1.wwww
 movc r1.xyz, cb0[2].wwww, r2.xyzx, r1.xyzx
 mul r2.xyz, r0.xyzx, r1.xyzx
 add r3.xyz, r0.xyzx, r1.xyzx
 mad r4.xyz, -r0.xyzx, r1.xyzx, r3.xyzx
@@ -6546,25 +6546,25 @@ mad r0.xyz, r2.xxxx, r1.xyzx, r0.xyzx
 mul o0.xyz, r1.wwww, r0.xyzx
 mov o0.w, r1.w
 ret 
 // Approximately 339 instruction slots used
 #endif
 
 const BYTE BlendShader[] =
 {
-     68,  88,  66,  67, 122, 174, 
-    220,  58, 170,  47,  87,  82, 
-     85,   5, 178,  49, 217, 101, 
-    104, 140,   1,   0,   0,   0, 
-    184,  67,   0,   0,   6,   0, 
+     68,  88,  66,  67, 112,  63, 
+    111,  12,  13,  48, 235, 163, 
+     54,  75,  30,  70,  47,  59, 
+    134, 187,   1,   0,   0,   0, 
+    196,  67,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
-     92,  23,   0,   0,   8,  63, 
-      0,   0, 132,  63,   0,   0, 
-    252,  66,   0,   0, 132,  67, 
+     92,  23,   0,   0,  20,  63, 
+      0,   0, 144,  63,   0,   0, 
+      8,  67,   0,   0, 144,  67, 
       0,   0,  65, 111, 110,  57, 
      28,  23,   0,   0,  28,  23, 
       0,   0,   0,   2, 255, 255, 
     200,  22,   0,   0,  84,   0, 
       0,   0,   2,   0,  60,   0, 
       0,   0,  84,   0,   0,   0, 
      84,   0,   6,   0,  36,   0, 
       0,   0,  84,   0,   0,   0, 
@@ -7337,65 +7337,65 @@ const BYTE BlendShader[] =
     255, 129,   1,   0, 255, 128, 
       4,   0,   0,   4,   1,   0, 
       8, 128,   9,   0,   0, 128, 
       1,   0, 255, 128,   8,   0, 
       0, 128,   4,   0,   0,   4, 
       9,   0,  15, 128,   6,   0, 
      36, 128,   0,   0, 255, 129, 
      11,   0, 127, 161,   4,   0, 
-      0,   4,  10,   0,   7, 128, 
+      0,   4,   6,   0,   7, 128, 
       6,   0, 228, 128,   0,   0, 
     255, 128,   3,   0,   0, 160, 
-      5,   0,   0,   3,  10,   0, 
-      7, 128,  10,   0, 228, 128, 
-     10,   0, 228, 128,   4,   0, 
+      5,   0,   0,   3,   6,   0, 
+      7, 128,   6,   0, 228, 128, 
+      6,   0, 228, 128,   4,   0, 
       0,   4,   0,   0,   8, 128, 
      11,   0,   0, 128,   9,   0, 
     255, 129,   8,   0,   0, 128, 
      88,   0,   0,   4,  13,   0, 
       1, 128,  14,   0, 255, 128, 
       0,   0, 255, 128,   1,   0, 
     255, 128,  88,   0,   0,   4, 
       0,   0,   7, 128,   7,   0, 
     170, 129,  13,   0, 228, 128, 
       0,   0, 228, 128,   2,   0, 
-      0,   3,  11,   0,   7, 128, 
+      0,   3,  10,   0,   7, 128, 
       8,   0, 228, 128,   8,   0, 
     228, 128,   4,   0,   0,   4, 
-     13,   0,   7, 128,   4,   0, 
+     11,   0,   7, 128,   4,   0, 
     228, 128,   3,   0,  85, 161, 
-     11,   0, 228, 128,   2,   0, 
-      0,   3,  13,   0,   7, 128, 
-     13,   0, 228, 128,   3,   0, 
-      0, 160,   4,   0,   0,   4, 
-     15,   0,   7, 128,   4,   0, 
-    228, 128,  11,   0, 228, 129, 
-     13,   0, 228, 128,   5,   0, 
+     10,   0, 228, 128,   2,   0, 
       0,   3,  11,   0,   7, 128, 
-      4,   0, 228, 128,  11,   0, 
+     11,   0, 228, 128,   3,   0, 
+      0, 160,   4,   0,   0,   4, 
+     13,   0,   7, 128,   4,   0, 
+    228, 128,  10,   0, 228, 129, 
+     11,   0, 228, 128,   5,   0, 
+      0,   3,  10,   0,   7, 128, 
+      4,   0, 228, 128,  10,   0, 
     228, 128,   2,   0,   0,   3, 
-     16,   0,   7, 128,   4,   0, 
+     15,   0,   7, 128,   4,   0, 
     228, 128,   4,   0, 228, 128, 
-      5,   0,   0,   3,  17,   0, 
+      5,   0,   0,   3,  16,   0, 
       7, 128,   8,   0, 228, 128, 
-     16,   0, 228, 128,   4,   0, 
-      0,   4,  13,   0,   7, 128, 
-     16,   0, 228, 128,   8,   0, 
-    228, 129,  13,   0, 228, 128, 
+     15,   0, 228, 128,   4,   0, 
+      0,   4,  11,   0,   7, 128, 
+     15,   0, 228, 128,   8,   0, 
+    228, 129,  11,   0, 228, 128, 
      88,   0,   0,   4,   9,   0, 
       7, 128,   9,   0, 228, 128, 
-     11,   0, 228, 128,  13,   0, 
+     10,   0, 228, 128,  11,   0, 
     228, 128,  88,   0,   0,   4, 
       5,   0,   6, 128,   5,   0, 
-    208, 128,  17,   0, 228, 128, 
-     15,   0, 228, 128,  88,   0, 
+    208, 128,  16,   0, 228, 128, 
+     13,   0, 228, 128,  88,   0, 
       0,   4,   5,   0,   1, 128, 
-     14,   0, 255, 128,  17,   0, 
-      0, 128,  15,   0,   0, 128, 
+     14,   0, 255, 128,  16,   0, 
+      0, 128,  13,   0,   0, 128, 
      88,   0,   0,   4,   0,   0, 
       7, 128,   7,   0,  85, 129, 
       5,   0, 228, 128,   0,   0, 
     228, 128,   6,   0,   0,   2, 
       0,   0,   8, 128,   4,   0, 
       0, 128,   4,   0,   0,   4, 
       0,   0,   8, 128,   9,   0, 
     255, 128,   0,   0, 255, 129, 
@@ -7404,157 +7404,157 @@ const BYTE BlendShader[] =
       0,   0, 255, 128,  11,   0, 
     170, 161,   5,   0,   0,   3, 
       5,   0,   7, 128,   4,   0, 
     228, 128,   4,   0, 228, 128, 
      88,   0,   0,   4,   0,   0, 
       8, 128,   5,   0,   0, 129, 
      11,   0, 170, 161,   1,   0, 
     255, 128,  88,   0,   0,   4, 
-     11,   0,   1, 128,  10,   0, 
+     10,   0,   1, 128,   6,   0, 
       0, 129,   3,   0,   0, 161, 
       0,   0, 255, 128,   6,   0, 
       0,   2,   0,   0,   8, 128, 
       4,   0,  85, 128,   4,   0, 
       0,   4,   0,   0,   8, 128, 
      12,   0,   0, 128,   0,   0, 
     255, 129,   3,   0,   0, 161, 
      11,   0,   0,   3,   1,   0, 
       8, 128,   0,   0, 255, 128, 
      11,   0, 170, 161,  88,   0, 
       0,   4,   0,   0,   8, 128, 
       5,   0,  85, 129,  11,   0, 
     170, 161,   1,   0, 255, 128, 
-     88,   0,   0,   4,  11,   0, 
-      2, 128,  10,   0,  85, 129, 
+     88,   0,   0,   4,  10,   0, 
+      2, 128,   6,   0,  85, 129, 
       3,   0,   0, 161,   0,   0, 
     255, 128,   6,   0,   0,   2, 
       0,   0,   8, 128,   4,   0, 
     170, 128,   4,   0,   0,   4, 
       0,   0,   8, 128,  12,   0, 
      85, 128,   0,   0, 255, 129, 
       3,   0,   0, 161,  11,   0, 
       0,   3,   1,   0,   8, 128, 
       0,   0, 255, 128,  11,   0, 
     170, 161,  88,   0,   0,   4, 
       0,   0,   8, 128,   5,   0, 
     170, 129,  11,   0, 170, 161, 
       1,   0, 255, 128,  88,   0, 
-      0,   4,  11,   0,   4, 128, 
-     10,   0, 170, 129,   3,   0, 
+      0,   4,  10,   0,   4, 128, 
+      6,   0, 170, 129,   3,   0, 
       0, 161,   0,   0, 255, 128, 
      88,   0,   0,   4,   0,   0, 
       7, 128,   7,   0,   0, 129, 
-     11,   0, 228, 128,   0,   0, 
+     10,   0, 228, 128,   0,   0, 
     228, 128,   2,   0,   0,   3, 
       5,   0,  15, 128,   4,   0, 
     255, 128,   5,   0, 228, 160, 
       5,   0,   0,   3,   5,   0, 
      15, 128,   5,   0, 228, 128, 
       5,   0, 228, 128,   2,   0, 
-      0,   3,   7,   0,   7, 128, 
+      0,   3,   6,   0,   7, 128, 
       4,   0, 228, 128,   3,   0, 
       0, 160,   5,   0,   0,   3, 
-      7,   0,   7, 128,   7,   0, 
-    228, 128,   7,   0, 228, 128, 
+      6,   0,   7, 128,   6,   0, 
+    228, 128,   6,   0, 228, 128, 
       6,   0,   0,   2,   0,   0, 
       8, 128,  14,   0,   0, 128, 
       5,   0,   0,   3,   0,   0, 
       8, 128,   0,   0, 255, 128, 
       8,   0,   0, 128,  10,   0, 
       0,   3,   1,   0,   8, 128, 
       0,   0, 255, 128,   3,   0, 
       0, 161,  88,   0,   0,   4, 
-      0,   0,   8, 128,   7,   0, 
+      0,   0,   8, 128,   6,   0, 
       0, 129,   3,   0,   0, 161, 
       1,   0, 255, 128,   5,   0, 
-      0,   3,  10,   0,   7, 128, 
+      0,   3,   7,   0,   7, 128, 
       8,   0, 228, 128,   8,   0, 
     228, 128,  88,   0,   0,   4, 
-     11,   0,   1, 128,  10,   0, 
+     10,   0,   1, 128,   7,   0, 
       0, 129,  11,   0, 170, 161, 
       0,   0, 255, 128,   6,   0, 
       0,   2,   0,   0,   8, 128, 
      14,   0,  85, 128,   6,   0, 
       0,   2,   1,   0,   8, 128, 
      14,   0, 170, 128,   5,   0, 
       0,   3,   1,   0,   8, 128, 
       1,   0, 255, 128,   8,   0, 
     170, 128,  10,   0,   0,   3, 
       2,   0,   8, 128,   1,   0, 
     255, 128,   3,   0,   0, 161, 
      88,   0,   0,   4,   1,   0, 
-      8, 128,   7,   0, 170, 129, 
+      8, 128,   6,   0, 170, 129, 
       3,   0,   0, 161,   2,   0, 
     255, 128,  88,   0,   0,   4, 
-     11,   0,   4, 128,  10,   0, 
+     10,   0,   4, 128,   7,   0, 
     170, 129,  11,   0, 170, 161, 
       1,   0, 255, 128,   5,   0, 
       0,   3,   0,   0,   8, 128, 
       0,   0, 255, 128,   8,   0, 
      85, 128,  10,   0,   0,   3, 
       1,   0,   8, 128,   0,   0, 
     255, 128,   3,   0,   0, 161, 
      88,   0,   0,   4,   0,   0, 
-      8, 128,   7,   0,  85, 129, 
+      8, 128,   6,   0,  85, 129, 
       3,   0,   0, 161,   1,   0, 
     255, 128,  88,   0,   0,   4, 
-     11,   0,   2, 128,  10,   0, 
+     10,   0,   2, 128,   7,   0, 
      85, 129,  11,   0, 170, 161, 
       0,   0, 255, 128,  88,   0, 
       0,   4,   0,   0,   7, 128, 
-      5,   0, 255, 129,  11,   0, 
+      5,   0, 255, 129,  10,   0, 
     228, 128,   0,   0, 228, 128, 
-     11,   0,   0,   3,   7,   0, 
+     11,   0,   0,   3,   6,   0, 
       7, 128,   8,   0, 228, 128, 
       4,   0, 228, 128,  10,   0, 
-      0,   3,  10,   0,   7, 128, 
+      0,   3,   7,   0,   7, 128, 
       4,   0, 228, 128,   8,   0, 
     228, 128,  88,   0,   0,   4, 
       0,   0,   7, 128,   5,   0, 
-    170, 129,   7,   0, 228, 128, 
+    170, 129,   6,   0, 228, 128, 
       0,   0, 228, 128,  88,   0, 
       0,   4,   0,   0,   7, 128, 
-      5,   0,  85, 129,  10,   0, 
+      5,   0,  85, 129,   7,   0, 
     228, 128,   0,   0, 228, 128, 
      88,   0,   0,   4,   0,   0, 
       7, 128,   5,   0,   0, 129, 
       9,   0, 228, 128,   0,   0, 
     228, 128,  88,   0,   0,   4, 
       0,   0,   7, 128,  10,   0, 
     255, 129,   1,   0, 228, 128, 
       0,   0, 228, 128,  88,   0, 
       0,   4,   0,   0,   7, 128, 
       2,   0, 170, 161,   2,   0, 
     228, 128,   0,   0, 228, 128, 
      18,   0,   0,   4,   1,   0, 
       7, 128,   6,   0, 255, 128, 
       0,   0, 228, 128,   4,   0, 
     228, 128,   5,   0,   0,   3, 
-      0,   0,   7, 128,   3,   0, 
-    255, 128,   1,   0, 228, 128, 
-      5,   0,   0,   3,   1,   0, 
-      1, 128,   3,   0, 255, 128, 
-      3,   0, 255, 128,   1,   0, 
-      0,   2,   0,   0,   8, 128, 
-      3,   0, 255, 128,  88,   0, 
+      1,   0,   8, 128,   6,   0, 
+    255, 128,   6,   0, 255, 128, 
+      5,   0,   0,   3,   0,   0, 
+      7, 128,   3,   0, 255, 128, 
+      1,   0, 228, 128,   5,   0, 
+      0,   3,   1,   0,   1, 128, 
+      3,   0, 255, 128,   3,   0, 
+    255, 128,   1,   0,   0,   2, 
+      0,   0,   8, 128,   3,   0, 
+    255, 128,  88,   0,   0,   4, 
+      0,   0,  15, 128,   1,   0, 
+      0, 129,  11,   0, 170, 161, 
+      0,   0, 228, 128,  88,   0, 
       0,   4,   0,   0,  15, 128, 
-      1,   0,   0, 129,   6,   0, 
-    228, 128,   0,   0, 228, 128, 
-      5,   0,   0,   3,   1,   0, 
-      1, 128,   6,   0, 255, 128, 
-      6,   0, 255, 128,  88,   0, 
-      0,   4,   0,   0,  15, 128, 
-      1,   0,   0, 129,   3,   0, 
+      1,   0, 255, 129,   3,   0, 
     228, 128,   0,   0, 228, 128, 
       1,   0,   0,   2,   0,   8, 
      15, 128,   0,   0, 228, 128, 
     255, 255,   0,   0,  83,  72, 
-     68,  82, 164,  39,   0,   0, 
-     64,   0,   0,   0, 233,   9, 
+     68,  82, 176,  39,   0,   0, 
+     64,   0,   0,   0, 236,   9, 
       0,   0,  89,   0,   0,   4, 
      70, 142,  32,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
      90,   0,   0,   3,   0,  96, 
      16,   0,   0,   0,   0,   0, 
      88,  24,   0,   4,   0, 112, 
      16,   0,   0,   0,   0,   0, 
      85,  85,   0,   0,  88,  24, 
@@ -7957,19 +7957,21 @@ const BYTE BlendShader[] =
       0,   1,  21,   0,   0,   1, 
      24,   0,   0,   7,  18,   0, 
      16,   0,   2,   0,   0,   0, 
      58,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
       0,   0,   0,   0,  31,   0, 
       4,   3,  10,   0,  16,   0, 
       2,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
+      0,   8, 242,  32,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
      62,   0,   0,   1,  21,   0, 
       0,   1,  14,   0,   0,   7, 
     114,   0,  16,   0,   0,   0, 
       0,   0,  70,   2,  16,   0, 
       0,   0,   0,   0, 246,  15, 
      16,   0,   0,   0,   0,   0, 
      14,   0,   0,   7, 114,   0, 
      16,   0,   2,   0,   0,   0,