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!");