From acb23488de161f986636a8dc5a626cb42f2038fc Mon Sep 17 00:00:00 2001
From: foreman
Date: Wed, 20 Sep 2017 12:18:30 -0400
Subject: [PATCH] P4 to Git Change 1461118 by gandryey@gera-w8 on 2017/09/20
12:04:57
SWDEV-86035 - Switch back to 8 CBs due to HW hangs with HWSC on VI.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#59 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#32 edit
[ROCm/clr commit: e53571d05b6715696125db999a444604e7c39d11]
---
projects/clr/rocclr/runtime/device/pal/palvirtual.cpp | 2 +-
projects/clr/rocclr/runtime/device/pal/palvirtual.hpp | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
index 95c9667e41..3f4062e5f4 100644
--- a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
@@ -757,7 +757,7 @@ bool VirtualGPU::create(bool profiling, uint deviceQueueSize, uint rtCUs,
createInfo.allocInfo[Pal::CommandDataAlloc].allocHeap = Pal::GpuHeapGartCacheable;
createInfo.allocInfo[Pal::CommandDataAlloc].allocSize =
createInfo.allocInfo[Pal::CommandDataAlloc].suballocSize =
- VirtualGPU::Queue::MaxCommands * (256 + ((profiling) ? 64 : 0));
+ VirtualGPU::Queue::MaxCommands * (320 + ((profiling) ? 64 : 0));
createInfo.allocInfo[Pal::EmbeddedDataAlloc].allocHeap = Pal::GpuHeapGartCacheable;
createInfo.allocInfo[Pal::EmbeddedDataAlloc].allocSize = 64 * Ki;
diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
index ef4d1644a7..2ec48ecdfc 100644
--- a/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
+++ b/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
@@ -41,7 +41,8 @@ class VirtualGPU : public device::VirtualDevice {
public:
class Queue : public amd::HeapObject {
public:
- static const uint MaxCmdBuffers = 16;
+ // Note: More command buffers may cause a HW hang with HWSC on VI family in OCLPerfKernelArguments
+ static const uint MaxCmdBuffers = 8;
static const uint MaxCommands = 256;
static const uint StartCmdBufIdx = 1;
static const uint FirstMemoryReference = 0x80000000;