From 105c5ad3fdde83c2e55aedc557d758ed3ccab35d Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 22 Oct 2018 17:15:40 -0400
Subject: [PATCH] P4 to Git Change 1622418 by gandryey@gera-w8 on 2018/10/22
17:03:57
SWDEV-79445 - OCL generic changes and code clean-up
- Don't disable the trace if start occurred on a queue, which didn't generate a preparation. That should fix random timeouts and still keep trace commands in order.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palgpuopen.cpp#10 edit
[ROCm/clr commit: 697488de5bb9109595d41f4a116d4f0a27a7c2b9]
---
projects/clr/rocclr/runtime/device/pal/palgpuopen.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/pal/palgpuopen.cpp b/projects/clr/rocclr/runtime/device/pal/palgpuopen.cpp
index 99ce6a5cca..ec5b303c9b 100644
--- a/projects/clr/rocclr/runtime/device/pal/palgpuopen.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palgpuopen.cpp
@@ -359,7 +359,9 @@ void RgpCaptureMgr::PreDispatch(VirtualGPU* gpu, const HSAILKernel& kernel,
if (trace_.prepared_disp_count_ >= num_prep_disp_) {
Pal::Result result = BeginRGPTrace(gpu);
- if (result != Pal::Result::Success) {
+ if (Pal::Result::ErrorIncompatibleQueue == result) {
+ // Let's wait until the app will reach the same queue
+ } else if (result != Pal::Result::Success) {
FinishRGPTrace(gpu, true);
}
}
@@ -501,7 +503,7 @@ Pal::Result RgpCaptureMgr::BeginRGPTrace(VirtualGPU* gpu)
// Only allow trace to start if the queue family at prep-time matches the queue
// family at begin time because the command buffer engine type must match
if (trace_.prepare_queue_ != gpu) {
- result = Pal::Result::ErrorIncompatibleQueue;
+ result = Pal::Result::ErrorIncompatibleQueue;
}
}