From d610b81968a72eb1c7e1f70cf31b958131f11e43 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 [ROCm/clr commit: 600b7c365ce657fe0be7bf3afed1868478f9cc9a] --- projects/clr/rocclr/runtime/device/pal/palvirtual.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp index 898bdd86d4..0e03e323dd 100644 --- a/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp +++ b/projects/clr/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;