mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-06 19:32:25 +08:00
fix: Don't fail on VM reserve with base address on windows
Related-To: LOCI-4333 Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
d21430b17e
commit
5633418891
@@ -568,10 +568,11 @@ bool Wddm::mapGpuVirtualAddress(Gmm *gmm, D3DKMT_HANDLE handle, D3DGPU_VIRTUAL_A
|
||||
return ret;
|
||||
}
|
||||
|
||||
D3DGPU_VIRTUAL_ADDRESS Wddm::reserveGpuVirtualAddress(D3DGPU_VIRTUAL_ADDRESS baseAddress,
|
||||
D3DGPU_VIRTUAL_ADDRESS minimumAddress,
|
||||
D3DGPU_VIRTUAL_ADDRESS maximumAddress,
|
||||
D3DGPU_SIZE_T size) {
|
||||
NTSTATUS Wddm::reserveGpuVirtualAddress(D3DGPU_VIRTUAL_ADDRESS baseAddress,
|
||||
D3DGPU_VIRTUAL_ADDRESS minimumAddress,
|
||||
D3DGPU_VIRTUAL_ADDRESS maximumAddress,
|
||||
D3DGPU_SIZE_T size,
|
||||
D3DGPU_VIRTUAL_ADDRESS *reservedAddress) {
|
||||
UNRECOVERABLE_IF(size % MemoryConstants::pageSize64k);
|
||||
D3DDDI_RESERVEGPUVIRTUALADDRESS reserveGpuVirtualAddress = {};
|
||||
reserveGpuVirtualAddress.BaseAddress = baseAddress;
|
||||
@@ -581,8 +582,8 @@ D3DGPU_VIRTUAL_ADDRESS Wddm::reserveGpuVirtualAddress(D3DGPU_VIRTUAL_ADDRESS bas
|
||||
reserveGpuVirtualAddress.Size = size;
|
||||
|
||||
NTSTATUS status = getGdi()->reserveGpuVirtualAddress(&reserveGpuVirtualAddress);
|
||||
UNRECOVERABLE_IF(status != STATUS_SUCCESS);
|
||||
return reserveGpuVirtualAddress.VirtualAddress;
|
||||
*reservedAddress = reserveGpuVirtualAddress.VirtualAddress;
|
||||
return status;
|
||||
}
|
||||
|
||||
bool Wddm::freeGpuVirtualAddress(D3DGPU_VIRTUAL_ADDRESS &gpuPtr, uint64_t size) {
|
||||
|
||||
@@ -66,7 +66,7 @@ class Wddm : public DriverModel {
|
||||
MOCKABLE_VIRTUAL bool makeResident(const D3DKMT_HANDLE *handles, uint32_t count, bool cantTrimFurther, uint64_t *numberOfBytesToTrim, size_t totalSize);
|
||||
MOCKABLE_VIRTUAL bool mapGpuVirtualAddress(Gmm *gmm, D3DKMT_HANDLE handle, D3DGPU_VIRTUAL_ADDRESS minimumAddress, D3DGPU_VIRTUAL_ADDRESS maximumAddress, D3DGPU_VIRTUAL_ADDRESS preferredAddress, D3DGPU_VIRTUAL_ADDRESS &gpuPtr);
|
||||
bool mapGpuVirtualAddress(AllocationStorageData *allocationStorageData);
|
||||
MOCKABLE_VIRTUAL D3DGPU_VIRTUAL_ADDRESS reserveGpuVirtualAddress(D3DGPU_VIRTUAL_ADDRESS baseAddress, D3DGPU_VIRTUAL_ADDRESS minimumAddress, D3DGPU_VIRTUAL_ADDRESS maximumAddress, D3DGPU_SIZE_T size);
|
||||
MOCKABLE_VIRTUAL NTSTATUS reserveGpuVirtualAddress(D3DGPU_VIRTUAL_ADDRESS baseAddress, D3DGPU_VIRTUAL_ADDRESS minimumAddress, D3DGPU_VIRTUAL_ADDRESS maximumAddress, D3DGPU_SIZE_T size, D3DGPU_VIRTUAL_ADDRESS *reservedAddress);
|
||||
MOCKABLE_VIRTUAL bool createContext(OsContextWin &osContext);
|
||||
MOCKABLE_VIRTUAL void applyAdditionalContextFlags(CREATECONTEXT_PVTDATA &privateData, OsContextWin &osContext);
|
||||
MOCKABLE_VIRTUAL void applyAdditionalMapGPUVAFields(D3DDDI_MAPGPUVIRTUALADDRESS &mapGPUVA, Gmm *gmm);
|
||||
|
||||
Reference in New Issue
Block a user