P4 to Git Change 1327404 by gandryey@gera-w8 on 2016/10/17 14:20:58

SWDEV-102761 - [CQE OCL][OpenCL on PAL] Few WF Conformance tests are stuck in middle/hardhang while running using csv file
	- Disable non-user mode queue. There is a hang and deadlock in OS if a mix of user and non-user queues is used.
	- Wait for the fence longer if PAL returned a timeout error
	- Slightly change CB warmup code to avoid PAL overhead on the first submit

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#24 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#14 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#30 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#14 edit
This commit is contained in:
foreman
2016-10-17 14:59:22 -04:00
parent 27cbd2878b
commit 1a3e93121d
4 changed files with 66 additions and 46 deletions
+6 -3
View File
@@ -1964,11 +1964,14 @@ Resource::rename(VirtualGPU& gpu, bool force)
void
Resource::warmUpRenames(VirtualGPU& gpu)
{
for (uint i = 0; i < dev().settings().maxRenames_; ++i) {
// Make sure OCL touches every command buffer in the queue to avoid delays on the first submit
uint flush = dev().settings().maxRenames_ / VirtualGPU::Queue::MaxCmdBuffers;
flush = (flush == 0) ? 1 : flush;
for (uint i = 1; i <= dev().settings().maxRenames_; ++i) {
uint dummy = 0;
const bool NoWait = false;
const bool Wait = (i % flush == 0) ? true : false;
// Write 0 for the buffer paging by VidMM
writeRawData(gpu, 0, sizeof(dummy), &dummy, NoWait);
writeRawData(gpu, 0, sizeof(dummy), &dummy, Wait);
const bool Force = true;
rename(gpu, Force);
}