VirtualBox

Ignore:
Timestamp:
Jul 19, 2012 12:55:52 PM (13 years ago)
Author:
vboxsync
Message:

wddm: more autoresize fixes, etc.

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVidPn.cpp

    r42217 r42228  
    13191319                        {
    13201320                            Status = pNewVidPnTargetModeSetInterface->pfnAddMode(hNewVidPnTargetModeSet, pNewVidPnTargetModeInfo);
    1321                             Assert(Status == STATUS_SUCCESS);
    13221321                            if (NT_SUCCESS(Status))
    13231322                            {
     
    13261325                            }
    13271326                            else
    1328                             {
    13291327                                WARN(("pfnAddMode failed, Status 0x%x", Status));
    1330                             }
    13311328                        }
    13321329                        else
    1333                         {
    13341330                            WARN(("vboxVidPnPopulateTargetModeInfoFromLegacy failed, Status 0x%x", Status));
    1335                         }
    13361331
    13371332                        NTSTATUS tmpStatus = pNewVidPnTargetModeSetInterface->pfnReleaseModeInfo(hNewVidPnTargetModeSet, pNewVidPnTargetModeInfo);
     
    14511446                    D3DKMDT_VIDPN_SOURCE_MODE *pNewVidPnSourceModeInfo;
    14521447                    Status = pNewVidPnSourceModeSetInterface->pfnCreateNewModeInfo(hNewVidPnSourceModeSet, &pNewVidPnSourceModeInfo);
    1453                     Assert(Status == STATUS_SUCCESS);
    14541448                    if (NT_SUCCESS(Status))
    14551449                    {
     
    14591453                        {
    14601454                            Status = pNewVidPnSourceModeSetInterface->pfnAddMode(hNewVidPnSourceModeSet, pNewVidPnSourceModeInfo);
    1461                             Assert(Status == STATUS_SUCCESS);
    14621455                            if (NT_SUCCESS(Status))
    14631456                            {
     
    14651458                                continue;
    14661459                            }
     1460                            else
     1461                                WARN(("pfnAddMode failed, Status 0x%x", Status));
    14671462                        }
    14681463
     
    14701465                        Assert(tmpStatus == STATUS_SUCCESS);
    14711466                    }
     1467                    else
     1468                        WARN(("pfnCreateNewModeInfo failed, Status 0x%x", Status));
    14721469                    /* we're here because of an error */
    14731470                    Assert(!NT_SUCCESS(Status));
    1474                     break;
     1471                    /* ignore mode addition failure */
     1472                    Status = STATUS_SUCCESS;
     1473                    continue;
    14751474                }
    14761475            }
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp

    r42217 r42228  
    659659}
    660660
    661 static NTSTATUS vboxWddmChildStatusCheck(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_VIDEOMODES_INFO paInfos)
     661static NTSTATUS vboxWddmChildStatusCheckByMask(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_VIDEOMODES_INFO paInfos, uint8_t *pMask)
    662662{
    663663    NTSTATUS Status = STATUS_SUCCESS;
     
    665665    int i;
    666666
    667     Assert(!bChanged[0]);
    668667    for (i = 0; i < VBoxCommonFromDeviceExt(pDevExt)->cDisplays; ++i)
    669668    {
     669        if (pMask && !ASMBitTest(pMask, i))
     670            continue;
     671
    670672        /* @todo: check that we actually need the current source->target */
    671673        PVBOXWDDM_VIDEOMODES_INFO pInfo = &paInfos[i];
     
    41504152                WARN(("VBOXESC_REINITVIDEOMODESBYMASK should be called instead"));
    41514153                PVBOXWDDM_VIDEOMODES_INFO pInfos = VBoxWddmUpdateAllVideoModesInfos(pDevExt);
    4152                 Status = vboxWddmChildStatusCheck(pDevExt, pInfos);
     4154                Status = vboxWddmChildStatusCheckByMask(pDevExt, pInfos, NULL);
    41534155                if (!NT_SUCCESS(Status))
    41544156                {
    4155                     WARN(("vboxWddmChildStatusCheck failed, Status 0x%x", Status));
     4157                    WARN(("vboxWddmChildStatusCheckByMask failed, Status 0x%x", Status));
    41564158                }
    41574159                break;
     
    41764178                if (fCheckDisplayRecconect)
    41774179                {
    4178                     Status = vboxWddmChildStatusCheck(pDevExt, pInfos);
     4180                    Status = vboxWddmChildStatusCheckByMask(pDevExt, pInfos, pData->ScreenMask);
    41794181                    if (!NT_SUCCESS(Status))
    41804182                    {
    4181                         WARN(("vboxWddmChildStatusCheck failed, Status 0x%x", Status));
     4183                        WARN(("vboxWddmChildStatusCheckByMask failed, Status 0x%x", Status));
    41824184                    }
    41834185                }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette