From 600b7c365ce657fe0be7bf3afed1868478f9cc9a Mon Sep 17 00:00:00 2001
From: foreman
Date: Fri, 26 May 2017 11:43:05 -0400
Subject: [PATCH] P4 to Git Change 1414775 by asalmanp@asalmanp-ocl-stg on
2017/05/26 11:34:07
SWDEV-120065 - [Vega10] Multi 4k60 Hyrid VP9 Chrome Decode Causes System Hang
- The hang happens because runtime was overwriting an incomplete IB due to incorrect result for OS event wait.
- To fix this issue force to wait for fences if ibReuse is enabled.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/12862/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#23 edit
---
rocclr/runtime/device/pal/palvirtual.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rocclr/runtime/device/pal/palvirtual.hpp b/rocclr/runtime/device/pal/palvirtual.hpp
index 898bdd86d4..0e03e323dd 100644
--- a/rocclr/runtime/device/pal/palvirtual.hpp
+++ b/rocclr/runtime/device/pal/palvirtual.hpp
@@ -95,7 +95,7 @@ class VirtualGPU : public device::VirtualDevice {
bool waifForFence(uint cbId, bool ibReuse = false) const {
Pal::Result result = Pal::Result::Success;
uint64_t start = amd::Os::timeNanos();
- while (Pal::Result::Success != (result = iCmdFences_[cbId]->GetStatus())) {
+ while (ibReuse || (Pal::Result::Success != (result = iCmdFences_[cbId]->GetStatus()))) {
if (result == Pal::Result::ErrorFenceNeverSubmitted) {
result = Pal::Result::Success;
break;