Changeset 51017 in vbox
- Timestamp:
- Apr 9, 2014 4:31:50 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r50987 r51017 3540 3540 } 3541 3541 /** @todo: add necessary bits */ 3542 WARN(("Impl!"));3542 // WARN(("Impl!")); 3543 3543 cbBuffer = VBOXWDDM_DUMMY_DMABUFFER_SIZE; 3544 3544 break; … … 3552 3552 return STATUS_INVALID_PARAMETER; 3553 3553 } 3554 WARN(("Do we need to do anything here?"));3554 // WARN(("Do we need to do anything here?")); 3555 3555 break; 3556 3556 } … … 5809 5809 WARN(("Present->DmaBufferPrivateDataSize(%d) < sizeof VBOXWDDM_DMA_PRIVATEDATA_BASEHDR (%d)", 5810 5810 pRender->DmaBufferPrivateDataSize , sizeof (VBOXWDDM_DMA_PRIVATEDATA_BASEHDR))); 5811 /* @todo: can this actually happen? what status to return? */5812 5811 return STATUS_INVALID_PARAMETER; 5813 5812 } 5814 5813 if (pRender->PatchLocationListOutSize < pRender->AllocationListSize) 5814 { 5815 WARN(("pRender->PatchLocationListOutSize(%d) < pRender->AllocationListSize(%d)", 5816 pRender->PatchLocationListOutSize, pRender->AllocationListSize)); 5817 return STATUS_INVALID_PARAMETER; 5818 } 5819 5820 NTSTATUS Status = STATUS_SUCCESS; 5821 5822 __try 5823 { 5815 5824 PVBOXWDDM_DMA_PRIVATEDATA_BASEHDR pInputHdr = (PVBOXWDDM_DMA_PRIVATEDATA_BASEHDR)pRender->pCommand; 5816 5825 NTSTATUS Status = STATUS_SUCCESS; … … 5883 5892 for (UINT i = 0; i < pRender->AllocationListSize; ++i, ++pRender->pPatchLocationListOut, ++pAllocationList, ++pSubmInfo, ++pSubmUmInfo) 5884 5893 { 5894 VBOXWDDM_UHGSMI_BUFFER_UI_SUBMIT_INFO SubmUmInfo = *pSubmUmInfo; 5885 5895 D3DDDI_PATCHLOCATIONLIST* pPLL = pRender->pPatchLocationListOut; 5886 5896 PVBOXWDDM_ALLOCATION pAlloc = vboxWddmGetAllocationFromAllocList(pDevExt, pAllocationList); 5887 if ( pSubmUmInfo->offData >= pAlloc->AllocData.SurfDesc.cbSize5888 || pSubmUmInfo->cbData > pAlloc->AllocData.SurfDesc.cbSize5889 || pSubmUmInfo->offData + pSubmUmInfo->cbData > pAlloc->AllocData.SurfDesc.cbSize)5897 if (SubmUmInfo.offData >= pAlloc->AllocData.SurfDesc.cbSize 5898 || SubmUmInfo.cbData > pAlloc->AllocData.SurfDesc.cbSize 5899 || SubmUmInfo.offData + SubmUmInfo.cbData > pAlloc->AllocData.SurfDesc.cbSize) 5890 5900 { 5891 5901 WARN(("invalid data")); … … 5896 5906 5897 5907 if (pAllocationList->SegmentId) 5898 pSubmInfo->offBuffer = pAllocationList->PhysicalAddress.LowPart + pSubmUmInfo->offData;5899 5900 pSubmInfo->cbBuffer = pSubmUmInfo->cbData;5908 pSubmInfo->offBuffer = pAllocationList->PhysicalAddress.LowPart + SubmUmInfo.offData; 5909 5910 pSubmInfo->cbBuffer = SubmUmInfo.cbData; 5901 5911 5902 5912 pPLL->AllocationIndex = i; 5903 5913 pPLL->PatchOffset = RT_OFFSETOF(VBOXCMDVBVA_CRCMD, Cmd.aBuffers[i].offBuffer); 5904 pPLL->AllocationOffset = pSubmUmInfo->offData;5914 pPLL->AllocationOffset = SubmUmInfo.offData; 5905 5915 } 5906 5916 … … 5939 5949 } 5940 5950 default: 5941 {5942 WARN(("unsupported render command %d", pInputHdr->enmCmd));5943 return STATUS_INVALID_PARAMETER;5944 }5951 { 5952 WARN(("unsupported render command %d", pInputHdr->enmCmd)); 5953 return STATUS_INVALID_PARAMETER; 5954 } 5945 5955 } 5946 5956 … … 5951 5961 /* sanity */ 5952 5962 pCmd->u32FenceID = 0; 5953 5963 } 5964 __except (EXCEPTION_EXECUTE_HANDLER) 5965 { 5966 Status = STATUS_INVALID_PARAMETER; 5967 WARN(("invalid parameter")); 5968 } 5954 5969 // LOGF(("LEAVE, hContext(0x%x)", hContext)); 5955 5970 5956 return STATUS_SUCCESS; 5971 return Status; 5972 5973 // LOGF(("LEAVE, hContext(0x%x)", hContext)); 5974 5975 return Status; 5957 5976 } 5958 5977 #endif … … 5973 5992 // LOGF(("ENTER, hContext(0x%x)", hContext)); 5974 5993 5975 Assert(pRender->DmaBufferPrivateDataSize >= sizeof (VBOXWDDM_DMA_PRIVATEDATA_BASEHDR));5976 5994 if (pRender->DmaBufferPrivateDataSize < sizeof (VBOXWDDM_DMA_PRIVATEDATA_BASEHDR)) 5977 5995 {
Note:
See TracChangeset
for help on using the changeset viewer.