From e12576cf2295cf9fd6c10835b2573a1ee5d23260 Mon Sep 17 00:00:00 2001 From: foreman Date: Sun, 9 Apr 2017 02:37:43 -0400 Subject: [PATCH] P4 to Git Change 1396011 by todli@todli-win-opencl-kv1 on 2017/04/09 02:28:44 SWDEV-96241 - Unlike in ORCA, in PAL the actual memory allocated for BusAddressable memory is sometimes larger than "Pow2Align(size, pageSize) + pageSize". So virtual address of marker should be calculated in another way for WaitMarker command. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#47 edit --- rocclr/runtime/device/pal/palvirtual.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rocclr/runtime/device/pal/palvirtual.cpp b/rocclr/runtime/device/pal/palvirtual.cpp index efbe955678..0775016867 100644 --- a/rocclr/runtime/device/pal/palvirtual.cpp +++ b/rocclr/runtime/device/pal/palvirtual.cpp @@ -2794,9 +2794,11 @@ VirtualGPU::submitSignal(amd::SignalCommand & vcmd) uint32_t size = vcmd.memory().getSize(); addVmMemory(pGpuMemory); + + uint32_t offset = pGpuMemory->iMem()->Desc().markerBusAddr - pGpuMemory->iMem()->Desc().surfaceBusAddr; if (vcmd.type() == CL_COMMAND_WAIT_SIGNAL_AMD) { - iCmd()->CmdWaitMemoryValue(*(pGpuMemory->iMem()), size, value, 0xFFFFFFFF, Pal::CompareFunc::GreaterEqual); + iCmd()->CmdWaitMemoryValue(*(pGpuMemory->iMem()), offset, value, 0xFFFFFFFF, Pal::CompareFunc::GreaterEqual); } else if (vcmd.type() == CL_COMMAND_WRITE_SIGNAL_AMD) { iCmd()->CmdUpdateMemory(*(pGpuMemory->iMem()), size, 4, &value);