VirtualBox

Changeset 106188 in vbox for trunk


Ignore:
Timestamp:
Oct 1, 2024 9:52:02 AM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164972
Message:

3D: Conditionally enable 3D backend in 2D mode if VMSVGA2dGBO extradata is set (experimental change for testing purposes). ​bugref:10580

Location:
trunk/src/VBox/Devices/Graphics
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.cpp

    r106119 r106188  
    40704070                    else
    40714071                    {
    4072                         LogRelMax(8, ("VMSVGA: 3D disabled, command %d skipped\n", cmdId));
    4073                         break;
     4072                        if (pThis->svga.fVMSVGA2dGBO &&
     4073                            (cmdId == SVGA_3D_CMD_SET_OTABLE_BASE64 ||
     4074                            cmdId == SVGA_3D_CMD_DEFINE_GB_MOB64   ||
     4075                            cmdId == SVGA_3D_CMD_DESTROY_GB_MOB    ||
     4076                            cmdId == SVGA_3D_CMD_DEFINE_GB_SURFACE ||
     4077                            cmdId == SVGA_3D_CMD_DESTROY_GB_SURFACE ||
     4078                            cmdId == SVGA_3D_CMD_BIND_GB_SURFACE   ||
     4079                            cmdId == SVGA_3D_CMD_INVALIDATE_GB_SURFACE ||
     4080                            cmdId == SVGA_3D_CMD_DEFINE_GB_SCREENTARGET ||
     4081                            cmdId == SVGA_3D_CMD_DESTROY_GB_SCREENTARGET ||
     4082                            cmdId == SVGA_3D_CMD_BIND_GB_SCREENTARGET ||
     4083                            cmdId == SVGA_3D_CMD_UPDATE_GB_IMAGE      ||
     4084                            cmdId == SVGA_3D_CMD_UPDATE_GB_SCREENTARGET ||
     4085                            cmdId == SVGA_3D_CMD_SURFACE_COPY)
     4086                        )
     4087                        {
     4088                            LogRelMax(8, ("VMSVGA: 3D disabled, but command %d will be processed\n", cmdId));
     4089                        }
     4090                        else
     4091                        {
     4092                            LogRelMax(8, ("VMSVGA: 3D disabled, command %d skipped\n", cmdId));
     4093                            break;
     4094                        }
    40744095                    }
    40754096
     
    67716792
    67726793# ifdef VBOX_WITH_VMSVGA3D
    6773     if (pThisCC->svga.pSvgaR3State->pFuncs3D)
     6794//  if (pThisCC->svga.pSvgaR3State->pFuncs3D)
     6795    if (pThis->svga.f3DEnabled)
    67746796        *pu32DeviceCaps |= SVGA_CAP_3D;
    67756797# endif
     
    76207642{
    76217643# ifdef VBOX_WITH_VMSVGA3D
    7622     if (pThis->svga.f3DEnabled)
     7644    if (pThis->svga.f3DEnabled || pThis->svga.fVMSVGA2dGBO)
    76237645    {
    76247646        /* Load a 3D backend. */
     
    76697691
    76707692# ifdef VBOX_WITH_VMSVGA3D
    7671     if (pThis->svga.f3DEnabled)
     7693    if (pThis->svga.f3DEnabled || pThis->svga.fVMSVGA2dGBO)
    76727694    {
    76737695        PVMSVGAR3STATE pSVGAState = pThisCC->svga.pSvgaR3State;
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.h

    r106061 r106188  
    363363    /** Whether MSAA support is enabled. */
    364364    bool                        fVMSVGA3dMSAA;
    365     bool                        afPadding[2];
     365    bool                        fVMSVGA2dGBO;
     366    bool                        afPadding[1];
    366367    uint32_t                    uWidth;
    367368    uint32_t                    uHeight;
  • trunk/src/VBox/Devices/Graphics/DevVGA.cpp

    r106061 r106188  
    64806480                                            "|VMSVGA3dOverlayEnabled"
    64816481                                            "|VMSVGA3dMSAA"
     6482                                            "|VMSVGA2dGBO"
    64826483# endif
    64836484                                            "|SuppressNewYearSplash"
     
    65556556    AssertLogRelRCReturn(rc, rc);
    65566557    Log(("VMSVGA: VMSVGA3dMSAA = %d\n", pThis->svga.fVMSVGA3dMSAA));
     6558
     6559    rc = pHlp->pfnCFGMQueryBoolDef(pCfg, "VMSVGA2dGBO", &pThis->svga.fVMSVGA2dGBO, false);
     6560    AssertLogRelRCReturn(rc, rc);
     6561    if (pThis->svga.f3DEnabled || pThis->fVMSVGAPciId == 0) /* The fVMSVGA2dGBO is for 2D mode of vmwgfx.ko only*/
     6562        pThis->svga.fVMSVGA2dGBO = false;
     6563    Log(("VMSVGA: fVMSVGA2dGBO = %d\n", pThis->svga.fVMSVGA2dGBO));
    65576564# endif
    65586565
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