P4 to Git Change 1456409 by skudchad@skudchad_test_win_opencl2 on 2017/09/07 16:42:55

SWDEV-130305 - For Vega CF configuration on specific chipset (AMD Ryzen 7 1800X) slave ASIC comes out of BACO when ReLive is enabled
	- Finalize() in PAL shouldnt be called during enumeration. This creates a paging queue in WDDM which causes the second GPU to come out of BACO. Move Finalize to initializeHeapResources.

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/13410/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#56 edit


[ROCm/clr commit: 881613438a]
このコミットが含まれているのは:
foreman
2017-09-07 17:02:22 -04:00
コミット a1d2208873
+15 -17
ファイルの表示
@@ -768,23 +768,6 @@ bool Device::create(Pal::IDevice* device) {
// Commit the new settings for the device
result = iDev()->CommitSettingsAndInit();
if (result == Pal::Result::Success) {
Pal::DeviceFinalizeInfo finalizeInfo = {};
// Request all compute engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeCompute].engines =
((1 << numComputeEngines_) - 1);
// Request real time compute engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeExclusiveCompute].engines =
((1 << numExclusiveComputeEngines_) - 1);
// Request all SDMA engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeDma].engines = (1 << numDmaEngines_) - 1;
result = iDev()->Finalize(finalizeInfo);
if (result != Pal::Result::Success) {
return false;
}
}
Pal::GpuMemoryHeapProperties heaps[Pal::GpuHeapCount];
iDev()->GetGpuMemoryHeapProperties(heaps);
@@ -917,6 +900,21 @@ bool Device::create(Pal::IDevice* device) {
bool Device::initializeHeapResources() {
amd::ScopedLock k(lockForInitHeap_);
if (!heapInitComplete_) {
Pal::DeviceFinalizeInfo finalizeInfo = {};
// Request all compute engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeCompute].engines =
((1 << numComputeEngines_) - 1);
// Request real time compute engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeExclusiveCompute].engines =
((1 << numExclusiveComputeEngines_) - 1);
// Request all SDMA engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeDma].engines = (1 << numDmaEngines_) - 1;
if (iDev()->Finalize(finalizeInfo) != Pal::Result::Success) {
return false;
}
heapInitComplete_ = true;
scratch_.resize(