VirtualBox

Changeset 22776 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Sep 4, 2009 12:45:02 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
51952
Message:

video hw accel: more accurate shaders

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/VirtualBoxShaders.qrc

    r22638 r22776  
    22 <qresource prefix="/">
    33    <file alias="cconvApplyAYUV.c">shaders/cconvApplyAYUV.c</file>
    4     <file alias="cconvAYUV_void.c">shaders/cconvAYUV_void.c</file>
    54    <file alias="cconvAYUV.c">shaders/cconvAYUV.c</file>
    6     <file alias="cconvBGR_void.c">shaders/cconvBGR_void.c</file>
    75    <file alias="cconvBGR.c">shaders/cconvBGR.c</file>
    8     <file alias="cconvUYVY_void.c">shaders/cconvUYVY_void.c</file>
    96    <file alias="cconvUYVY.c">shaders/cconvUYVY.c</file>
    10     <file alias="cconvYUY2_void.c">shaders/cconvYUY2_void.c</file>
    117    <file alias="cconvYUY2.c">shaders/cconvYUY2.c</file>
    12     <file alias="cconvYV12_void.c">shaders/cconvYV12_void.c</file>
    138    <file alias="cconvYV12.c">shaders/cconvYV12.c</file>
    149    <file alias="ckeyDst_void.c">shaders/ckeyDst_void.c</file>
    1510    <file alias="ckeyDst.c">shaders/ckeyDst.c</file>
    1611    <file alias="mainOverlay.c">shaders/mainOverlay.c</file>
     12    <file alias="mainOverlayNoCKey.c">shaders/mainOverlayNoCKey.c</file>
    1713    <file alias="splitBGRA.c">shaders/splitBGRA.c</file>
    1814 </qresource>
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/include/VBoxFrameBuffer.h

    r22656 r22776  
    299299#include "iprt/stream.h"
    300300#define VBOXQGLLOG(_m) RTPrintf _m
     301#define VBOXQGLLOGREL(_m) do { RTPrintf _m ; LogRel( _m ); } while(0)
    301302#else
    302303#define VBOXQGLLOG(_m)
     304#define VBOXQGLLOGREL(_m) LogRel( _m )
    303305#endif
    304306#define VBOXQGLLOG_ENTER(_m)
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvAYUV.c

    r22640 r22776  
    11#extension GL_ARB_texture_rectangle : enable
    2 
    32uniform sampler2DRect uSrcTex;
    4 
    5 void cconvApplyAYUV(vec4 color);
    6 void cconvAYUV(vec2 srcCoord)
     3void vboxCConvApplyAYUV(vec4 color);
     4void vboxCConv(int srcI)
    75{
     6    vec2 srcCoord = vec2(gl_TexCoord[srcI]);
    87    vec4 color = texture2DRect(uSrcTex, srcCoord);
    9     cconvApplyAYUV(color);
     8    vboxCConvApplyAYUV(color);
    109}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvAYUV_void.c

    r22640 r22776  
    1 void cconvAYUV(vec2 srcCoord)
     1void vboxCConv(int srcI)
    22{}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvApplyAYUV.c

    r22640 r22776  
    1 /* AYUV <-> GL_BGRA_EXT
    2  * A <-> B
    3  * Y <-> G
    4  * U <-> R
    5  * V <-> A */
    6 void cconvApplyAYUV(vec4 color)
     1void vboxCConvApplyAYUV(vec4 color)
    72{
    83    float y, u, v, r, g, b;
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvBGR.c

    r22640 r22776  
    11#extension GL_ARB_texture_rectangle : enable
    2 
    32uniform sampler2DRect uSrcTex;
    4 
    5 void cconvBGR(vec2 srcCoord)
     3void vboxCConv(int srcI)
    64{
     5    vec2 srcCoord = vec2(gl_TexCoord[srcI]);
    76    gl_FragColor = texture2DRect(uSrcTex, vec2(srcCoord.x, srcCoord.y));
    87}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvBGR_void.c

    r22640 r22776  
    1 void cconvBGR(vec2 srcCoord)
     1void vboxCConv(int srcI)
    22{}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvUYVY.c

    r22640 r22776  
    11#extension GL_ARB_texture_rectangle : enable
    2 
    32uniform sampler2DRect uSrcTex;
    4 
    5 void cconvApplyAYUV(vec4 color);
    6 /* texture internalFormat: 4
    7  * size: width/2 X height
    8  * data format: GL_BGRA_EXT
    9  * UYVY ->
    10  * U = B
    11  * V = R
    12  * for even -> Y = G
    13  * for odd  -> Y = A
    14 /* UYVY-rgb888 conversion shader */
    15 /* this is also Y422 and UYNV */
    16 void cconvUYVY(vec2 srcCoord)
     3void vboxCConvApplyAYUV(vec4 color);
     4void vboxCConv(int srcI)
    175{
     6    vec2 srcCoord = vec2(gl_TexCoord[srcI]);
    187    float x = srcCoord.x;
    198    vec4 srcClr = texture2DRect(uSrcTex, vec2(x, srcCoord.y));
     
    3120        y = srcClr.a;
    3221    }
    33     /* convert it to AYUV (for the GL_BGRA_EXT texture this is mapped as follows:
    34      * A -> B
    35      * Y -> G
    36      * U -> R
    37      * V -> A */
    38     cconvApplyAYUV(vec4(u, y, 0.0, v));}
     22    vboxCConvApplyAYUV(vec4(u, y, 0.0, v));}
     23}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvUYVY_void.c

    r22640 r22776  
    1 void cconvUYVY(vec2 srcCoord)
     1void vboxCConv(int srcI)
    22{}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvYUY2.c

    r22640 r22776  
    11#extension GL_ARB_texture_rectangle : enable
    2 
    32uniform sampler2DRect uSrcTex;
    4 
    5 void cconvApplyAYUV(vec4 color);
    6 /* texture internalFormat: 4
    7  * size: width/2 X height
    8  * data format: GL_BGRA_EXT
    9  * YUYV ->
    10  * U = G
    11  * V = A
    12  * for even -> Y = B
    13  * for odd  -> Y = R
    14 /* UYVY-rgb888 conversion shader */
    15 /* this is also YUNV, V422 and YUYV */
    16 void cconvYUY2(vec2 srcCoord)
     3void vboxCConvApplyAYUV(vec4 color);
     4void vboxCConv(int srcI)
    175{
     6    vec2 srcCoord = vec2(gl_TexCoord[srcI]);
    187    float x = srcCoord.x;
    198    vec4 srcClr = texture2DRect(uSrcTex, vec2(x, srcCoord.y));
     
    3120        y = srcClr.r;
    3221    }
    33     /* convert it to AYUV (for the GL_BGRA_EXT texture this is mapped as follows:
    34      * A -> B
    35      * Y -> G
    36      * U -> R
    37      * V -> A */
    38     cconvApplyAYUV(vec4(u, y, 0.0, v));
     22    vboxCConvApplyAYUV(vec4(u, y, 0.0, v));
    3923}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvYUY2_void.c

    r22640 r22776  
    1 void cconvYUY2(vec2 srcCoord)
     1void vboxCConv(int srcI)
    22{}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvYV12.c

    r22640 r22776  
    11#extension GL_ARB_texture_rectangle : enable
    2 
    32uniform sampler2DRect uSrcTex;
    43uniform sampler2DRect uVTex;
    54uniform sampler2DRect uUTex;
    6 
    7 float splitBGRA(vec4 color, float coord);
    8 void cconvApplyAYUV(vec4 color);
    9 /* texture internalFormat: GL_LUMINANCE
    10  * size: width X height
    11  * data format: GL_LUMINANCE
    12  *
    13 /* YV12-rgb888 conversion shader */
    14 void cconvYV12(vec2 srcCoord)
     5float vboxSplitBGRA(vec4 color, float coord);
     6void vboxCConvApplyAYUV(vec4 color);
     7void vboxCConv(int srcI)
    158{
    16     vec4 clrY = texture2DRect(uSrcTex, srcCoord);
    17     vec4 clrV = texture2DRect(uVTex, vec2(gl_TexCoord[2]));
    18     vec4 clrU = texture2DRect(uUTex, vec2(gl_TexCoord[3]));
    19     float y = splitBGRA(clrY, srcCoord.x);
    20     float v = splitBGRA(clrV, gl_TexCoord[2].x);
    21     float u = splitBGRA(clrU, gl_TexCoord[3].x);
    22 
    23     /* convert it to AYUV (for the GL_BGRA_EXT texture this is mapped as follows:
    24      * A -> B
    25      * Y -> G
    26      * U -> R
    27      * V -> A */
    28     cconvApplyAYUV(vec4(u, y, 0.0, v));
    29 //    gl_FragColor = vec4(clrY.r,clrY.r,clrY.r,1.0);
     9    vec2 coordY = vec2(gl_TexCoord[srcI]);
     10    vec2 coordV = vec2(gl_TexCoord[srcI+1]);
     11    vec2 coordU = vec2(gl_TexCoord[srcI+2]);
     12    vec4 clrY = texture2DRect(uSrcTex, vec2(coordY));
     13    vec4 clrV = texture2DRect(uVTex, vec2(coordV));
     14    vec4 clrU = texture2DRect(uUTex, vec2(coordU));
     15    float y = vboxSplitBGRA(clrY, coordY.x);
     16    float v = vboxSplitBGRA(clrV, coordV.x);
     17    float u = vboxSplitBGRA(clrU, coordU.x);
     18    vboxCConvApplyAYUV(vec4(u, y, 0.0, v));
    3019}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/cconvYV12_void.c

    r22640 r22776  
    1 void cconvYV12(vec2 srcCoord)
     1void vboxCConv(int srcI)
    22{}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/ckeyDst.c

    r22640 r22776  
    11#extension GL_ARB_texture_rectangle : enable
    2 
    32uniform sampler2DRect uDstTex;
    43uniform vec4 uDstClr;
    5 
    6 vec2 ckeyDst(void)
     4int vboxCKeyDst(void)
    75{
    86    vec4 dstClr = texture2DRect(uDstTex, vec2(gl_TexCoord[0]));
     
    119        || any(lessThan(difClr, vec3(-0.01, -0.01, -0.01))))
    1210            discard;
    13 //    /* gl_FragColor = texture2DRect(uSrcTex, vec2(gl_TexCoord[1])); */
    14     return vec2(gl_TexCoord[1]);
     11    return 1;
    1512}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/ckeyDst_void.c

    r22640 r22776  
    1 vec2 ckeyDst(void)
     1int vboxCKeyDst(void)
    22{
    3     return vec2(gl_TexCoord[0]);
     3    return 0;
    44}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/mainOverlay.c

    r22640 r22776  
    1 vec2 ckeyDst(void);
    2 void cconvYV12(vec2 srcCoord);
    3 void cconvUYVY(vec2 srcCoord);
    4 void cconvYUY2(vec2 srcCoord);
    5 void cconvAYUV(vec2 srcCoord);
    6 void cconvBGR(vec2 srcCoord);
    7 
     1int vboxCKeyDst(void);
     2void vboxCConv(int srcI);
    83void main(void)
    94{
    10         vec2 srcCoord = ckeyDst();
    11 
    12         cconvYV12(srcCoord);
    13         cconvUYVY(srcCoord);
    14         cconvYUY2(srcCoord);
    15         cconvAYUV(srcCoord);
    16         cconvBGR(srcCoord);
     5        int srci = vboxCKeyDst();
     6        vboxCConv(srci);
    177}
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/shaders/splitBGRA.c

    r22640 r22776  
    1 
    2 float splitBGRA(vec4 color, float coord)
     1float vboxSplitBGRA(vec4 color, float coord)
    32{
    43    int pix = int(coord);
    54        float part = coord - float(pix);
    6         /* todo: do not use if */
    75        if(part < 0.25)
    86                return color.b;
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/src/VBoxFBQGL.cpp

    r22751 r22776  
    2020 */
    2121#if defined (VBOX_GUI_USE_QGL)
     22
     23#define LOG_GROUP LOG_GROUP_GUI
    2224
    2325#include "VBoxFrameBuffer.h"
     
    517519        glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &maxUnits);
    518520
    519         VBOXQGLLOG(("Max Tex Coords (%d), Img Units (%d)\n", maxCoords, maxUnits));
     521        VBOXQGLLOGREL(("Max Tex Coords (%d), Img Units (%d)\n", maxCoords, maxUnits));
    520522        /* take the minimum of those */
    521523        if(maxUnits < maxCoords)
     
    523525        if(maxUnits < 2)
    524526        {
    525             VBOXQGLLOG(("Max Tex Coord or Img Units < 2 disabling MultiTex support\n"));
     527            VBOXQGLLOGREL(("Max Tex Coord or Img Units < 2 disabling MultiTex support\n"));
    526528                break;
    527529        }
     
    709711            );
    710712
    711     VBOXQGLLOG (("gl version string: 0%s\n", str));
     713    VBOXQGLLOGREL (("gl version string: 0%s\n", str));
    712714
    713715    g_vboxVHWAGlVersion = vboxVHWAGlParseVersion(str);
     
    719721    else
    720722    {
    721         VBOXQGLLOG (("gl version: 0x%x\n", g_vboxVHWAGlVersion));
     723        VBOXQGLLOGREL (("gl version: 0x%x\n", g_vboxVHWAGlVersion));
    722724        VBOXQGL_CHECKERR(
    723725                str = glGetString(GL_EXTENSIONS);
     
    726728        const char * pos = strstr((const char *)str, "GL_ARB_multitexture");
    727729        g_GL_ARB_multitexture = pos != NULL;
    728         VBOXQGLLOG (("GL_ARB_multitexture: %d\n", g_GL_ARB_multitexture));
     730        VBOXQGLLOGREL (("GL_ARB_multitexture: %d\n", g_GL_ARB_multitexture));
    729731
    730732        pos = strstr((const char *)str, "GL_ARB_shader_objects");
    731733        g_GL_ARB_shader_objects = pos != NULL;
    732         VBOXQGLLOG (("GL_ARB_shader_objects: %d\n", g_GL_ARB_shader_objects));
     734        VBOXQGLLOGREL (("GL_ARB_shader_objects: %d\n", g_GL_ARB_shader_objects));
    733735
    734736        pos = strstr((const char *)str, "GL_ARB_fragment_shader");
    735737        g_GL_ARB_fragment_shader = pos != NULL;
    736         VBOXQGLLOG (("GL_ARB_fragment_shader: %d\n", g_GL_ARB_fragment_shader));
     738        VBOXQGLLOGREL (("GL_ARB_fragment_shader: %d\n", g_GL_ARB_fragment_shader));
    737739
    738740        pos = strstr((const char *)str, "GL_ARB_pixel_buffer_object");
    739741        g_GL_ARB_pixel_buffer_object = pos != NULL;
    740         VBOXQGLLOG (("GL_ARB_pixel_buffer_object: %d\n", g_GL_ARB_pixel_buffer_object));
     742        VBOXQGLLOGREL (("GL_ARB_pixel_buffer_object: %d\n", g_GL_ARB_pixel_buffer_object));
    741743
    742744        pos = strstr((const char *)str, "GL_ARB_texture_rectangle");
    743745        g_GL_ARB_texture_rectangle = pos != NULL;
    744         VBOXQGLLOG (("GL_ARB_texture_rectangle: %d\n", g_GL_ARB_texture_rectangle));
     746        VBOXQGLLOGREL (("GL_ARB_texture_rectangle: %d\n", g_GL_ARB_texture_rectangle));
    745747
    746748        pos = strstr((const char *)str, "GL_EXT_texture_rectangle");
    747749        g_GL_EXT_texture_rectangle = pos != NULL;
    748         VBOXQGLLOG (("GL_EXT_texture_rectangle: %d\n", g_GL_EXT_texture_rectangle));
     750        VBOXQGLLOGREL (("GL_EXT_texture_rectangle: %d\n", g_GL_EXT_texture_rectangle));
    749751
    750752        pos = strstr((const char *)str, "GL_NV_texture_rectangle");
    751753        g_GL_NV_texture_rectangle = pos != NULL;
    752         VBOXQGLLOG (("GL_NV_texture_rectangle: %d\n", g_GL_NV_texture_rectangle));
     754        VBOXQGLLOGREL (("GL_NV_texture_rectangle: %d\n", g_GL_NV_texture_rectangle));
    753755
    754756        pos = strstr((const char *)str, "GL_ARB_texture_non_power_of_two");
    755757        g_GL_ARB_texture_non_power_of_two = pos != NULL;
    756         VBOXQGLLOG (("GL_ARB_texture_non_power_of_two: %d\n", g_GL_ARB_texture_non_power_of_two));
     758        VBOXQGLLOGREL (("GL_ARB_texture_non_power_of_two: %d\n", g_GL_ARB_texture_non_power_of_two));
    757759
    758760        vboxVHWAGlInitExtSupport(*pContext);
     
    974976    QByteArray asciiStr = program.toAscii();
    975977    const char * contents = asciiStr.constData();
    976     GLint length = (GLint)strlen(contents);
     978    GLint length = -1;
    977979
    978980    VBOXQGL_CHECKERR(
     
    14371439        mShaderCConvApplyAYUV(":/cconvApplyAYUV.c", GL_FRAGMENT_SHADER),
    14381440        mShaderCConvAYUV(":/cconvAYUV.c", GL_FRAGMENT_SHADER),
    1439         mShaderCConvAYUVVoid(":/cconvAYUV_void.c", GL_FRAGMENT_SHADER),
     1441//        mShaderCConvAYUVVoid(":/cconvAYUV_void.c", GL_FRAGMENT_SHADER),
    14401442        mShaderCConvBGR(":/cconvBGR.c", GL_FRAGMENT_SHADER),
    1441         mShaderCConvBGRVoid(":/cconvBGR_void.c", GL_FRAGMENT_SHADER),
     1443//        mShaderCConvBGRVoid(":/cconvBGR_void.c", GL_FRAGMENT_SHADER),
    14421444        mShaderCConvUYVY(":/cconvUYVY.c", GL_FRAGMENT_SHADER),
    1443         mShaderCConvUYVYVoid(":/cconvUYVY_void.c", GL_FRAGMENT_SHADER),
     1445//        mShaderCConvUYVYVoid(":/cconvUYVY_void.c", GL_FRAGMENT_SHADER),
    14441446        mShaderCConvYUY2(":/cconvYUY2.c", GL_FRAGMENT_SHADER),
    1445         mShaderCConvYUY2Void(":/cconvYUY2_void.c", GL_FRAGMENT_SHADER),
     1447//        mShaderCConvYUY2Void(":/cconvYUY2_void.c", GL_FRAGMENT_SHADER),
    14461448        mShaderCConvYV12(":/cconvYV12.c", GL_FRAGMENT_SHADER),
    1447         mShaderCConvYV12Void(":/cconvYV12_void.c", GL_FRAGMENT_SHADER),
     1449//        mShaderCConvYV12Void(":/cconvYV12_void.c", GL_FRAGMENT_SHADER),
    14481450        mShaderSplitBGRA(":/splitBGRA.c", GL_FRAGMENT_SHADER),
    14491451        mShaderCKeyDst(":/ckeyDst.c", GL_FRAGMENT_SHADER),
    1450         mShaderCKeyDstVoid(":/ckeyDst_void.c", GL_FRAGMENT_SHADER),
     1452//        mShaderCKeyDstVoid(":/ckeyDst_void.c", GL_FRAGMENT_SHADER),
    14511453    //  mShaderCKeySrc;
    14521454    //  mShaderCKeySrcVoid;
    1453         mShaderMainOverlay(":/mainOverlay.c", GL_FRAGMENT_SHADER)
     1455        mShaderMainOverlay(":/mainOverlay.c", GL_FRAGMENT_SHADER),
     1456        mShaderMainOverlayNoCKey(":/mainOverlayNoCKey.c", GL_FRAGMENT_SHADER)
    14541457    {}
    14551458
     
    14771480
    14781481    VBoxVHWAGlShader mShaderCConvAYUV;
    1479     VBoxVHWAGlShader mShaderCConvAYUVVoid;
     1482//    VBoxVHWAGlShader mShaderCConvAYUVVoid;
    14801483    VBoxVHWAGlShader mShaderCConvBGR;
    1481     VBoxVHWAGlShader mShaderCConvBGRVoid;
     1484//    VBoxVHWAGlShader mShaderCConvBGRVoid;
    14821485    VBoxVHWAGlShader mShaderCConvUYVY;
    1483     VBoxVHWAGlShader mShaderCConvUYVYVoid;
     1486//    VBoxVHWAGlShader mShaderCConvUYVYVoid;
    14841487    VBoxVHWAGlShader mShaderCConvYUY2;
    1485     VBoxVHWAGlShader mShaderCConvYUY2Void;
     1488//    VBoxVHWAGlShader mShaderCConvYUY2Void;
    14861489    VBoxVHWAGlShader mShaderCConvYV12;
    1487     VBoxVHWAGlShader mShaderCConvYV12Void;
     1490//    VBoxVHWAGlShader mShaderCConvYV12Void;
    14881491    VBoxVHWAGlShader mShaderSplitBGRA;
    14891492
    14901493    VBoxVHWAGlShader mShaderCKeyDst;
    1491     VBoxVHWAGlShader mShaderCKeyDstVoid;
     1494//    VBoxVHWAGlShader mShaderCKeyDstVoid;
    14921495//    VBoxVHWAGlShader mShaderCKeySrc;
    14931496//    VBoxVHWAGlShader mShaderCKeySrcVoid;
    14941497
    14951498    VBoxVHWAGlShader mShaderMainOverlay;
     1499    VBoxVHWAGlShader mShaderMainOverlayNoCKey;
    14961500
    14971501    friend class VBoxVHWAGlProgramVHWA;
     
    15121516        apShaders[cShaders++] = &mShaderCKeyDst;
    15131517    }
    1514     else
    1515     {
    1516         apShaders[cShaders++] = &mShaderCKeyDstVoid;
    1517     }
     1518// ensure we don't have empty functions /* paranoya for for ATI on linux */
     1519//    else
     1520//    {
     1521//        apShaders[cShaders++] = &mShaderCKeyDstVoid;
     1522//    }
    15181523
    15191524    if(type & VBOXVHWA_PROGRAM_SRCCOLORKEY)
     
    15321537            bFound = true;
    15331538        }
    1534         else
    1535         {
    1536             apShaders[cShaders++] = &mShaderCConvUYVYVoid;
    1537         }
    1538 
    1539         if(fourcc == FOURCC_YUY2)
     1539        else if(fourcc == FOURCC_YUY2)
    15401540        {
    15411541            apShaders[cShaders++] = &mShaderCConvYUY2;
    15421542            bFound = true;
    15431543        }
    1544         else
    1545         {
    1546             apShaders[cShaders++] = &mShaderCConvYUY2Void;
    1547         }
    1548 
    1549         if(fourcc == FOURCC_YV12)
     1544        else if(fourcc == FOURCC_YV12)
    15501545        {
    15511546            apShaders[cShaders++] = &mShaderSplitBGRA;
     
    15531548            bFound = true;
    15541549        }
    1555         else
    1556         {
    1557             apShaders[cShaders++] = &mShaderCConvYV12Void;
    1558         }
    1559 
    1560         if(fourcc == FOURCC_AYUV)
     1550        else if(fourcc == FOURCC_AYUV)
    15611551        {
    15621552            apShaders[cShaders++] = &mShaderCConvAYUV;
    15631553            bFound = true;
    15641554        }
    1565         else
    1566         {
    1567             apShaders[cShaders++] = &mShaderCConvAYUVVoid;
    1568         }
    15691555    }
    15701556
     
    15731559        type |= VBOXVHWA_PROGRAM_COLORCONV;
    15741560        apShaders[0] = &mShaderCConvApplyAYUV;
    1575         apShaders[cShaders++] = &mShaderCConvBGRVoid;
    15761561    }
    15771562    else
     
    15811566    }
    15821567
    1583     apShaders[cShaders++] = &mShaderMainOverlay;
     1568    if(type &  VBOXVHWA_PROGRAM_DSTCOLORKEY)
     1569    {
     1570        apShaders[cShaders++] = &mShaderMainOverlay;
     1571    }
     1572    else
     1573    {
     1574        // ensure we don't have empty functions /* paranoya for for ATI on linux */
     1575        apShaders[cShaders++] = &mShaderMainOverlayNoCKey;
     1576    }
    15841577
    15851578    Assert(cShaders <= RT_ELEMENTS(apShaders));
     
    48024795    pDisplay->init(NULL, mUsesGuestVRAM ? re->VRAM() : NULL);
    48034796    mDisplay.setVGA(pDisplay);
    4804     VBOXQGLLOG(("\n\n*******\n\n     viewport size is: (%d):(%d)\n\n*******\n\n", size().width(), size().height()));
     4797//    VBOXQGLLOG(("\n\n*******\n\n     viewport size is: (%d):(%d)\n\n*******\n\n", size().width(), size().height()));
    48054798    mViewport = QRect(0,0,displayWidth, displayHeight);
    48064799    adjustViewport(dispSize, mViewport);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette