儲存庫 vbox 的更動 42151
- 時間撮記:
- 2012-7-13 下午04:45:06 (12 年 以前)
- 位置:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp
- 檔案:
-
- 修改 3 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/common/VBoxMPUtils.cpp
r42060 r42151 32 32 * to simplify things we just insert breaks for the case of intensive debugging WDDM driver*/ 33 33 #ifndef VBOX_WDDM_WIN8 34 boolg_bVBoxVDbgBreakF = false;35 boolg_bVBoxVDbgBreakFv = false;34 int g_bVBoxVDbgBreakF = false; 35 int g_bVBoxVDbgBreakFv = false; 36 36 #else 37 bool g_bVBoxVDbgBreakF = true;38 bool g_bVBoxVDbgBreakFv = true;37 int g_bVBoxVDbgBreakF = false; 38 int g_bVBoxVDbgBreakFv = false; 39 39 #endif 40 40 #endif -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/common/VBoxMPUtils.h
r38765 r42151 126 126 * windbg seems to have some issues when there is a lot ( >~50) of sw breakpoints defined 127 127 * to simplify things we just insert breaks for the case of intensive debugging WDDM driver*/ 128 extern boolg_bVBoxVDbgBreakF;129 extern boolg_bVBoxVDbgBreakFv;128 extern int g_bVBoxVDbgBreakF; 129 extern int g_bVBoxVDbgBreakFv; 130 130 #define vboxVDbgBreakF() do { if (g_bVBoxVDbgBreakF) AssertBreakpoint(); } while (0) 131 131 #define vboxVDbgBreakFv() do { if (g_bVBoxVDbgBreakFv) AssertBreakpoint(); } while (0) -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r42146 r42151 272 272 } 273 273 274 NTSTATUS vboxWddmGhDisplaySetInfo(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_SOURCE pSource, D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId)275 { 276 NTSTATUS Status = vboxWddmGhDisplaySetMode(pDevExt, &pSource->AllocData);274 NTSTATUS vboxWddmGhDisplaySetInfo(PVBOXMP_DEVEXT pDevExt, const PVBOXWDDM_ALLOC_DATA pAllocData, const POINT * pVScreenPos) 275 { 276 NTSTATUS Status = vboxWddmGhDisplaySetMode(pDevExt, pAllocData); 277 277 Assert(Status == STATUS_SUCCESS); 278 278 if (Status == STATUS_SUCCESS) 279 279 { 280 Status = vboxWddmGhDisplayPostInfoView(pDevExt, &pSource->AllocData);280 Status = vboxWddmGhDisplayPostInfoView(pDevExt, pAllocData); 281 281 Assert(Status == STATUS_SUCCESS); 282 282 if (Status == STATUS_SUCCESS) 283 283 { 284 Status = vboxWddmGhDisplayPostInfoScreen(pDevExt, &pSource->AllocData, &pSource->VScreenPos);284 Status = vboxWddmGhDisplayPostInfoScreen(pDevExt, pAllocData, pVScreenPos); 285 285 Assert(Status == STATUS_SUCCESS); 286 if (Status == STATUS_SUCCESS) 287 pSource->bGhSynced = TRUE; 288 else 286 if (!NT_SUCCESS(Status)) 289 287 WARN(("vboxWddmGhDisplayPostInfoScreen failed")); 290 288 } … … 296 294 297 295 return Status; 296 } 297 298 bool vboxWddmGhDisplayCheckSetInfoFromSource(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_SOURCE pSource) 299 { 300 Assert(VBOXVIDEOOFFSET_VOID != pSource->AllocData.Addr.offVram); 301 302 if (pSource->bGhSynced) 303 return false; 304 305 PVBOXWDDM_ALLOCATION pFbAlloc = VBOXWDDM_FB_ALLOCATION(pDevExt, pSource); 306 307 #ifdef VBOX_WDDM_WIN8 308 Assert(!g_VBoxDisplayOnly == !!pFbAlloc); 309 #else 310 Assert(pFbAlloc); 311 #endif 312 #ifndef VBOXWDDM_RENDER_FROM_SHADOW 313 Assert(!pFbAlloc || pFbAlloc->AllocData.Addr.offVram == pSource->AllocData.Addr.offVram); 314 #endif 315 Assert(!pFbAlloc || pFbAlloc->AllocData.Addr.SegmentId == pSource->AllocData.Addr.SegmentId); 316 317 NTSTATUS Status = vboxWddmGhDisplaySetInfo(pDevExt, pFbAlloc ? &pFbAlloc->AllocData : &pSource->AllocData, &pSource->VScreenPos); 318 if (NT_SUCCESS(Status)) 319 pSource->bGhSynced = TRUE; 320 else 321 WARN(("vboxWddmGhDisplaySetInfo failed, Status (0x%x)", Status)); 322 323 return true; 298 324 } 299 325 … … 375 401 376 402 #ifdef VBOXWDDM_RENDER_FROM_SHADOW 377 bool vboxWddmCheckUpdateFramebufferAddress(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_SOURCE pSource , D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId)403 bool vboxWddmCheckUpdateFramebufferAddress(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_SOURCE pSource) 378 404 { 379 405 if (pSource->pPrimaryAllocation->enmType == VBOXWDDM_ALLOC_TYPE_UMD_RC_GENERIC) … … 383 409 } 384 410 385 Assert(VBOXVIDEOOFFSET_VOID != pSource->AllocData.Addr.offVram); 386 387 if (pSource->bGhSynced) 388 return false; 389 390 NTSTATUS Status = vboxWddmGhDisplaySetInfo(pDevExt, pSource, VidPnSourceId); 391 if (!NT_SUCCESS(Status)) 392 WARN(("vboxWddmGhDisplaySetInfo failed, Status (0x%x)", Status)); 393 394 return true; 411 return vboxWddmGhDisplayCheckSetInfoFromSource(pDevExt, pSource); 395 412 } 396 413 #endif … … 2964 2981 vboxWddmAssignShadow(pDevExt, pSource, pSrcAlloc, pS2P->Shadow2Primary.VidPnSourceId); 2965 2982 fRenderFromSharedDisabled = vboxWddmModeRenderFromShadowCheckOnSubmitCommand(pDevExt, NULL); 2966 vboxWddmCheckUpdateFramebufferAddress(pDevExt, pSource , pS2P->Shadow2Primary.VidPnSourceId);2983 vboxWddmCheckUpdateFramebufferAddress(pDevExt, pSource); 2967 2984 uint32_t cUnlockedVBVADisabled = ASMAtomicReadU32(&pDevExt->cUnlockedVBVADisabled); 2968 2985 if (!cUnlockedVBVADisabled) … … 3007 3024 if(pContext->enmType != VBOXWDDM_CONTEXT_TYPE_CUSTOM_3D 3008 3025 || pDstAlloc->enmType !=VBOXWDDM_ALLOC_TYPE_UMD_RC_GENERIC) 3009 vboxWddmCheckUpdateFramebufferAddress(pDevExt, pSource , pDstAlloc->AllocData.SurfDesc.VidPnSourceId);3026 vboxWddmCheckUpdateFramebufferAddress(pDevExt, pSource); 3010 3027 } 3011 3028 else if (pSrcAlloc->bAssigned && … … 3019 3036 if(pContext->enmType != VBOXWDDM_CONTEXT_TYPE_CUSTOM_3D 3020 3037 || pSrcAlloc->enmType !=VBOXWDDM_ALLOC_TYPE_UMD_RC_GENERIC) 3021 vboxWddmCheckUpdateFramebufferAddress(pDevExt, pSource , pSrcAlloc->AllocData.SurfDesc.VidPnSourceId);3038 vboxWddmCheckUpdateFramebufferAddress(pDevExt, pSource); 3022 3039 } 3023 3040 … … 4627 4644 pSource->bGhSynced = FALSE; /* force guest->host notification */ 4628 4645 4629 #if defined(VBOXWDDM_RENDER_FROM_SHADOW) && defined(VBOX_WDDM_WIN8) 4630 if (g_VBoxDisplayOnly && !pSource->bGhSynced && pSource->bVisible) 4631 { 4632 Status = vboxWddmGhDisplaySetInfo(pDevExt, pSource, pSetVidPnSourceAddress->VidPnSourceId); 4633 if (!NT_SUCCESS(Status)) 4634 { 4635 WARN(("vboxWddmGhDisplaySetInfo failed, Status (0x%x)", Status)); 4636 } 4637 } 4638 #endif 4646 if (pSource->bVisible 4647 #if defined(VBOXWDDM_RENDER_FROM_SHADOW) 4648 && ( 4649 # if defined(VBOX_WDDM_WIN8) 4650 g_VBoxDisplayOnly 4651 || 4652 # endif 4653 pDevExt->fRenderToShadowDisabled 4654 ) 4655 #endif 4656 ) 4657 { 4658 vboxWddmGhDisplayCheckSetInfoFromSource(pDevExt, pSource); 4659 } 4639 4660 4640 4661 LOGF(("LEAVE, status(0x%x), context(0x%x)", Status, hAdapter)); … … 4679 4700 { 4680 4701 pSource->bVisible = pSetVidPnSourceVisibility->Visible; 4681 #if defined(VBOXWDDM_RENDER_FROM_SHADOW) && defined(VBOX_WDDM_WIN8) 4682 if (g_VBoxDisplayOnly && pSource->bVisible) 4683 { 4684 Status = vboxWddmGhDisplaySetInfo(pDevExt, pSource, pSetVidPnSourceVisibility->VidPnSourceId); 4685 if (!NT_SUCCESS(Status)) 4686 { 4687 WARN(("vboxWddmGhDisplaySetInfo failed, Status (0x%x)", Status)); 4688 } 4689 } 4690 #endif 4702 if (pSource->bVisible 4703 #if defined(VBOXWDDM_RENDER_FROM_SHADOW) 4704 && ( 4705 # if defined(VBOX_WDDM_WIN8) 4706 g_VBoxDisplayOnly 4707 || 4708 # endif 4709 pDevExt->fRenderToShadowDisabled 4710 ) 4711 #endif 4712 ) 4713 { 4714 vboxWddmGhDisplayCheckSetInfoFromSource(pDevExt, pSource); 4715 } 4691 4716 } 4692 4717
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器