From 2581c71afc2bc0806d7e52b8ab27c632e30dd2c2 Mon Sep 17 00:00:00 2001 From: foreman Date: Thu, 10 Oct 2019 17:38:15 -0400 Subject: [PATCH] P4 to Git Change 2011927 by gandryey@gera-win10 on 2019/10/10 17:24:46 SWDEV-79445 - OCL generic changes and code clean-up - Restore xnack support for Navi1x HW(requires COMGR support). Only Navi2x should have a fix in HW Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#64 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#173 edit [ROCm/clr commit: cac8628fe2a744130d0c833910c851c3d3f3c94a] --- projects/clr/rocclr/runtime/device/pal/paldefs.hpp | 10 +++++----- projects/clr/rocclr/runtime/device/pal/paldevice.cpp | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/pal/paldefs.hpp b/projects/clr/rocclr/runtime/device/pal/paldefs.hpp index eb0a462bad..ee63f10c6b 100644 --- a/projects/clr/rocclr/runtime/device/pal/paldefs.hpp +++ b/projects/clr/rocclr/runtime/device/pal/paldefs.hpp @@ -176,21 +176,21 @@ static constexpr AMDDeviceInfo Gfx9PlusSubDeviceInfo[] = { /* Navi10_A0 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false}, /* Navi10_A0 XNACK */ UnknownDevice, /* Navi10 */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, false}, - /* Navi10 XNACK */ UnknownDevice, + /* Navi10 XNACK */ {"gfx1010", "gfx1010", 32, 256, 32, 1010, 1010, true}, /* Navi10Lite */ UnknownDevice, /* Navi10LiteXNACK */ UnknownDevice, /* Navi12 */ {"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, false}, - /* Navi12 XNACK */ UnknownDevice, + /* Navi12 XNACK */ {"gfx1011", "gfx1011", 32, 256, 32, 1011, 1011, true}, /* Navi12Lite */ UnknownDevice, /* Navi12LiteXNACK */ UnknownDevice, /* Navi14 */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, false}, - /* Navi14 XNACK */ UnknownDevice, + /* Navi14 */ {"gfx1012", "gfx1012", 32, 256, 32, 1012, 1012, true}, /* UnknownDevice3 */ UnknownDevice, /* UnknownDevice3 XNACK */ UnknownDevice, /* UnknownDevice4 */ UnknownDevice, - /* UnknownDevice4XNACK */ UnknownDevice, + /* UnknownDevice4 XNACK */ UnknownDevice, /* UnknownDevice5 */ UnknownDevice, - /* UnknownDevice5XNACK */ UnknownDevice, + /* UnknownDevice5 XNACK */ UnknownDevice, /* UnknownDevice2 */ UnknownDevice, /* UnknownDevice2XNACK */ UnknownDevice, /* UnknownDevice7 */ UnknownDevice, diff --git a/projects/clr/rocclr/runtime/device/pal/paldevice.cpp b/projects/clr/rocclr/runtime/device/pal/paldevice.cpp index c0fc3b2f3f..f9032327b0 100644 --- a/projects/clr/rocclr/runtime/device/pal/paldevice.cpp +++ b/projects/clr/rocclr/runtime/device/pal/paldevice.cpp @@ -905,7 +905,8 @@ bool Device::create(Pal::IDevice* device) { asicRevision_ = properties().revision; // XNACK flag should be set for PageMigration | IOMMUv2 Support - uint isXNACKSupported = (ipLevel_ < Pal::GfxIpLevel::GfxIp10_1) && + // Note: Navi2x should have a fix in HW + uint isXNACKSupported = (ipLevel_ <= Pal::GfxIpLevel::GfxIp10_1) && (static_cast(properties_.gpuMemoryProperties.flags.pageMigrationEnabled || properties_.gpuMemoryProperties.flags.iommuv2Support)); uint subtarget = isXNACKSupported;