VirtualBox

儲存庫 vbox 的更動 73238


忽略:
時間撮記:
2018-7-19 下午12:36:22 (6 年 以前)
作者:
vboxsync
訊息:

DevVGA-SVGA3d-ogl: fixed wrong handling of GL_TEXTURE_MAX_LEVEL; added some debug code (disabled)

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp

    r73194 r73238  
    849849                                   pState->ext.glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB,
    850850                                                                 &pState->caps.maxVertexShaderTemps));
     851#ifdef DEBUG_sunlover
     852        /// @todo Fix properly!!! Some Windows host drivers return 31 for the compatible OGL context (wglCreateContext).
     853        if (pState->caps.maxVertexShaderTemps < 32)
     854            pState->caps.maxVertexShaderTemps = 32;
     855#endif
    851856        VMSVGA3D_INIT_CHECKED_BOTH(pState, pContext, pOtherCtx,
    852857                                   pState->ext.glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
     
    15771582        break;
    15781583
     1584    case SVGA3D_R8G8B8A8_UNORM:
     1585        pSurface->internalFormatGL = GL_RGBA8;
     1586        pSurface->formatGL = GL_RGBA;
     1587        pSurface->typeGL = GL_UNSIGNED_INT_8_8_8_8_REV;
     1588        break;
     1589
    15791590    case SVGA3D_Z_D32:                  /* D3DFMT_D32 - WINED3DFMT_D32_UNORM */
    15801591        pSurface->internalFormatGL = GL_DEPTH_COMPONENT32;
     
    16371648        break;
    16381649
     1650    case SVGA3D_DXT2:                   /* D3DFMT_DXT2 */
     1651        AssertMsgFailed(("Test me - SVGA3D_DXT2\n"));
     1652        break;
     1653
    16391654    case SVGA3D_DXT3:                   /* D3DFMT_DXT3 - WINED3DFMT_DXT3 */
    16401655        pSurface->internalFormatGL = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
     
    16471662        AssertMsgFailed(("Test me - SVGA3D_DXT3\n"));
    16481663#endif
     1664        break;
     1665
     1666    case SVGA3D_DXT4:                   /* D3DFMT_DXT4 */
     1667        AssertMsgFailed(("Test me - SVGA3D_DXT4\n"));
    16491668        break;
    16501669
     
    20992118    vmsvga3dOglSetUnpackParams(pState, pContext, pSurface, &SavedParams);
    21002119
    2101     /* Set the mipmap base and max level paramters. */
     2120    /* Set the mipmap base and max level parameters. */
    21022121    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
    21032122    VMSVGA3D_CHECK_LAST_ERROR(pState, pContext);
    2104     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, pSurface->faces[0].numMipLevels);
     2123    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, pSurface->faces[0].numMipLevels - 1);
    21052124    VMSVGA3D_CHECK_LAST_ERROR(pState, pContext);
    21062125
     
    52725291
    52735292        case SVGA3D_TS_TEXTURE_LOD_BIAS:            /* float */
    5274             glTexParameterf(GL_TEXTURE_2D /** @todo flexible type */, GL_TEXTURE_LOD_BIAS, pTextureState[i].value);   /* Identical; default 0.0 identical too */
     5293            glTexParameterf(GL_TEXTURE_2D /** @todo flexible type */, GL_TEXTURE_LOD_BIAS, pTextureState[i].floatValue);   /* Identical; default 0.0 identical too */
    52755294            VMSVGA3D_CHECK_LAST_ERROR(pState, pContext);
    52765295            break;
    52775296
    52785297        case SVGA3D_TS_TEXTURE_MIPMAP_LEVEL:        /* uint32_t */
    5279             textureType = GL_TEXTURE_BASE_LEVEL;
     5298            textureType = GL_TEXTURE_MAX_LEVEL;
    52805299            val = pTextureState[i].value;
    52815300            break;
     
    64596478#endif
    64606479
     6480#if 0
     6481    /* Dump render target to a bitmap. */
     6482    if (pContext->state.aRenderTargets[SVGA3D_RT_COLOR0] != SVGA3D_INVALID_ID)
     6483    {
     6484        vmsvga3dUpdateHeapBuffersForSurfaces(pThis, pContext->state.aRenderTargets[SVGA3D_RT_COLOR0]);
     6485        PVMSVGA3DSURFACE pSurface;
     6486        int rc2 = vmsvga3dSurfaceFromSid(pState, pContext->state.aRenderTargets[SVGA3D_RT_COLOR0], &pSurface);
     6487        if (RT_SUCCESS(rc2))
     6488            vmsvga3dInfoSurfaceToBitmap(NULL, pSurface, "bmp", "rt", "-post");
     6489    }
     6490#endif
     6491
    64616492    return rc;
    64626493}
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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