Changeset 63611 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Aug 22, 2016 2:47:03 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 110321
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPTypes.h
r63039 r63611 129 129 BOOLEAN fTargetsReported; 130 130 BOOLEAN bVisible; 131 BOOLEAN bPowerOff; 131 132 #ifdef VBOX_WITH_CROGL 132 133 /* specifies whether the source has 3D overlay data visible */ -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVidPn.cpp
r63566 r63611 2327 2327 NTSTATUS VBoxVidPnCommitSourceModeForSrcId(PVBOXMP_DEVEXT pDevExt, const D3DKMDT_HVIDPN hDesiredVidPn, const DXGK_VIDPN_INTERFACE* pVidPnInterface, 2328 2328 PVBOXWDDM_ALLOCATION pAllocation, 2329 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId, VBOXWDDM_SOURCE *paSources, VBOXWDDM_TARGET *paTargets )2329 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId, VBOXWDDM_SOURCE *paSources, VBOXWDDM_TARGET *paTargets, BOOLEAN bPathPowerTransition) 2330 2330 { 2331 2331 D3DKMDT_HVIDPNSOURCEMODESET hCurVidPnSourceModeSet; … … 2415 2415 } 2416 2416 2417 pSource->bPowerOff = bPathPowerTransition; 2417 2418 return Status; 2418 2419 } -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVidPn.h
r62522 r63611 74 74 NTSTATUS VBoxVidPnCommitSourceModeForSrcId(PVBOXMP_DEVEXT pDevExt, const D3DKMDT_HVIDPN hDesiredVidPn, const DXGK_VIDPN_INTERFACE* pVidPnInterface, 75 75 PVBOXWDDM_ALLOCATION pAllocation, 76 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId, VBOXWDDM_SOURCE *paSources, VBOXWDDM_TARGET *paTargets );76 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId, VBOXWDDM_SOURCE *paSources, VBOXWDDM_TARGET *paTargets, BOOLEAN bPathPowerTransition = false); 77 77 78 78 NTSTATUS VBoxVidPnCommitAll(PVBOXMP_DEVEXT pDevExt, const D3DKMDT_HVIDPN hDesiredVidPn, const DXGK_VIDPN_INTERFACE* pVidPnInterface, -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r63566 r63611 395 395 } 396 396 397 NTSTATUS vboxWddmGhDisplaySetInfoNew(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData, const uint32_t *pTargetMap, const POINT * pVScreenPos, uint8_t u8CurCyncState )397 NTSTATUS vboxWddmGhDisplaySetInfoNew(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData, const uint32_t *pTargetMap, const POINT * pVScreenPos, uint8_t u8CurCyncState, BOOLEAN bPowerOff = false) 398 398 { 399 399 NTSTATUS Status = STATUS_SUCCESS; 400 bool fEnabled = !!pAllocData->SurfDesc.width; 401 uint16_t fu16Flags = fEnabled ? VBVA_SCREEN_F_ACTIVE : VBVA_SCREEN_F_DISABLED; 402 if (fEnabled) 400 bool bValidAlloc = pAllocData->SurfDesc.width > 0 && pAllocData->SurfDesc.height > 0; 401 uint16_t fu16Flags; 402 403 PVBOXMP_COMMON pCommon = VBoxCommonFromDeviceExt(pDevExt); 404 uint16_t fu16SupportedFlags = VBoxHGSMIGetScreenFlags(&pCommon->guestCtx); 405 if ( bPowerOff 406 && RT_BOOL(fu16SupportedFlags & VBVA_SCREEN_F_BLANK2)) 407 { 408 fu16Flags = VBVA_SCREEN_F_ACTIVE | VBVA_SCREEN_F_BLANK2; 409 } 410 else 411 { 412 fu16Flags = bValidAlloc ? VBVA_SCREEN_F_ACTIVE : VBVA_SCREEN_F_DISABLED; 413 } 414 415 if (bValidAlloc) 403 416 { 404 417 #ifdef VBOX_WITH_CROGL … … 423 436 { 424 437 #ifdef VBOX_WITH_CROGL 425 if ( fEnabled&& pDevExt->f3DEnabled)438 if (bValidAlloc && pDevExt->f3DEnabled) 426 439 { 427 440 Status = vboxVdmaTexPresentSetAlloc(pDevExt, pAllocData); … … 467 480 } 468 481 469 NTSTATUS Status = vboxWddmGhDisplaySetInfoNew(pDevExt, &pSource->AllocData, pTargetMap, &pSource->VScreenPos, pSource->u8SyncState );482 NTSTATUS Status = vboxWddmGhDisplaySetInfoNew(pDevExt, &pSource->AllocData, pTargetMap, &pSource->VScreenPos, pSource->u8SyncState, pSource->bPowerOff); 470 483 if (NT_SUCCESS(Status)) 471 484 { … … 1032 1045 1033 1046 NTSTATUS Status = STATUS_SUCCESS; 1034 PVBOXMP_DEVEXT pDevExt ;1047 PVBOXMP_DEVEXT pDevExt = NULL; 1035 1048 1036 1049 WCHAR RegKeyBuf[512]; … … 5359 5372 pCommitVidPnArg->hFunctionalVidPn, pVidPnInterface, 5360 5373 (PVBOXWDDM_ALLOCATION)pCommitVidPnArg->hPrimaryAllocation, 5361 pCommitVidPnArg->AffectedVidPnSourceId, paSources, paTargets );5374 pCommitVidPnArg->AffectedVidPnSourceId, paSources, paTargets, (BOOLEAN)pCommitVidPnArg->Flags.PathPowerTransition); 5362 5375 if (!NT_SUCCESS(Status)) 5363 5376 { -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.h
r63039 r63611 171 171 { 172 172 VBOXVIDEOOFFSET offVram = vboxWddmAddrFramOffset(&pAllocData->Addr); 173 if (offVram == VBOXVIDEOOFFSET_VOID && !(fFlags & VBVA_SCREEN_F_DISABLED))173 if (offVram == VBOXVIDEOOFFSET_VOID && !(fFlags & (VBVA_SCREEN_F_DISABLED | VBVA_SCREEN_F_BLANK2))) 174 174 { 175 175 WARN(("offVram == VBOXVIDEOOFFSET_VOID"));
Note:
See TracChangeset
for help on using the changeset viewer.