Changeset 28379 in vbox
- Timestamp:
- Apr 15, 2010 5:14:16 PM (15 years ago)
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r28240 r28379 2126 2126 const unsigned cBits = s->get_bpp(s); 2127 2127 2128 /* Take into account the programmed start address (in DWORDs) of the visible screen. */ 2129 int rc = s->pDrv->pfnResize(s->pDrv, cBits, s->CTX_SUFF(vram_ptr) + s->start_addr * 4, s->line_offset, cx, cy); 2128 int rc; 2129 #ifdef VBOXVDMA 2130 /* do not do pfnResize in case VBVA is on since all mode changes are poerofmed over VBVA 2131 * we are checking for VDMA state here to ensure this code works only for WDDM driver, 2132 * although we should avoid calling pfnResize for XPDM as well, since pfnResize is actually an extra resize 2133 * event and generally only pfnVBVAxxx calls should be used with HGSMI + VBVA 2134 * 2135 * The reason for doing this for WDDM driver only now is to avoid regressions of the current code */ 2136 PVBOXVDMAHOST pVdma = s->pVdma; 2137 if (pVdma && vboxVDMAIsEnabled(pVdma)) 2138 rc = VINF_SUCCESS; 2139 else 2140 #endif 2141 { 2142 /* Take into account the programmed start address (in DWORDs) of the visible screen. */ 2143 rc = s->pDrv->pfnResize(s->pDrv, cBits, s->CTX_SUFF(vram_ptr) + s->start_addr * 4, s->line_offset, cx, cy); 2144 } 2130 2145 2131 2146 /* last stuff */ -
trunk/src/VBox/Devices/Graphics/DevVGA.h
r28210 r28379 470 470 int VBVAUpdateDisplay (PVGASTATE pVGAState); 471 471 void VBVAReset (PVGASTATE pVGAState); 472 473 bool VBVAIsEnabled(PVGASTATE pVGAState); 474 472 475 /* @return host-guest flags that were set on reset 473 476 * this allows the caller to make further cleaning when needed, … … 494 497 void vboxVDMAControl(PVBOXVDMAHOST pVdma, PVBOXVDMA_CTL pCmd); 495 498 void vboxVDMACommand(PVBOXVDMAHOST pVdma, PVBOXVDMACBUF_DR pCmd); 499 bool vboxVDMAIsEnabled(PVBOXVDMAHOST pVdma); 496 500 # endif /* VBOXVDMA */ 497 501 -
trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
r28228 r28379 525 525 pVGAState->pDrv->pfnVBVADisable (pVGAState->pDrv, uScreenId); 526 526 return VINF_SUCCESS; 527 } 528 529 bool VBVAIsEnabled(PVGASTATE pVGAState) 530 { 531 PHGSMIINSTANCE pHGSMI = pVGAState->pHGSMI; 532 if (pHGSMI) 533 { 534 VBVACONTEXT *pCtx = (VBVACONTEXT *)HGSMIContext(pHGSMI); 535 if (pCtx) 536 { 537 if (pCtx->cViews) 538 { 539 VBVAVIEW * pView = &pCtx->aViews[0]; 540 if (pView->pVBVA) 541 return true; 542 } 543 } 544 } 545 return false; 527 546 } 528 547 -
trunk/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp
r27429 r28379 87 87 PHGSMIINSTANCE pHgsmi; 88 88 PVGASTATE pVGAState; 89 bool bEnabled; 89 90 VBOXVDMAPIPE_CMD_POOL CmdPool; 90 91 } VBOXVDMAHOST, *PVBOXVDMAHOST; … … 780 781 { 781 782 case VBOXVDMA_CTL_TYPE_ENABLE: 783 pVdma->bEnabled = true; 782 784 pCmd->i32Result = VINF_SUCCESS; 783 785 break; 784 786 case VBOXVDMA_CTL_TYPE_DISABLE: 787 pVdma->bEnabled = false; 785 788 pCmd->i32Result = VINF_SUCCESS; 786 789 break; … … 853 856 } 854 857 858 bool vboxVDMAIsEnabled(PVBOXVDMAHOST pVdma) 859 { 860 return pVdma->bEnabled; 861 }
Note:
See TracChangeset
for help on using the changeset viewer.