P4 to Git Change 1580311 by gandryey@gera-w8 on 2018/07/13 14:24:01
SWDEV-154474 - [Task]: TAN Dual Realtime Queue Enhancement For Radeon Rays
- Add support for the second RT queue
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_command.cpp#16 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#422 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#97 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.hpp#32 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#114 edit
[ROCm/clr commit: 6b409a027b]
Tá an tiomantas seo le fáil i:
1 tuismitheoir
e3ca80a993
tiomantas
7d0b0b6d2c
4 comhad athraithe
+51
-19
Níor tháinig aon chomhaid le do chuardach
@@ -50,17 +50,30 @@ VirtualGPU::Queue* VirtualGPU::Queue::Create(const VirtualGPU& gpu, Pal::QueueTy
|
||||
} else {
|
||||
cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeCompute;
|
||||
}
|
||||
|
||||
if (priority == amd::CommandQueue::Priority::Medium) {
|
||||
qCreateInfo.engineIndex = 0x1;
|
||||
std::map<ExclusiveQueueType, uint32_t>::const_iterator it;
|
||||
if ((priority == amd::CommandQueue::Priority::Medium) &&
|
||||
(amd::CommandQueue::RealTimeDisabled == rtCU)) {
|
||||
it = gpu.dev().exclusiveComputeEnginesId().find(ExclusiveQueueType::Medium);
|
||||
cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeExclusiveCompute;
|
||||
} else if (amd::CommandQueue::RealTimeDisabled != rtCU) {
|
||||
qCreateInfo.numReservedCu = rtCU;
|
||||
qCreateInfo.engineIndex = 0x0;
|
||||
if (priority == amd::CommandQueue::Priority::Medium) {
|
||||
it = gpu.dev().exclusiveComputeEnginesId().find(ExclusiveQueueType::RealTime1);
|
||||
} else {
|
||||
it = gpu.dev().exclusiveComputeEnginesId().find(ExclusiveQueueType::RealTime0);
|
||||
}
|
||||
cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeExclusiveCompute;
|
||||
cmdCreateInfo.flags.realtimeComputeUnits = true;
|
||||
}
|
||||
|
||||
// If the app creates an exclusive compute, then find the engine id
|
||||
if (qCreateInfo.engineType == Pal::EngineTypeExclusiveCompute) {
|
||||
if (it != gpu.dev().exclusiveComputeEnginesId().end()) {
|
||||
qCreateInfo.engineIndex = it->second;
|
||||
}
|
||||
else {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
// Find queue object size
|
||||
size_t qSize = palDev->GetQueueSize(qCreateInfo, &result);
|
||||
if (result != Pal::Result::Success) {
|
||||
|
||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir