From c75c7068e6177551c973e044fff55673d9de1101 Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 22 Apr 2019 11:57:54 -0400
Subject: [PATCH] P4 to Git Change 1772710 by gandryey@gera-w8 on 2019/04/22
11:42:59
SWDEV-185753 - [CQE OCL][QR][DTB-Blocker][Vega][Navi][PCO][Windows] observed Failure with Multiple applications on all asics (Navi, Vega, PCO, RV2 ) due to Faulty CL 1766106
- Keep SVM allocation of code segment for HIP only.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#92 edit
[ROCm/clr commit: f84c26afb9ae303f16cf05dc96714e8648fa427f]
---
projects/clr/rocclr/runtime/device/pal/palprogram.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
index 99abab1c62..ed788bda56 100644
--- a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
@@ -65,8 +65,10 @@ bool Segment::alloc(HSAILProgram& prog, amdgpu_hsa_elf_segment_t segment, size_t
align = amd::alignUp(align, sizeof(uint32_t));
amd::Memory* amd_mem_obj = new (prog.dev().context())
- amd::Buffer(prog.dev().context(), 0, amd::alignUp(size, align),
- reinterpret_cast(1));
+ amd::Buffer(prog.dev().context(), 0, amd::alignUp(size, align),
+ // HIP requires SVM allocation for segment code due to possible global variable access and
+ // global variables are a part of code segment with the latest loader
+ amd::IS_HIP ? reinterpret_cast(1) : nullptr);
if (amd_mem_obj == nullptr) {
LogError("[OCL] failed to create a mem object!");