VirtualBox

Changeset 89183 in vbox for trunk/src/VBox/Devices/Graphics


Ignore:
Timestamp:
May 19, 2021 8:41:10 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144524
Message:

Devices/Graphics: Fixed 3D backend reset issues. bugref:9830

File:
1 edited

Legend:

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

    r89163 r89183  
    423423static int vmsvgaR3SaveExecFifo(PCPDMDEVHLPR3 pHlp, PVGASTATECC pThisCC, PSSMHANDLE pSSM);
    424424static void vmsvgaR3CmdBufSubmit(PPDMDEVINS pDevIns, PVGASTATE pThis, PVGASTATECC pThisCC, RTGCPHYS GCPhysCB, SVGACBContext CBCtx);
    425 # ifdef VBOX_WITH_VMSVGA3D
    426 static void vmsvga3dR3Free3dInterfaces(PVGASTATECC pThisCC);
    427 # endif
    428425#endif /* IN_RING3 */
    429426
     
    57605757        RTCritSectDelete(&pSVGAState->CritSectCmdBuf);
    57615758    }
    5762 
    5763 # ifdef VBOX_WITH_VMSVGA3D
    5764     vmsvga3dR3Free3dInterfaces(pThisCC);
    5765 # endif
    57665759}
    57675760
     
    58345827 * @param   pThisCC   The VGA/VMSVGA state for ring-3.
    58355828 */
    5836 static int vmsvgaR3Init3dInterfaces(PVGASTATE pThis, PVGASTATECC pThisCC)
     5829static int vmsvgaR3Init3dInterfaces(PPDMDEVINS pDevIns, PVGASTATE pThis, PVGASTATECC pThisCC)
    58375830{
    58385831#ifndef VMSVGA3D_DX
     
    58805873        /* 3D interface is required. */
    58815874        if (pSVGAState->pFuncs3D)
    5882             return VINF_SUCCESS;
    5883 
    5884         rc = VERR_NOT_SUPPORTED;
     5875        {
     5876            rc = pSVGAState->pFuncs3D->pfnInit(pDevIns, pThis, pThisCC);
     5877            if (RT_SUCCESS(rc))
     5878                return VINF_SUCCESS;
     5879        }
     5880        else
     5881            rc = VERR_NOT_SUPPORTED;
    58855882    }
    58865883
     
    61186115        vmsvgaR3StateTerm(pThis, pThisCC);
    61196116
     6117# ifdef VBOX_WITH_VMSVGA3D
     6118        vmsvga3dR3Free3dInterfaces(pThisCC);
     6119# endif
     6120
    61206121        RTMemFree(pThisCC->svga.pSvgaR3State);
    61216122        pThisCC->svga.pSvgaR3State = NULL;
     
    62066207    {
    62076208        /* Load a 3D backend. */
    6208         rc = vmsvgaR3Init3dInterfaces(pThis, pThisCC);
    6209         if (RT_SUCCESS(rc))
    6210             rc = pSVGAState->pFuncs3D->pfnInit(pDevIns, pThis, pThisCC);
    6211 
     6209        rc = vmsvgaR3Init3dInterfaces(pDevIns, pThis, pThisCC);
    62126210        if (RT_FAILURE(rc))
    62136211        {
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