Changeset 94927 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/Svga.cpp
- Timestamp:
- May 9, 2022 6:48:47 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/Svga.cpp
r94881 r94927 1965 1965 1966 1966 NTSTATUS Status; 1967 AssertCompile(NIL_RTR0MEMOBJ == 0); 1967 1968 1968 1969 *ppMob = (PVMSVGAMOB)GaMemAllocZero(sizeof(VMSVGAMOB)); … … 1986 1987 ExReleaseFastMutex(&pSvga->SvgaMutex); 1987 1988 1988 if (pMob->hMemObj )1989 { 1990 int rc = RTR0MemObjFree(pMob->hMemObj , true);1989 if (pMob->hMemObjPT != NIL_RTR0MEMOBJ) 1990 { 1991 int rc = RTR0MemObjFree(pMob->hMemObjPT, true); 1991 1992 AssertRC(rc); 1993 pMob->hMemObjPT = NIL_RTR0MEMOBJ; 1992 1994 } 1993 1995 … … 2035 2037 if (pMob->cDescriptionPages) 2036 2038 { 2037 int rc = RTR0MemObjAllocPageTag(&pMob->hMemObj , pMob->cDescriptionPages * PAGE_SIZE,2039 int rc = RTR0MemObjAllocPageTag(&pMob->hMemObjPT, pMob->cDescriptionPages * PAGE_SIZE, 2038 2040 false /* executable R0 mapping */, "VMSVGAMOB"); 2039 2041 AssertRCReturnStmt(rc, SvgaMobFree(pSvga, pMob), STATUS_INSUFFICIENT_RESOURCES); … … 2044 2046 * Skip the level 2 page at index 0. 2045 2047 */ 2046 PPN64 *paPpn = (PPN64 *)RTR0MemObjAddress(pMob->hMemObj );2048 PPN64 *paPpn = (PPN64 *)RTR0MemObjAddress(pMob->hMemObjPT); 2047 2049 for (unsigned i = 1; i < pMob->cDescriptionPages; ++i) 2048 paPpn[i - 1] = RTR0MemObjGetPagePhysAddr(pMob->hMemObj , i) >> PAGE_SHIFT;2050 paPpn[i - 1] = RTR0MemObjGetPagePhysAddr(pMob->hMemObjPT, i) >> PAGE_SHIFT; 2049 2051 } 2050 2052 } … … 2072 2074 { 2073 2075 /* The first of pages is alway the base. It is either the level 2 page or the single level 1 page */ 2074 pMob->base = RTR0MemObjGetPagePhysAddr(pMob->hMemObj , 0) >> PAGE_SHIFT;2075 2076 PPN64 *paPpn = (PPN64 *)RTR0MemObjAddress(pMob->hMemObj );2076 pMob->base = RTR0MemObjGetPagePhysAddr(pMob->hMemObjPT, 0) >> PAGE_SHIFT; 2077 2078 PPN64 *paPpn = (PPN64 *)RTR0MemObjAddress(pMob->hMemObjPT); 2077 2079 PPN64 *paPpnMdlPfn; 2078 2080 if (pMob->enmMobFormat == SVGA3D_MOBFMT_PTDEPTH64_2) … … 2102 2104 { 2103 2105 /* The first of pages is alway the base. It is either the level 2 page or the single level 1 page */ 2104 pMob->base = RTR0MemObjGetPagePhysAddr(pMob->hMemObj , 0) >> PAGE_SHIFT;2105 2106 PPN64 *paPpn = (PPN64 *)RTR0MemObjAddress(pMob->hMemObj );2106 pMob->base = RTR0MemObjGetPagePhysAddr(pMob->hMemObjPT, 0) >> PAGE_SHIFT; 2107 2108 PPN64 *paPpn = (PPN64 *)RTR0MemObjAddress(pMob->hMemObjPT); 2107 2109 PPN64 *paPpnMob; 2108 2110 if (pMob->enmMobFormat == SVGA3D_MOBFMT_PTDEPTH64_2)
Note:
See TracChangeset
for help on using the changeset viewer.