Changeset 37907 in vbox
- Timestamp:
- Jul 12, 2011 5:28:34 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.cpp
r37840 r37907 1025 1025 static BOOLEAN vboxWddmDalCheckAdd(PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_ALLOCATION pAlloc, BOOLEAN fWrite) 1026 1026 { 1027 if (!pAlloc->hSharedHandle) /* only shared resources matter */ 1028 { 1029 Assert(!pAlloc->DirtyAllocListEntry.pNext); 1027 if (!pAlloc->hSharedHandle /* only shared resources matter */ 1028 || !fWrite) /* only write op matter */ 1029 { 1030 Assert(!pAlloc->DirtyAllocListEntry.pNext || (!fWrite && pAlloc->hSharedHandle && pAlloc->fDirtyWrite)); 1030 1031 return FALSE; 1031 1032 } … … 2166 2167 if (pSwapchain->cRTs == 1) 2167 2168 { 2169 IDirect3DSurface9 *pD3D9Bb; 2170 /* only use direct bb if wine is able to handle quick blits bewteen surfaces in one swapchain, 2171 * this is FALSE by now :( */ 2172 # ifdef VBOX_WINE_WITH_FAST_INTERSWAPCHAIN_BLT 2168 2173 /* here we sync the front-buffer with a backbuffer data*/ 2169 IDirect3DSurface9 *pD3D9Bb = (IDirect3DSurface9*)vboxWddmSwapchainGetBb(pSwapchain)->pAlloc->pD3DIf;2174 pD3D9Bb = (IDirect3DSurface9*)vboxWddmSwapchainGetBb(pSwapchain)->pAlloc->pD3DIf; 2170 2175 Assert(pD3D9Bb); 2171 2176 pD3D9Bb->AddRef(); … … 2176 2181 } 2177 2182 pSwapchain->pRenderTargetFbCopy = pD3D9Bb; 2183 # else 2184 pD3D9Bb = pSwapchain->pRenderTargetFbCopy; 2185 # endif 2178 2186 HRESULT tmpHr = pSwapchain->pSwapChainIf->GetFrontBufferData(pD3D9Bb); 2179 2187 if (SUCCEEDED(tmpHr)) … … 2181 2189 VBOXVDBG_DUMP_SYNC_RT(pD3D9Bb); 2182 2190 pSwapchain->bRTFbCopyUpToDate = TRUE; 2191 # ifndef VBOX_WINE_WITH_FAST_INTERSWAPCHAIN_BLT 2192 tmpHr = pDevice->pDevice9If->StretchRect(pD3D9Bb, NULL, (IDirect3DSurface9*)vboxWddmSwapchainGetBb(pSwapchain)->pAlloc->pD3DIf, NULL, D3DTEXF_NONE); 2193 if (FAILED(tmpHr)) 2194 { 2195 WARN(("StretchRect failed, hr (0x%x)", tmpHr)); 2196 } 2197 # endif 2183 2198 } 2184 2199 else … … 2405 2420 #ifndef VBOXWDDM_WITH_VISIBLE_FB 2406 2421 pSwapchain->bRTFbCopyUpToDate = FALSE; 2407 # ifdef VBOXDISP_WITH_WINE_BB_WORKAROUND 2422 # if defined(VBOXDISP_WITH_WINE_BB_WORKAROUND) && defined(VBOX_WINE_WITH_FAST_INTERSWAPCHAIN_BLT) 2423 /* if wine is able to do fast fb->bb blits, we will use backbuffer directly, 2424 * this is NOT possible currently */ 2408 2425 if (pSwapchain->cRTs == 1) 2409 2426 { … … 2573 2590 { 2574 2591 WARN(("GetFrontBufferData failed, hr (0x%x)", hr)); 2592 pSurf->Release(); 2575 2593 return hr; 2576 2594 } … … 6794 6812 HANDLE hSharedHandle = pAllocation->hSharedHandle; 6795 6813 Assert(pAllocation->hSharedHandle); 6814 6796 6815 #ifdef DEBUG_misha 6797 vboxVDbgPrint R(("\n\n********\nShared Resource (0x%x), (0n%d) openned\n\n\n", hSharedHandle, hSharedHandle));6816 vboxVDbgPrint(("\n\n********\nShared Resource (0x%x), (0n%d) openned\n\n\n", hSharedHandle, hSharedHandle)); 6798 6817 #endif 6799 6818
Note:
See TracChangeset
for help on using the changeset viewer.