P4 to Git Change 1577357 by gandryey@gera-w8 on 2018/07/06 17:44:59

SWDEV-158017 - CL_DEVICE_GLOBAL_FREE_MEMORY_AMD doesn't work correctly on PAL backend
	- Adjust system memory calculation for APU systems

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#594 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.hpp#89 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#95 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.hpp#26 edit
This commit is contained in:
foreman
2018-07-06 17:53:44 -04:00
orang tua 73f7b87f92
melakukan 2caff650a9
4 mengubah file dengan 20 tambahan dan 10 penghapusan
+10 -8
Melihat File
@@ -1695,16 +1695,18 @@ bool Device::globalFreeMemory(size_t* freeMemory) const {
freeMemory[LargestFreeBlock] = static_cast<size_t>(std::max(local, invisible) / Ki);
if (settings().apuSystem_) {
Pal::gpusize uswc = allocedMem[Pal::GpuHeapGartUswc];
if (uswc >= heaps_[Pal::GpuHeapGartUswc].heapSize) {
uswc = 0;
Pal::GpuHeap heap = settings().viPlus_ ? Pal::GpuHeapGartCacheable: Pal::GpuHeapGartUswc;
Pal::gpusize sysMem = allocedMem[heap];
if (sysMem >= heaps_[heap].heapSize) {
sysMem = 0;
} else {
uswc = heaps_[Pal::GpuHeapGartUswc].heapSize - uswc;
sysMem = heaps_[heap].heapSize - sysMem +
resourceCache().cacheSize() - resourceCache().lclCacheSize();
}
uswc /= Ki;
freeMemory[TotalFreeMemory] += static_cast<size_t>(uswc);
if (freeMemory[LargestFreeBlock] < uswc) {
freeMemory[LargestFreeBlock] = static_cast<size_t>(uswc);
sysMem /= Ki;
freeMemory[TotalFreeMemory] += static_cast<size_t>(sysMem);
if (freeMemory[LargestFreeBlock] < sysMem) {
freeMemory[LargestFreeBlock] = static_cast<size_t>(sysMem);
}
}