diff -u -r -p mythtv.100/libs/libmythtv/openglvideo.cpp mythtv/libs/libmythtv/openglvideo.cpp
--- mythtv.100/libs/libmythtv/openglvideo.cpp	2011-01-23 12:29:34.000000000 +0100
+++ mythtv/libs/libmythtv/openglvideo.cpp	2011-01-23 17:51:34.766409002 +0100
@@ -205,11 +205,8 @@ bool OpenGLVideo::Init(MythRenderOpenGL 
     }
 
     // decide on best input texture type
-    if ((GL_RGBA != videoTextureType) && (defaultUpsize != kGLFilterBicubic) &&
-        (gl_features & kGLExtRect))
-    {
+    if ((GL_RGBA != videoTextureType) && (gl_features & kGLExtRect))
         textureType = gl_context->GetTextureType(textureRects);
-    }
 
     // Create initial input texture and associated filter stage
     GLuint tex = CreateVideoTexture(video_dim, inputTextureSize);
@@ -1445,17 +1442,17 @@ yadif_setup +
 
 static const QString bicubic =
 "TEMP coord, coord2, cdelta, parmx, parmy, a, b, c, d;\n"
-"MAD coord.xy, fragment.texcoord[0], {%6, %7}, {-0.5, -0.5};\n"
+"MAD coord.xy, fragment.texcoord[0], {%6, %7}, {0.5, 0.5};\n"
 "TEX parmx, coord.x, texture[1], 1D;\n"
 "TEX parmy, coord.y, texture[1], 1D;\n"
 "MUL cdelta.xz, parmx.rrgg, {-%5, 0, %5, 0};\n"
 "MUL cdelta.yw, parmy.rrgg, {0, -%3, 0, %3};\n"
 "ADD coord, fragment.texcoord[0].xyxy, cdelta.xyxw;\n"
 "ADD coord2, fragment.texcoord[0].xyxy, cdelta.zyzw;\n"
-"TEX a, coord.xyxy, texture[0], 2D;\n"
-"TEX b, coord.zwzw, texture[0], 2D;\n"
-"TEX c, coord2.xyxy, texture[0], 2D;\n"
-"TEX d, coord2.zwzw, texture[0], 2D;\n"
+"TEX a, coord.xyxy, texture[0], %1;\n"
+"TEX b, coord.zwzw, texture[0], %1;\n"
+"TEX c, coord2.xyxy, texture[0], %1;\n"
+"TEX d, coord2.zwzw, texture[0], %1;\n"
 "LRP a, parmy.b, a, b;\n"
 "LRP c, parmy.b, c, d;\n"
 "LRP result.color, parmx.b, a, c;\n";
