From 90ac067aa5ff6b44e6ee76207fc7cc021c016a6b Mon Sep 17 00:00:00 2001
From: foreman
Date: Fri, 20 Sep 2019 18:05:07 -0400
Subject: [PATCH] P4 to Git Change 2001943 by gandryey@gera-win10 on 2019/09/20
17:49:31
SWDEV-86035 - Switch GPUOpen to the new interface 40
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbedefs#50 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#164 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palgpuopen.cpp#16 edit
---
rocclr/runtime/device/pal/paldevice.cpp | 37 ++++++++++++------------
rocclr/runtime/device/pal/palgpuopen.cpp | 4 +--
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/rocclr/runtime/device/pal/paldevice.cpp b/rocclr/runtime/device/pal/paldevice.cpp
index d85a6536eb..f4aa0fcb0a 100644
--- a/rocclr/runtime/device/pal/paldevice.cpp
+++ b/rocclr/runtime/device/pal/paldevice.cpp
@@ -889,8 +889,7 @@ bool Device::create(Pal::IDevice* device) {
asicRevision_ = properties().revision;
// XNACK flag should be set for PageMigration | IOMMUv2 Support
- uint isXNACKSupported =
- (ipLevel_ < Pal::GfxIpLevel::GfxIp10_1) &&
+ uint isXNACKSupported = (ipLevel_ < Pal::GfxIpLevel::GfxIp10_1) &&
(static_cast(properties_.gpuMemoryProperties.flags.pageMigrationEnabled ||
properties_.gpuMemoryProperties.flags.iommuv2Support));
uint subtarget = isXNACKSupported;
@@ -912,9 +911,9 @@ bool Device::create(Pal::IDevice* device) {
for (uint i = 0; i < properties().engineProperties[Pal::EngineTypeCompute].engineCount; ++i) {
if (properties().engineProperties[Pal::EngineTypeCompute].capabilities[i].flags.exclusive) {
if ((properties()
- .engineProperties[Pal::EngineTypeCompute]
- .capabilities[i]
- .queuePrioritySupport == Pal::SupportQueuePriorityRealtime) &&
+ .engineProperties[Pal::EngineTypeCompute]
+ .capabilities[i]
+ .queuePrioritySupport == Pal::SupportQueuePriorityRealtime) &&
(properties().engineProperties[Pal::EngineTypeCompute].maxNumDedicatedCu > 0)) {
if (exclusiveComputeEnginesId_.find(ExclusiveQueueType::RealTime0) !=
exclusiveComputeEnginesId_.end()) {
@@ -923,9 +922,9 @@ bool Device::create(Pal::IDevice* device) {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime0, i});
}
} else if (properties()
- .engineProperties[Pal::EngineTypeCompute]
- .capabilities[i]
- .queuePrioritySupport == Pal::SupportQueuePriorityMedium) {
+ .engineProperties[Pal::EngineTypeCompute]
+ .capabilities[i]
+ .queuePrioritySupport == Pal::SupportQueuePriorityMedium) {
exclusiveComputeEnginesId_.insert({ExclusiveQueueType::Medium, i});
}
} else {
@@ -1106,18 +1105,21 @@ bool Device::create(Pal::IDevice* device) {
// Master function that handles developer callbacks from PAL.
void PAL_STDCALL Device::PalDeveloperCallback(void* pPrivateData, const Pal::uint32 deviceIndex,
Pal::Developer::CallbackType type, void* pCbData) {
+ VirtualGPU* gpu = nullptr;
Device* device = static_cast(pPrivateData);
const auto& barrier = *static_cast(pCbData);
- const auto* pBarrierData = reinterpret_cast(pCbData);
+ if ((type == Pal::Developer::CallbackType::BarrierBegin) ||
+ (type == Pal::Developer::CallbackType::BarrierEnd)) {
+ const auto* pBarrierData = reinterpret_cast(pCbData);
- VirtualGPU* gpu = nullptr;
- if (pBarrierData->pCmdBuffer != nullptr) {
- // Find which queue the current command buffer belongs
- for (const auto& it : device->vgpus()) {
- if (it->isActiveCmd(pBarrierData->pCmdBuffer)) {
- gpu = it;
- break;
+ if (pBarrierData->pCmdBuffer != nullptr) {
+ // Find which queue the current command buffer belongs
+ for (const auto& it : device->vgpus()) {
+ if (it->isActiveCmd(pBarrierData->pCmdBuffer)) {
+ gpu = it;
+ break;
+ }
}
}
}
@@ -1156,8 +1158,7 @@ bool Device::initializeHeapResources() {
for (const auto& it : exclusiveComputeEnginesId_) {
// Request real time compute engines
- finalizeInfo.requestedEngineCounts[Pal::EngineTypeCompute].engines |=
- (1 << it.second);
+ finalizeInfo.requestedEngineCounts[Pal::EngineTypeCompute].engines |= (1 << it.second);
}
// Request all SDMA engines
finalizeInfo.requestedEngineCounts[Pal::EngineTypeDma].engines = (1 << numDmaEngines_) - 1;
diff --git a/rocclr/runtime/device/pal/palgpuopen.cpp b/rocclr/runtime/device/pal/palgpuopen.cpp
index f548d40693..c40b0946b9 100644
--- a/rocclr/runtime/device/pal/palgpuopen.cpp
+++ b/rocclr/runtime/device/pal/palgpuopen.cpp
@@ -224,7 +224,7 @@ void RgpCaptureMgr::WaitForDriverResume() {
assert(pDriverControlServer != nullptr);
- pDriverControlServer->WaitForDriverResume();
+ pDriverControlServer->DriverTick();
}
// ================================================================================================
@@ -682,7 +682,7 @@ void RgpCaptureMgr::PostDeviceCreate() {
// whether or not the debug vmid has been acquired. External tools use this information to
// decide when it's reasonable to make certain requests of the driver through protocol functions.
if (pDriverControlServer->IsDriverInitialized() == false) {
- pDriverControlServer->FinishDriverInitialization();
+ pDriverControlServer->FinishDeviceInit();
}
}