P4 to Git Change 1306787 by skudchad@skudchad_test_win_opencl2 on 2016/08/24 17:43:49

SWDEV-94442 - [IQE] [EllesmereGL] [Win10 TH2] GPU2GPU ocltst causes hard hang intermittently
	- Add gpu events for marker wait in runtime

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/11174/diff/

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#405 edit
This commit is contained in:
foreman
2016-08-24 17:50:16 -04:00
parent 01ed632c6c
commit 3d384e6412
+7 -6
View File
@@ -2624,6 +2624,8 @@ VirtualGPU::submitSignal(amd::SignalCommand & vcmd)
amd::ScopedLock lock(execution());
profilingBegin(vcmd);
gpu::Memory* gpuMemory = dev().getGpuMemory(&vcmd.memory());
GpuEvent gpuEvent;
eventBegin(MainEngine);
if (vcmd.type() == CL_COMMAND_WAIT_SIGNAL_AMD) {
uint64_t surfAddr = gpuMemory->gslResource()->getPhysicalAddress(cs());
uint64_t markerAddr = gpuMemory->gslResource()->getMarkerAddress(cs());
@@ -2632,14 +2634,13 @@ VirtualGPU::submitSignal(amd::SignalCommand & vcmd)
markerOffset, false);
}
else if (vcmd.type() == CL_COMMAND_WRITE_SIGNAL_AMD) {
GpuEvent gpuEvent;
eventBegin(MainEngine);
cs()->p2pMarkerOp(gpuMemory->gslResource(), vcmd.markerValue(), vcmd.markerOffset(), true);
eventEnd(MainEngine, gpuEvent);
gpuMemory->setBusy(*this, gpuEvent);
// Update the global GPU event
setGpuEvent(gpuEvent);
}
eventEnd(MainEngine, gpuEvent);
gpuMemory->setBusy(*this, gpuEvent);
// Update the global GPU event
setGpuEvent(gpuEvent);
profilingEnd(vcmd);
}