Changeset 80482 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Aug 28, 2019 3:53:17 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 132975
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/common/VBoxMPDevExt.h
r80478 r80482 225 225 #endif 226 226 227 ULONG cbVRAMCpuVisible; /* How much video memory is available for the CPU visible segment. */ 227 228 } VBOXMP_DEVEXT, *PVBOXMP_DEVEXT; 228 229 … … 244 245 DECLINLINE(ULONG) vboxWddmVramCpuVisibleSize(PVBOXMP_DEVEXT pDevExt) 245 246 { 246 #ifdef VBOX_WITH_CROGL 247 if (pDevExt->fCmdVbvaEnabled) 248 { 249 /* all memory layout info should be initialized */ 250 Assert(pDevExt->CmdVbva.Vbva.offVRAMBuffer); 251 /* page aligned */ 252 Assert(!(pDevExt->CmdVbva.Vbva.offVRAMBuffer & 0xfff)); 253 254 return (ULONG)(pDevExt->CmdVbva.Vbva.offVRAMBuffer & ~0xfffULL); 255 } 256 #endif 257 /* all memory layout info should be initialized */ 258 Assert(pDevExt->aSources[0].Vbva.Vbva.offVRAMBuffer); 259 /* page aligned */ 260 Assert(!(pDevExt->aSources[0].Vbva.Vbva.offVRAMBuffer & 0xfff)); 261 262 return (ULONG)(pDevExt->aSources[0].Vbva.Vbva.offVRAMBuffer & ~0xfffULL); 247 return pDevExt->cbVRAMCpuVisible; 263 248 } 264 249 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r80478 r80482 883 883 #endif 884 884 885 /* vboxWddmVramCpuVisibleSize uses this value */ 886 pDevExt->cbVRAMCpuVisible = offset; 887 885 888 rc = VBoxMPCmnMapAdapterMemory(VBoxCommonFromDeviceExt(pDevExt), (void**)&pDevExt->pvVisibleVram, 886 889 0, vboxWddmVramCpuVisibleSize(pDevExt)); … … 903 906 - VBVA_ADAPTER_INFORMATION_SIZE; 904 907 905 /* Size of the VBVA buffer which is used to pass VBOXCMDVBVA_* commands to the host.906 * Estimate max 4KB per command.907 */ 908 ULONG cbCmdVbva = VBOXCMDVBVA_BUFFERSIZE(4096);909 910 if ( cbCmdVbva >= cbAvailable)911 { 912 WARN((" too few VRAM memory fatal, %d, requested for CmdVbva %d", cbAvailable, cbCmdVbva));908 /* vboxWddmVramCpuVisibleSize uses this value */ 909 pDevExt->cbVRAMCpuVisible = cbAvailable; 910 911 int rc = VBoxMPCmnMapAdapterMemory(VBoxCommonFromDeviceExt(pDevExt), (void**)&pDevExt->pvVisibleVram, 912 0, vboxWddmVramCpuVisibleSize(pDevExt)); 913 if (RT_FAILURE(rc)) 914 { 915 WARN(("VBoxMPCmnMapAdapterMemory failed, rc %d", rc)); 913 916 return STATUS_UNSUCCESSFUL; 914 917 } 915 918 916 917 ULONG offCmdVbva = cbAvailable - cbCmdVbva; 918 919 /// @todo The Gallium 3D driver (which still needs pDevExt->fCmdVbvaEnabled == true) does not (should not) use CmdVbva. 920 /// But we still have to create the Vbva structure because code elsewhere in the driver depends on it, 921 /// for example vboxWddmVramCpuVisibleSize. CmdVbva will be removed eventually. 922 int rc = VBoxCmdVbvaCreate(pDevExt, &pDevExt->CmdVbva, offCmdVbva, cbCmdVbva); 923 if (RT_SUCCESS(rc)) 924 { 925 // Do not actually send the request to the host, because the Gallium driver does not need this. 926 // rc = VBoxCmdVbvaEnable(pDevExt, &pDevExt->CmdVbva); 927 // if (RT_SUCCESS(rc)) 928 // { 929 rc = VBoxMPCmnMapAdapterMemory(VBoxCommonFromDeviceExt(pDevExt), (void**)&pDevExt->pvVisibleVram, 930 0, vboxWddmVramCpuVisibleSize(pDevExt)); 931 if (RT_SUCCESS(rc)) 932 return STATUS_SUCCESS; 933 else 934 WARN(("VBoxMPCmnMapAdapterMemory failed, rc %d", rc)); 935 936 // VBoxCmdVbvaDisable(pDevExt, &pDevExt->CmdVbva); 937 // } 938 // else 939 // WARN(("VBoxCmdVbvaEnable failed, rc %d", rc)); 940 941 VBoxCmdVbvaDestroy(pDevExt, &pDevExt->CmdVbva); 942 } 943 else 944 WARN(("VBoxCmdVbvaCreate failed, rc %d", rc)); 945 946 return STATUS_UNSUCCESSFUL; 919 return STATUS_SUCCESS; 947 920 } 948 921 #endif … … 971 944 VBoxMPCmnUnmapAdapterMemory(VBoxCommonFromDeviceExt(pDevExt), (void**)&pDevExt->pvVisibleVram); 972 945 973 if (pDevExt->fCmdVbvaEnabled) 974 { 975 // rc = VBoxCmdVbvaDisable(pDevExt, &pDevExt->CmdVbva); 976 // if (RT_SUCCESS(rc)) 977 // { 978 // rc = VBoxCmdVbvaDestroy(pDevExt, &pDevExt->CmdVbva); 979 // if (RT_FAILURE(rc)) 980 // WARN(("VBoxCmdVbvaDestroy failed %d", rc)); 981 // } 982 // else 983 // WARN(("VBoxCmdVbvaDestroy failed %d", rc)); 984 985 } 986 else 946 if (!pDevExt->fCmdVbvaEnabled) 987 947 { 988 948 for (int i = VBoxCommonFromDeviceExt(pDevExt)->cDisplays-1; i >= 0; --i)
Note:
See TracChangeset
for help on using the changeset viewer.