From eac38fdde69110c3fa2e47d6910cdfbb1f8433fe Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 26 Aug 2019 16:56:42 -0400
Subject: [PATCH] P4 to Git Change 1989211 by
vsytchen@vsytchen-remote-ocl-win10 on 2019/08/26 16:54:35
SWDEV-201325 - [OpenCL][LC][Gfx10] Kernels fail to compile when HBCC is enabled
1. Don't add +xnack to the target triplet when compiling for gfx10+
ReviewBoardURL = http://ocltc.amd.com/reviews/r/17885/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#58 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#158 edit
---
rocclr/runtime/device/pal/paldefs.hpp | 8 ++++----
rocclr/runtime/device/pal/paldevice.cpp | 5 +++--
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/rocclr/runtime/device/pal/paldefs.hpp b/rocclr/runtime/device/pal/paldefs.hpp
index c95b3b1c56..1990eb816c 100644
--- a/rocclr/runtime/device/pal/paldefs.hpp
+++ b/rocclr/runtime/device/pal/paldefs.hpp
@@ -174,17 +174,17 @@ static constexpr AMDDeviceInfo Gfx9PlusSubDeviceInfo[] = {
/* Renoir */ {"gfx902", "gfx902", 16, 256, 32, 902, 902, false},
/* Renoir XNACK */ {"gfx903", "gfx902", 16, 256, 32, 902, 903, true},
/* Navi10_A0 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false},
- /* Navi10_A0 XNACK */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, true},
+ /* Navi10_A0 XNACK */ UnknownDevice,
/* Navi10 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false},
- /* Navi10 XNACK */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, true},
+ /* Navi10 XNACK */ UnknownDevice,
/* Navi10Lite */ UnknownDevice,
/* Navi10LiteXNACK */ UnknownDevice,
/* Navi12 */ AMDDeviceInfo{"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, false},
- /* Navi12 XNACK */ AMDDeviceInfo{"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, true},
+ /* Navi12 XNACK */ UnknownDevice,
/* Navi12Lite */ UnknownDevice,
/* Navi12LiteXNACK */ UnknownDevice,
/* Navi14 */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, false},
- /* Navi14 XNACK */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, true},
+ /* Navi14 XNACK */ UnknownDevice,
/* UnknownDevice3 */ UnknownDevice,
/* UnknownDevice3 XNACK */ UnknownDevice,
/* UnknownDevice2 */ UnknownDevice,
diff --git a/rocclr/runtime/device/pal/paldevice.cpp b/rocclr/runtime/device/pal/paldevice.cpp
index fca6ba7ab8..1247a0ef0b 100644
--- a/rocclr/runtime/device/pal/paldevice.cpp
+++ b/rocclr/runtime/device/pal/paldevice.cpp
@@ -885,8 +885,9 @@ bool Device::create(Pal::IDevice* device) {
// XNACK flag should be set for PageMigration | IOMMUv2 Support
uint isXNACKSupported =
- static_cast(properties_.gpuMemoryProperties.flags.pageMigrationEnabled ||
- properties_.gpuMemoryProperties.flags.iommuv2Support);
+ (ipLevel_ < Pal::GfxIpLevel::GfxIp10_1) &&
+ (static_cast(properties_.gpuMemoryProperties.flags.pageMigrationEnabled ||
+ properties_.gpuMemoryProperties.flags.iommuv2Support));
uint subtarget = isXNACKSupported;
// Update HW info for the device