VirtualBox

Ignore:
Timestamp:
Jul 15, 2009 2:01:56 PM (15 years ago)
Author:
vboxsync
Message:

video hw accel: raise interrupts for urgent commands only, hgsmi host->guest synchronization fixes

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Display
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/dd.c

    r21596 r21609  
    10731073            pBody->u.in.hSurf = pDesc->hHostHandle;
    10741074
     1075            if(lpLock->bHasRect)
     1076            {
     1077                pRect = &lpLock->rArea;
     1078            }
     1079            else
     1080            {
     1081                tmpRect.left=0;
     1082                tmpRect.top=0;
     1083                tmpRect.right=lpSurfaceGlobal->wWidth-1;
     1084                tmpRect.bottom=lpSurfaceGlobal->wHeight-1;
     1085                pRect = &tmpRect;
     1086            }
     1087
    10751088            if(VBOXDD_CHECKFLAG(lpLock->dwFlags, DDLOCK_DISCARDCONTENTS))
    10761089            {
    10771090                pBody->u.in.flags |= VBOXVHWA_LOCK_DISCARDCONTENTS;
    1078 //                if(lpLock->bHasRect)
    1079 //                {
    1080 //                    pRect = &lpLock->rArea;
    1081 //                }
    1082 //                else
    1083 //                {
    1084 //                    tmpRect.left=0;
    1085 //                    tmpRect.top=0;
    1086 //                    tmpRect.right=lpSurfaceGlobal->wWidth-1;
    1087 //                    tmpRect.bottom=lpSurfaceGlobal->wHeight-1;
    1088 //                    pRect = &tmpRect;
    1089 //                }
    1090 //
    1091 //                if(vboxVHWARegionIncluded(&pDesc->DirtyRegion, pRect))
    1092 //                {
    1093 //                    vboxVHWARegionClear(&pDesc->DirtyRegion);
    1094 //                }
     1091
     1092                if(vboxVHWARegionIncluded(&pDesc->DirtyRegion, pRect))
     1093                {
     1094                    vboxVHWARegionClear(&pDesc->DirtyRegion);
     1095                }
    10951096//            }
    10961097//            else if(vboxVHWARegionInterse)
    10971098                /* we're not interested in completion, just send the command */
     1099                vboxVHWACommandSubmitAsynch(pDev, pCmd, vboxVHWAFreeCmdCompletion, NULL);
     1100            }
     1101            else if(!vboxVHWARegionIntersects(&pDesc->DirtyRegion, pRect))
     1102            {
    10981103                vboxVHWACommandSubmitAsynch(pDev, pCmd, vboxVHWAFreeCmdCompletion, NULL);
    10991104            }
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/vbox.c

    r21596 r21609  
    782782
    783783    /* complete it asynchronously by setting event */
    784     pCmd->Flags = VBOXVHWACMD_FLAG_ASYNCH_EVENT;
     784    pCmd->Flags |= VBOXVHWACMD_FLAG_ASYNCH_EVENT;
    785785    vboxHGSMIBufferSubmit (ppdev, pCmd);
    786786
     
    800800    if(brc)
    801801    {
     802        pCmd->Flags = VBOXVHWACMD_FLAG_ASYNCH_IRQ;
    802803        vboxVHWACommandSubmitAsynchByEvent (ppdev, pCmd, pEvent);
    803804
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