P4 to Git Change 1560456 by gandryey@gera-w8 on 2018/05/28 14:41:37
SWDEV-154862 - [CQE OCL][DTB][DTB-BLOCKER][Perf][QR][G] Upto 13% Performance drop observed while running CLFFT subtests due to Faulty CL #1559246 - Disable command queue notification if the event is on the same queue. Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_common.hpp#22 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_execute.cpp#27 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_gl.cpp#59 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp#24 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_memobj.cpp#82 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_profile_amd.cpp#4 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_sdi_amd.cpp#4 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_svm.cpp#26 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_thread_trace_amd.cpp#9 edit
Este commit está contenido en:
@@ -181,7 +181,7 @@ clGetInfo(
|
||||
static inline cl_int
|
||||
clSetEventWaitList(
|
||||
Command::EventWaitList& eventWaitList,
|
||||
const Context& context,
|
||||
const amd::HostQueue& hostQueue,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list)
|
||||
{
|
||||
@@ -196,10 +196,10 @@ clSetEventWaitList(
|
||||
if (!is_valid(event)) {
|
||||
return CL_INVALID_EVENT_WAIT_LIST;
|
||||
}
|
||||
if (&context != &amdEvent->context()) {
|
||||
if (&hostQueue.context() != &amdEvent->context()) {
|
||||
return CL_INVALID_CONTEXT;
|
||||
}
|
||||
if (!amdEvent->notifyCmdQueue()) {
|
||||
if ((amdEvent->command().queue() != &hostQueue) && !amdEvent->notifyCmdQueue()) {
|
||||
return CL_INVALID_EVENT_WAIT_LIST;
|
||||
}
|
||||
eventWaitList.push_back(amdEvent);
|
||||
|
||||
@@ -250,7 +250,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueNDRangeKernel,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -459,7 +459,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueNativeKernel,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -640,7 +640,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueMarkerWithWaitList,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue->context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, *hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -702,7 +702,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWaitForEvents,
|
||||
amd::HostQueue& hostQueue = *queue;
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events, event_list);
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events, event_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
}
|
||||
@@ -796,7 +796,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueBarrierWithWaitList,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue->context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, *hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -1934,7 +1934,7 @@ cl_int clEnqueueAcquireExtObjectsAMD(cl_command_queue command_queue, cl_uint num
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -2007,7 +2007,7 @@ cl_int clEnqueueReleaseExtObjectsAMD(cl_command_queue command_queue, cl_uint num
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -240,7 +240,7 @@ static cl_int EnqueueTransferBufferFromSsgFileAMD(
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -608,7 +608,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueReadBuffer,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -748,7 +748,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWriteBuffer,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -877,7 +877,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueCopyBuffer,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -1060,7 +1060,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueReadBufferRect,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -1244,7 +1244,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWriteBufferRect,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -1425,7 +1425,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueCopyBufferRect,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -2195,7 +2195,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueReadImage,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -2377,7 +2377,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWriteImage,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -2556,7 +2556,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueCopyImage,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -2730,7 +2730,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueCopyImageToBuffer,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -2884,7 +2884,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueCopyBufferToImage,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -3060,7 +3060,7 @@ RUNTIME_ENTRY_RET(void*, clEnqueueMapBuffer,
|
||||
|
||||
// Wait for possible pending operations
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
*not_null(errcode_ret) = err;
|
||||
@@ -3325,7 +3325,7 @@ RUNTIME_ENTRY_RET(void*, clEnqueueMapImage,
|
||||
|
||||
// Wait for possible pending operations
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
*not_null(errcode_ret) = err;
|
||||
@@ -3464,7 +3464,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueUnmapMemObject,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -4203,7 +4203,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueFillBuffer,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -4362,7 +4362,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueFillImage,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -4513,7 +4513,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueMigrateMemObjects,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -171,7 +171,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueBeginPerfCounterAMD,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue->context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, *hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -257,7 +257,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueEndPerfCounterAMD,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue->context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, *hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -38,7 +38,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWaitSignalAMD,
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err =
|
||||
amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events, event_wait_list);
|
||||
amd::clSetEventWaitList(eventWaitList, hostQueue, num_events, event_wait_list);
|
||||
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -107,7 +107,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueWriteSignalAMD,
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err =
|
||||
amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events, event_wait_list);
|
||||
amd::clSetEventWaitList(eventWaitList, hostQueue, num_events, event_wait_list);
|
||||
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -186,7 +186,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueMakeBuffersResidentAMD,
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err =
|
||||
amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events, event_wait_list);
|
||||
amd::clSetEventWaitList(eventWaitList, hostQueue, num_events, event_wait_list);
|
||||
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -305,7 +305,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueSVMFree,
|
||||
amd::HostQueue& hostQueue = *queue;
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -431,7 +431,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueSVMMemcpy,
|
||||
amd::HostQueue& hostQueue = *queue;
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -568,7 +568,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueSVMMemFill,
|
||||
amd::HostQueue& hostQueue = *queue;
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -731,7 +731,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueSVMMap,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -839,7 +839,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueSVMUnmap,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -1166,7 +1166,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueSVMMigrateMem,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue.context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
@@ -319,7 +319,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueThreadTraceCommandAMD,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue->context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, *hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
@@ -481,7 +481,7 @@ RUNTIME_ENTRY(cl_int, clEnqueueBindThreadTraceBufferAMD,
|
||||
}
|
||||
|
||||
amd::Command::EventWaitList eventWaitList;
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, hostQueue->context(), num_events_in_wait_list,
|
||||
cl_int err = amd::clSetEventWaitList(eventWaitList, *hostQueue, num_events_in_wait_list,
|
||||
event_wait_list);
|
||||
if (err != CL_SUCCESS) {
|
||||
return err;
|
||||
|
||||
Referencia en una nueva incidencia
Block a user