From dd15a594a2a7086a50042c4509f4e5f131bf0dd7 Mon Sep 17 00:00:00 2001
From: foreman
Date: Fri, 22 Jan 2016 18:18:55 -0500
Subject: [PATCH] P4 to Git Change 1230521 by gandryey@gera-w8 on 2016/01/22
17:58:08
SWDEV-86035 - Add OCL backend for PAL
- PAL backend build is disabled by default. "BUILD_PAL_DEVICE = yes" enables the build. You also have to update the client workspace with PAL mapping: //depot/stg/pal/... ///runtime/device/pal/palbe/...
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/build/Makefile.api#130 edit
... //depot/stg/opencl/drivers/opencl/compiler/sclibdefs.opencl#8 edit
... //depot/stg/opencl/drivers/opencl/opencldefs#166 edit
... //depot/stg/opencl/drivers/opencl/openclrules#91 edit
... //depot/stg/opencl/drivers/opencl/runtime/Makefile#21 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#192 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/Makefile#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/build/Makefile#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/build/Makefile.pal#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palappprofile.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palappprofile.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbinary.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbinary.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcompiler.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palconstbuf.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palconstbuf.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcounters.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcounters.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldebugger.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldebugmanager.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldebugmanager.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldeviced3d10.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldeviced3d11.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldeviced3d9.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevicegl.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palmemory.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palmemory.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprintf.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprintf.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsched.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palschedcl.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palthreadtrace.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palthreadtrace.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paltimestamp.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paltimestamp.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paltrap.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palwavelimiter.cpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palwavelimiter.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/runtimedefs#36 edit
... //depot/stg/opencl/drivers/opencl/runtime/top.hpp#23 edit
[ROCm/clr commit: c99d679c9e55b6c8e162646abeefd76d6281fc67]
---
projects/clr/rocclr/runtime/device/device.cpp | 17 +-
.../runtime/device/pal/palappprofile.cpp | 25 +
.../runtime/device/pal/palappprofile.hpp | 30 +
.../rocclr/runtime/device/pal/palbinary.cpp | 7 +
.../rocclr/runtime/device/pal/palbinary.hpp | 48 +
.../clr/rocclr/runtime/device/pal/palblit.cpp | 2775 +++++++++++++
.../clr/rocclr/runtime/device/pal/palblit.hpp | 451 +++
.../rocclr/runtime/device/pal/palcompiler.cpp | 147 +
.../rocclr/runtime/device/pal/palconstbuf.cpp | 89 +
.../rocclr/runtime/device/pal/palconstbuf.hpp | 70 +
.../rocclr/runtime/device/pal/palcounters.cpp | 119 +
.../rocclr/runtime/device/pal/palcounters.hpp | 152 +
.../rocclr/runtime/device/pal/paldebugger.hpp | 121 +
.../runtime/device/pal/paldebugmanager.cpp | 412 ++
.../runtime/device/pal/paldebugmanager.hpp | 117 +
.../clr/rocclr/runtime/device/pal/paldefs.hpp | 584 +++
.../rocclr/runtime/device/pal/paldevice.cpp | 2207 +++++++++++
.../rocclr/runtime/device/pal/paldevice.hpp | 598 +++
.../runtime/device/pal/paldeviced3d10.cpp | 143 +
.../runtime/device/pal/paldeviced3d11.cpp | 142 +
.../runtime/device/pal/paldeviced3d9.cpp | 53 +
.../rocclr/runtime/device/pal/paldevicegl.cpp | 306 ++
.../rocclr/runtime/device/pal/palkernel.cpp | 1197 ++++++
.../rocclr/runtime/device/pal/palkernel.hpp | 263 ++
.../rocclr/runtime/device/pal/palmemory.cpp | 1271 ++++++
.../rocclr/runtime/device/pal/palmemory.hpp | 275 ++
.../rocclr/runtime/device/pal/palprintf.cpp | 714 ++++
.../rocclr/runtime/device/pal/palprintf.hpp | 192 +
.../rocclr/runtime/device/pal/palprogram.cpp | 925 +++++
.../rocclr/runtime/device/pal/palprogram.hpp | 292 ++
.../rocclr/runtime/device/pal/palresource.cpp | 2042 ++++++++++
.../rocclr/runtime/device/pal/palresource.hpp | 508 +++
.../rocclr/runtime/device/pal/palsched.hpp | 78 +
.../rocclr/runtime/device/pal/palschedcl.cpp | 23 +
.../rocclr/runtime/device/pal/palsettings.cpp | 433 +++
.../rocclr/runtime/device/pal/palsettings.hpp | 128 +
.../runtime/device/pal/palthreadtrace.cpp | 67 +
.../runtime/device/pal/palthreadtrace.hpp | 136 +
.../runtime/device/pal/paltimestamp.cpp | 123 +
.../runtime/device/pal/paltimestamp.hpp | 132 +
.../clr/rocclr/runtime/device/pal/paltrap.hpp | 187 +
.../rocclr/runtime/device/pal/palvirtual.cpp | 3435 +++++++++++++++++
.../rocclr/runtime/device/pal/palvirtual.hpp | 576 +++
.../runtime/device/pal/palwavelimiter.cpp | 354 ++
.../runtime/device/pal/palwavelimiter.hpp | 154 +
projects/clr/rocclr/runtime/top.hpp | 8 +
46 files changed, 22124 insertions(+), 2 deletions(-)
create mode 100644 projects/clr/rocclr/runtime/device/pal/palappprofile.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palappprofile.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palbinary.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palbinary.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palblit.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palblit.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palcompiler.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palconstbuf.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palconstbuf.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palcounters.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palcounters.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldebugger.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldebugmanager.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldebugmanager.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldefs.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldevice.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldevice.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldeviced3d10.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldeviced3d11.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldeviced3d9.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paldevicegl.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palkernel.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palkernel.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palmemory.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palmemory.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palprintf.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palprintf.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palprogram.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palprogram.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palresource.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palresource.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palsched.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palschedcl.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palsettings.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palsettings.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palthreadtrace.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palthreadtrace.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paltimestamp.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paltimestamp.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/paltrap.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palwavelimiter.cpp
create mode 100644 projects/clr/rocclr/runtime/device/pal/palwavelimiter.hpp
diff --git a/projects/clr/rocclr/runtime/device/device.cpp b/projects/clr/rocclr/runtime/device/device.cpp
index 20b6bbdd21..e085459449 100644
--- a/projects/clr/rocclr/runtime/device/device.cpp
+++ b/projects/clr/rocclr/runtime/device/device.cpp
@@ -15,6 +15,13 @@ extern amd::AppProfile* oclhsaCreateAppProfile();
#include "device/cpu/cpudevice.hpp"
#endif // WITH_CPU_DEVICE
+#if defined(WITH_PAL_DEVICE)
+//namespace pal {
+extern bool PalDeviceLoad();
+extern void PalDeviceUnload();
+//}
+#endif // WITH_PAL_DEVICE
+
#if defined(WITH_GPU_DEVICE)
extern bool DeviceLoad();
extern void DeviceUnload();
@@ -177,9 +184,12 @@ Device::init()
ret |= oclhsa::NullDevice::init();
}
#endif // WITH_HSA_DEVICE
-#if defined(WITH_GPU_DEVICE)
+#if defined(WITH_GPU_DEVICE) && !defined(WITH_PAL_DEVICE)
ret |= DeviceLoad();
#endif // WITH_GPU_DEVICE
+#if defined(WITH_PAL_DEVICE)
+ ret |= PalDeviceLoad();
+#endif // WITH_PAL_DEVICE
#if defined(WITH_CPU_DEVICE)
ret |= cpu::Device::init();
#endif // WITH_CPU_DEVICE
@@ -203,9 +213,12 @@ Device::tearDown()
oclhsaAppProfile_ = NULL;
}
#endif // WITH_HSA_DEVICE
-#if defined(WITH_GPU_DEVICE)
+#if defined(WITH_GPU_DEVICE) && !defined(WITH_PAL_DEVICE)
DeviceUnload();
#endif // WITH_GPU_DEVICE
+#if defined(WITH_PAL_DEVICE)
+ PalDeviceUnload();
+#endif // WITH_PAL_DEVICE
#if defined(WITH_CPU_DEVICE)
cpu::Device::tearDown();
#endif // WITH_CPU_DEVICE
diff --git a/projects/clr/rocclr/runtime/device/pal/palappprofile.cpp b/projects/clr/rocclr/runtime/device/pal/palappprofile.cpp
new file mode 100644
index 0000000000..b5a7e40a6c
--- /dev/null
+++ b/projects/clr/rocclr/runtime/device/pal/palappprofile.cpp
@@ -0,0 +1,25 @@
+//
+// Copyright (c) 2015 Advanced Micro Devices, Inc. All rights reserved.
+//
+
+#include "top.hpp"
+#include "utils/debug.hpp"
+#include "device/appprofile.hpp"
+#include "device/pal/palappprofile.hpp"
+
+namespace pal {
+
+AppProfile::AppProfile()
+ : amd::AppProfile()
+ , enableHighPerformanceState_(true)
+ , reportAsOCL12Device_(false)
+{
+ propertyDataMap_.insert(DataMap::value_type("HighPerfState",
+ PropertyData(DataType_Boolean, &enableHighPerformanceState_)));
+
+ propertyDataMap_.insert(DataMap::value_type("OCL12Device",
+ PropertyData(DataType_Boolean, &reportAsOCL12Device_)));
+}
+
+}
+
diff --git a/projects/clr/rocclr/runtime/device/pal/palappprofile.hpp b/projects/clr/rocclr/runtime/device/pal/palappprofile.hpp
new file mode 100644
index 0000000000..63f4965d0f
--- /dev/null
+++ b/projects/clr/rocclr/runtime/device/pal/palappprofile.hpp
@@ -0,0 +1,30 @@
+//
+// Copyright (c) 2015 Advanced Micro Devices, Inc. All rights reserved.
+//
+
+#ifndef PALAPPPROFILE_HPP_
+#define PALAPPPROFILE_HPP_
+
+#include
+#include