Changeset 49332 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
- Timestamp:
- Oct 30, 2013 1:13:02 PM (11 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxUhgsmiBase.cpp
r43723 r49332 33 33 int vboxUhgsmiBaseBufferTerm(PVBOXUHGSMI_BUFFER_PRIVATE_ESC_BASE pBuffer) 34 34 { 35 PVBOXUHGSMI_PRIVATE_BASE pPrivate = VBOXUHGSMIBASE_GET(pBuffer-> PrivateBase.pHgsmi);35 PVBOXUHGSMI_PRIVATE_BASE pPrivate = VBOXUHGSMIBASE_GET(pBuffer->BasePrivate.pHgsmi); 36 36 VBOXDISPIFESCAPE_UHGSMI_DEALLOCATE DeallocInfo = {0}; 37 37 DeallocInfo.EscapeHdr.escapeCode = VBOXESC_UHGSMI_DEALLOCATE; … … 98 98 pBuffer->Alloc = AllocInfo.Alloc; 99 99 Assert(pBuffer->Alloc.pvData); 100 pBuffer-> PrivateBase.pHgsmi = pPrivate;101 pBuffer-> PrivateBase.Base.pfnLock = vboxUhgsmiBaseEscBufferLock;102 pBuffer-> PrivateBase.Base.pfnUnlock = vboxUhgsmiBaseEscBufferUnlock;103 pBuffer-> PrivateBase.Base.pfnDestroy = pfnDestroy;104 pBuffer-> PrivateBase.Base.fType = fUhgsmiType;105 pBuffer-> PrivateBase.Base.cbBuffer = AllocInfo.Alloc.cbData;100 pBuffer->BasePrivate.pHgsmi = pPrivate; 101 pBuffer->BasePrivate.Base.pfnLock = vboxUhgsmiBaseEscBufferLock; 102 pBuffer->BasePrivate.Base.pfnUnlock = vboxUhgsmiBaseEscBufferUnlock; 103 pBuffer->BasePrivate.Base.pfnDestroy = pfnDestroy; 104 pBuffer->BasePrivate.Base.fType = fUhgsmiType; 105 pBuffer->BasePrivate.Base.cbBuffer = AllocInfo.Alloc.cbData; 106 106 pBuffer->hSynch = hSynch; 107 107 return VINF_SUCCESS; … … 137 137 if (RT_SUCCESS(rc)) 138 138 { 139 *ppBuf = &pBuffer-> PrivateBase.Base;139 *ppBuf = &pBuffer->BasePrivate.Base; 140 140 return VINF_SUCCESS; 141 141 } … … 182 182 { 183 183 pSubmInfo->Info.offData = 0; 184 pSubmInfo->Info.cbData = pBuf-> PrivateBase.Base.cbBuffer;184 pSubmInfo->Info.cbData = pBuf->BasePrivate.Base.cbBuffer; 185 185 } 186 186 else -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxUhgsmiBase.h
r44529 r49332 68 68 typedef struct VBOXUHGSMI_BUFFER_PRIVATE_ESC_BASE 69 69 { 70 VBOXUHGSMI_BUFFER_PRIVATE_BASE PrivateBase;70 VBOXUHGSMI_BUFFER_PRIVATE_BASE BasePrivate; 71 71 VBOXVIDEOCM_UM_ALLOC Alloc; 72 72 HANDLE hSynch; … … 75 75 typedef struct VBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE 76 76 { 77 VBOXUHGSMI_BUFFER_PRIVATE_BASE PrivateBase;77 VBOXUHGSMI_BUFFER_PRIVATE_BASE BasePrivate; 78 78 D3DKMT_HANDLE hAllocation; 79 79 UINT aLockPageIndices[1]; … … 84 84 #define VBOXUHGSMIBASE_GET_BUFFER(_p) VBOXUHGSMIBASE_GET_PRIVATE(_p, VBOXUHGSMI_BUFFER_PRIVATE_BASE) 85 85 86 #define VBOXUHGSMIPRIVATEBASE_GET_PRIVATE(_p, _t) ((_t*)(((uint8_t*)_p) - RT_OFFSETOF(_t, PrivateBase.Base)))86 #define VBOXUHGSMIPRIVATEBASE_GET_PRIVATE(_p, _t) ((_t*)(((uint8_t*)_p) - RT_OFFSETOF(_t, BasePrivate.Base))) 87 87 #define VBOXUHGSMIESCBASE_GET_BUFFER(_p) VBOXUHGSMIPRIVATEBASE_GET_PRIVATE(_p, VBOXUHGSMI_BUFFER_PRIVATE_ESC_BASE) 88 88 #define VBOXUHGSMDXALLOCBASE_GET_BUFFER(_p) VBOXUHGSMIPRIVATEBASE_GET_PRIVATE(_p, VBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE) 89 89 90 DECLINLINE(int) vboxUhgsmiBaseLockData(PVBOXUHGSMI_BUFFER pBuf, uint32_t offLock, uint32_t cbLock, VBOXUHGSMI_BUFFER_LOCK_FLAGS fFlags, 91 D3DDDICB_LOCKFLAGS *pfFlags, UINT *pNumPages, UINT* pPages) 92 { 90 DECLINLINE(int) vboxUhgsmiBaseDxLockData(PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE pPrivate, uint32_t offLock, uint32_t cbLock, VBOXUHGSMI_BUFFER_LOCK_FLAGS fFlags, 91 D3DDDICB_LOCKFLAGS *pfFlags, UINT *pNumPages) 92 { 93 PVBOXUHGSMI_BUFFER pBuf = &pPrivate->BasePrivate.Base; 93 94 D3DDDICB_LOCKFLAGS fLockFlags; 94 95 fLockFlags.Value = 0; … … 127 128 for (UINT i = 0, j = iFirstPage; i < cPages; ++i, ++j) 128 129 { 129 pP ages[i] = j;130 pPrivate->aLockPageIndices[i] = j; 130 131 } 131 132 } … … 141 142 } 142 143 143 #if 0 144 DECLINLINE(int) vboxUhgsmiBaseDmaFill(PVBOXUHGSMI_BUFFER_SUBMIT aBuffers, uint32_t cBuffers, 144 DECLINLINE(int) vboxUhgsmiBaseDxDmaFill(PVBOXUHGSMI_BUFFER_SUBMIT aBuffers, uint32_t cBuffers, 145 145 VOID* pCommandBuffer, UINT *pCommandBufferSize, 146 146 D3DDDI_ALLOCATIONLIST *pAllocationList, UINT AllocationListSize, … … 170 170 { 171 171 PVBOXUHGSMI_BUFFER_SUBMIT pBufInfo = &aBuffers[i]; 172 PVBOXUHGSMI_BUFFER_PRIVATE_ BASE pBuffer = VBOXUHGSMIBASE_GET_BUFFER(pBufInfo->pBuf);172 PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE pBuffer = VBOXUHGSMDXALLOCBASE_GET_BUFFER(pBufInfo->pBuf); 173 173 174 174 memset(pAllocationList, 0, sizeof (D3DDDI_ALLOCATIONLIST)); … … 181 181 { 182 182 pBufSubmInfo->offData = 0; 183 pBufSubmInfo->cbData = pBuffer->Base .cbBuffer;183 pBufSubmInfo->cbData = pBuffer->BasePrivate.Base.cbBuffer; 184 184 } 185 185 else … … 195 195 return VINF_SUCCESS; 196 196 } 197 #endif198 197 199 198 DECLCALLBACK(int) vboxUhgsmiBaseEscBufferLock(PVBOXUHGSMI_BUFFER pBuf, uint32_t offLock, uint32_t cbLock, VBOXUHGSMI_BUFFER_LOCK_FLAGS fFlags, void**pvLock); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxUhgsmiDisp.cpp
r44529 r49332 22 22 #define VBOXUHGSMID3D_GET(_p) VBOXUHGSMID3D_GET_PRIVATE(_p, VBOXUHGSMI_PRIVATE_D3D) 23 23 24 #if 025 #define VBOXUHGSMID3D_GET_BUFFER(_p) VBOXUHGSMID3D_GET_PRIVATE(_p, VBOXUHGSMI_BUFFER_PRIVATE_D3D)26 27 24 #include <iprt/mem.h> 28 25 #include <iprt/err.h> 29 26 30 typedef struct VBOXUHGSMI_BUFFER_PRIVATE_D3D31 {32 VBOXUHGSMI_BUFFER_PRIVATE_BASE BasePrivate;33 PVBOXWDDMDISP_DEVICE pDevice;34 UINT aLockPageIndices[1];35 } VBOXUHGSMI_BUFFER_PRIVATE_D3D, *PVBOXUHGSMI_BUFFER_PRIVATE_D3D;36 37 38 39 27 DECLCALLBACK(int) vboxUhgsmiD3DBufferDestroy(PVBOXUHGSMI_BUFFER pBuf) 40 28 { 41 PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuffer = VBOXUHGSMID3D_GET_BUFFER(pBuf); 29 PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE pBuffer = VBOXUHGSMDXALLOCBASE_GET_BUFFER(pBuf); 30 struct VBOXWDDMDISP_DEVICE *pDevice = VBOXUHGSMID3D_GET(pBuffer->BasePrivate.pHgsmi)->pDevice; 42 31 D3DDDICB_DEALLOCATE DdiDealloc; 43 32 DdiDealloc.hResource = 0; 44 33 DdiDealloc.NumAllocations = 1; 45 DdiDealloc.HandleList = &pBuffer->BasePrivate.hAllocation; 46 HRESULT hr = pBuffer->pDevice->RtCallbacks.pfnDeallocateCb(pBuffer->pDevice->hDevice, &DdiDealloc); 47 Assert(hr == S_OK); 48 if (hr == S_OK) 49 { 50 if (pBuffer->BasePrivate.hSynch) 51 CloseHandle(pBuffer->BasePrivate.hSynch); 34 DdiDealloc.HandleList = &pBuffer->hAllocation; 35 HRESULT hr = pDevice->RtCallbacks.pfnDeallocateCb(pDevice->hDevice, &DdiDealloc); 36 if (hr == S_OK) 37 { 52 38 RTMemFree(pBuffer); 53 39 return VINF_SUCCESS; 54 40 } 55 return VERR_GENERAL_FAILURE; 56 } 57 41 42 WARN(("pfnDeallocateCb failed, hr %#x", hr)); 43 return VERR_GENERAL_FAILURE; 44 } 45 46 /* typedef DECLCALLBACK(int) FNVBOXUHGSMI_BUFFER_LOCK(PVBOXUHGSMI_BUFFER pBuf, uint32_t offLock, uint32_t cbLock, VBOXUHGSMI_BUFFER_LOCK_FLAGS fFlags, void**pvLock); */ 58 47 DECLCALLBACK(int) vboxUhgsmiD3DBufferLock(PVBOXUHGSMI_BUFFER pBuf, uint32_t offLock, uint32_t cbLock, VBOXUHGSMI_BUFFER_LOCK_FLAGS fFlags, void**pvLock) 59 48 { 60 PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuffer = VBOXUHGSMID3D_GET_BUFFER(pBuf); 49 PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE pBuffer = VBOXUHGSMDXALLOCBASE_GET_BUFFER(pBuf); 50 struct VBOXWDDMDISP_DEVICE *pDevice = VBOXUHGSMID3D_GET(pBuffer->BasePrivate.pHgsmi)->pDevice; 61 51 D3DDDICB_LOCK DdiLock = {0}; 62 DdiLock.hAllocation = pBuffer-> BasePrivate.hAllocation;52 DdiLock.hAllocation = pBuffer->hAllocation; 63 53 DdiLock.PrivateDriverData = 0; 64 54 65 int rc = vboxUhgsmiBaseLockData(pBuf, offLock, cbLock, fFlags, 66 &DdiLock.Flags, &DdiLock.NumPages, pBuffer->aLockPageIndices); 67 AssertRC(rc); 68 if (RT_FAILURE(rc)) 55 int rc = vboxUhgsmiBaseDxLockData(pBuffer, offLock, cbLock, fFlags, 56 &DdiLock.Flags, &DdiLock.NumPages); 57 if (!RT_SUCCESS(rc)) 58 { 59 WARN(("vboxUhgsmiBaseDxLockData failed rc %d", rc)); 69 60 return rc; 61 } 70 62 71 63 if (DdiLock.NumPages) … … 74 66 DdiLock.pPages = NULL; 75 67 76 HRESULT hr = pBuffer->pDevice->RtCallbacks.pfnLockCb(pBuffer->pDevice->hDevice, &DdiLock); 77 Assert(hr == S_OK); 68 HRESULT hr = pDevice->RtCallbacks.pfnLockCb(pDevice->hDevice, &DdiLock); 78 69 if (hr == S_OK) 79 70 { … … 81 72 return VINF_SUCCESS; 82 73 } 74 75 WARN(("pfnLockCb failed, hr %#x", hr)); 83 76 return VERR_GENERAL_FAILURE; 84 77 } … … 86 79 DECLCALLBACK(int) vboxUhgsmiD3DBufferUnlock(PVBOXUHGSMI_BUFFER pBuf) 87 80 { 88 PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuffer = VBOXUHGSMID3D_GET_BUFFER(pBuf); 81 PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE pBuffer = VBOXUHGSMDXALLOCBASE_GET_BUFFER(pBuf); 82 struct VBOXWDDMDISP_DEVICE *pDevice = VBOXUHGSMID3D_GET(pBuffer->BasePrivate.pHgsmi)->pDevice; 89 83 D3DDDICB_UNLOCK DdiUnlock; 90 84 DdiUnlock.NumAllocations = 1; 91 DdiUnlock.phAllocations = &pBuffer->BasePrivate.hAllocation; 92 HRESULT hr = pBuffer->pDevice->RtCallbacks.pfnUnlockCb(pBuffer->pDevice->hDevice, &DdiUnlock); 93 Assert(hr == S_OK); 94 if (hr == S_OK) 95 return VINF_SUCCESS; 96 return VERR_GENERAL_FAILURE; 97 } 98 99 DECLCALLBACK(int) vboxUhgsmiD3DBufferCreate(PVBOXUHGSMI pHgsmi, uint32_t cbBuf, VBOXUHGSMI_BUFFER_TYPE_FLAGS fUhgsmiType, PVBOXUHGSMI_BUFFER* ppBuf) 100 { 101 HANDLE hSynch = NULL; 85 DdiUnlock.phAllocations = &pBuffer->hAllocation; 86 HRESULT hr = pDevice->RtCallbacks.pfnUnlockCb(pDevice->hDevice, &DdiUnlock); 87 if (hr == S_OK) 88 return VINF_SUCCESS; 89 90 WARN(("pfnUnlockCb failed, hr %#x", hr)); 91 return VERR_GENERAL_FAILURE; 92 } 93 94 /*typedef DECLCALLBACK(int) FNVBOXUHGSMI_BUFFER_CREATE(PVBOXUHGSMI pHgsmi, uint32_t cbBuf, VBOXUHGSMI_BUFFER_TYPE_FLAGS fType, PVBOXUHGSMI_BUFFER* ppBuf);*/ 95 DECLCALLBACK(int) vboxUhgsmiD3DBufferCreate(PVBOXUHGSMI pHgsmi, uint32_t cbBuf, VBOXUHGSMI_BUFFER_TYPE_FLAGS fType, PVBOXUHGSMI_BUFFER* ppBuf) 96 { 102 97 if (!cbBuf) 103 98 return VERR_INVALID_PARAMETER; 104 99 105 int rc = vboxUhgsmiBaseEventChkCreate(fUhgsmiType, &hSynch); 106 AssertRC(rc); 107 if (RT_FAILURE(rc)) 108 return rc; 100 int rc = VINF_SUCCESS; 109 101 110 102 cbBuf = VBOXWDDM_ROUNDBOUND(cbBuf, 0x1000); … … 114 106 115 107 PVBOXUHGSMI_PRIVATE_D3D pPrivate = VBOXUHGSMID3D_GET(pHgsmi); 116 PVBOXUHGSMI_BUFFER_PRIVATE_D3D pBuf = (PVBOXUHGSMI_BUFFER_PRIVATE_D3D)RTMemAllocZ(RT_OFFSETOF(VBOXUHGSMI_BUFFER_PRIVATE_D3D, aLockPageIndices[cPages])); 117 Assert(pBuf); 108 PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE pBuf = (PVBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE)RTMemAllocZ(RT_OFFSETOF(VBOXUHGSMI_BUFFER_PRIVATE_DX_ALLOC_BASE, aLockPageIndices[cPages])); 118 109 if (pBuf) 119 110 { 120 struct 121 { 122 D3DDDICB_ALLOCATE DdiAlloc; 123 D3DDDI_ALLOCATIONINFO DdiAllocInfo; 124 VBOXWDDM_ALLOCINFO AllocInfo; 125 } Buf; 126 memset(&Buf, 0, sizeof (Buf)); 127 Buf.DdiAlloc.hResource = NULL; 128 Buf.DdiAlloc.hKMResource = NULL; 129 Buf.DdiAlloc.NumAllocations = 1; 130 Buf.DdiAlloc.pAllocationInfo = &Buf.DdiAllocInfo; 131 Buf.DdiAllocInfo.pPrivateDriverData = &Buf.AllocInfo; 132 Buf.DdiAllocInfo.PrivateDriverDataSize = sizeof (Buf.AllocInfo); 133 Buf.AllocInfo.enmType = VBOXWDDM_ALLOC_TYPE_UMD_HGSMI_BUFFER; 134 Buf.AllocInfo.cbBuffer = cbBuf; 135 Buf.AllocInfo.hSynch = hSynch; 136 Buf.AllocInfo.fUhgsmiType = fUhgsmiType; 137 138 HRESULT hr = pPrivate->pDevice->RtCallbacks.pfnAllocateCb(pPrivate->pDevice->hDevice, &Buf.DdiAlloc); 139 Assert(hr == S_OK); 111 D3DDDICB_ALLOCATE DdiAlloc; 112 D3DDDI_ALLOCATIONINFO DdiAllocInfo; 113 VBOXWDDM_ALLOCINFO AllocInfo; 114 115 memset(&DdiAlloc, 0, sizeof (DdiAlloc)); 116 DdiAlloc.hResource = NULL; 117 DdiAlloc.hKMResource = NULL; 118 DdiAlloc.NumAllocations = 1; 119 DdiAlloc.pAllocationInfo = &DdiAllocInfo; 120 DdiAllocInfo.pPrivateDriverData = &AllocInfo; 121 DdiAllocInfo.PrivateDriverDataSize = sizeof (AllocInfo); 122 AllocInfo.enmType = VBOXWDDM_ALLOC_TYPE_UMD_HGSMI_BUFFER; 123 AllocInfo.cbBuffer = cbBuf; 124 AllocInfo.hSynch = 0; 125 AllocInfo.fUhgsmiType = fType; 126 127 HRESULT hr = pPrivate->pDevice->RtCallbacks.pfnAllocateCb(pPrivate->pDevice->hDevice, &DdiAlloc); 140 128 if (hr == S_OK) 141 129 { 142 Assert( Buf.DdiAllocInfo.hAllocation);130 Assert(DdiAllocInfo.hAllocation); 143 131 pBuf->BasePrivate.Base.pfnLock = vboxUhgsmiD3DBufferLock; 144 132 pBuf->BasePrivate.Base.pfnUnlock = vboxUhgsmiD3DBufferUnlock; 145 // pBuf->Base.pfnAdjustValidDataRange = vboxUhgsmiD3DBufferAdjustValidDataRange;146 133 pBuf->BasePrivate.Base.pfnDestroy = vboxUhgsmiD3DBufferDestroy; 147 134 148 pBuf->BasePrivate.Base.fType = f UhgsmiType;135 pBuf->BasePrivate.Base.fType = fType; 149 136 pBuf->BasePrivate.Base.cbBuffer = cbBuf; 150 137 151 pBuf->pDevice = pPrivate->pDevice; 152 pBuf->BasePrivate.hAllocation = Buf.DdiAllocInfo.hAllocation; 138 pBuf->hAllocation = DdiAllocInfo.hAllocation; 153 139 154 140 *ppBuf = &pBuf->BasePrivate.Base; … … 156 142 return VINF_SUCCESS; 157 143 } 144 else 145 { 146 WARN(("pfnAllocateCb failed hr %#x")); 147 rc = VERR_GENERAL_FAILURE; 148 } 158 149 159 150 RTMemFree(pBuf); 160 151 } 161 152 else 153 { 154 WARN(("RTMemAllocZ failed")); 162 155 rc = VERR_NO_MEMORY; 163 164 if (hSynch) 165 CloseHandle(hSynch); 156 } 166 157 167 158 return rc; 168 159 } 169 160 161 /* typedef DECLCALLBACK(int) FNVBOXUHGSMI_BUFFER_SUBMIT(PVBOXUHGSMI pHgsmi, PVBOXUHGSMI_BUFFER_SUBMIT aBuffers, uint32_t cBuffers); */ 170 162 DECLCALLBACK(int) vboxUhgsmiD3DBufferSubmit(PVBOXUHGSMI pHgsmi, PVBOXUHGSMI_BUFFER_SUBMIT aBuffers, uint32_t cBuffers) 171 163 { … … 173 165 PVBOXWDDMDISP_DEVICE pDevice = pHg->pDevice; 174 166 UINT cbDmaCmd = pDevice->DefaultContext.ContextInfo.CommandBufferSize; 175 int rc = vboxUhgsmiBaseD maFill(aBuffers, cBuffers,167 int rc = vboxUhgsmiBaseDxDmaFill(aBuffers, cBuffers, 176 168 pDevice->DefaultContext.ContextInfo.pCommandBuffer, &cbDmaCmd, 177 169 pDevice->DefaultContext.ContextInfo.pAllocationList, pDevice->DefaultContext.ContextInfo.AllocationListSize, 178 170 pDevice->DefaultContext.ContextInfo.pPatchLocationList, pDevice->DefaultContext.ContextInfo.PatchLocationListSize); 179 AssertRC(rc);180 171 if (RT_FAILURE(rc)) 172 { 173 WARN(("vboxUhgsmiBaseDxDmaFill failed, rc %d", rc)); 181 174 return rc; 175 } 182 176 183 177 D3DDDICB_RENDER DdiRender = {0}; … … 194 188 195 189 HRESULT hr = pDevice->RtCallbacks.pfnRenderCb(pDevice->hDevice, &DdiRender); 196 Assert(hr == S_OK);197 190 if (hr == S_OK) 198 191 { … … 207 200 } 208 201 209 return VERR_GENERAL_FAILURE; 210 } 211 212 HRESULT vboxUhgsmiD3DInit(PVBOXUHGSMI_PRIVATE_D3D pHgsmi, PVBOXWDDMDISP_DEVICE pDevice) 202 WARN(("pfnRenderCb failed, hr %#x", hr)); 203 return VERR_GENERAL_FAILURE; 204 } 205 206 void vboxUhgsmiD3DInit(PVBOXUHGSMI_PRIVATE_D3D pHgsmi, PVBOXWDDMDISP_DEVICE pDevice) 213 207 { 214 208 pHgsmi->BasePrivate.Base.pfnBufferCreate = vboxUhgsmiD3DBufferCreate; 215 209 pHgsmi->BasePrivate.Base.pfnBufferSubmit = vboxUhgsmiD3DBufferSubmit; 210 /* no escapes (for now) */ 211 pHgsmi->BasePrivate.pfnEscape = NULL; 216 212 pHgsmi->pDevice = pDevice; 217 return S_OK; 218 } 219 #endif 213 } 220 214 221 215 static DECLCALLBACK(int) vboxCrHhgsmiDispEscape(struct VBOXUHGSMI_PRIVATE_BASE *pHgsmi, void *pvData, uint32_t cbData, BOOL fHwAccess) -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxUhgsmiDisp.h
r44529 r49332 29 29 } VBOXUHGSMI_PRIVATE_D3D, *PVBOXUHGSMI_PRIVATE_D3D; 30 30 31 #if 032 31 void vboxUhgsmiD3DInit(PVBOXUHGSMI_PRIVATE_D3D pHgsmi, struct VBOXWDDMDISP_DEVICE *pDevice); 33 #endif34 32 35 33 void vboxUhgsmiD3DEscInit(PVBOXUHGSMI_PRIVATE_D3D pHgsmi, struct VBOXWDDMDISP_DEVICE *pDevice); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxUhgsmiKmt.cpp
r44529 r49332 71 71 EnterCriticalSection(&pBuffer->CritSect); 72 72 73 int rc = vboxUhgsmiBase LockData(pBuf, offLock, cbLock, fFlags,74 &DdiLock.Flags, &DdiLock.NumPages , pBuffer->aLockPageIndices);73 int rc = vboxUhgsmiBaseDxLockData(&pBuffer->BasePrivate, offLock, cbLock, fFlags, 74 &DdiLock.Flags, &DdiLock.NumPages); 75 75 AssertRC(rc); 76 76 if (RT_FAILURE(rc)) … … 194 194 PVBOXUHGSMI_PRIVATE_KMT pHg = VBOXUHGSMIKMT_GET(pHgsmi); 195 195 UINT cbDmaCmd = pHg->Context.CommandBufferSize; 196 int rc = vboxUhgsmiBaseD maFill(aBuffers, cBuffers,196 int rc = vboxUhgsmiBaseDxDmaFill(aBuffers, cBuffers, 197 197 pHg->Context.pCommandBuffer, &cbDmaCmd, 198 198 pHg->Context.pAllocationList, pHg->Context.AllocationListSize,
Note:
See TracChangeset
for help on using the changeset viewer.