From 6c8f332337b9617fd5c10975526ab5b1e4beaf73 Mon Sep 17 00:00:00 2001
From: foreman
Date: Tue, 8 May 2018 12:50:31 -0400
Subject: [PATCH] P4 to Git Change 1551928 by gandryey@gera-w8 on 2018/05/08
12:42:43
SWDEV-151981 - Removal of CPU support on Windows
- Part 3. Remove device fission extension
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_common.hpp#20 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_context.cpp#59 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_device.cpp#71 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_icd.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#218 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#299 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#165 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.hpp#28 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.hpp#26 edit
---
opencl/api/opencl/amdocl/cl_common.hpp | 24 ---
opencl/api/opencl/amdocl/cl_context.cpp | 7 -
opencl/api/opencl/amdocl/cl_device.cpp | 258 +-----------------------
opencl/api/opencl/amdocl/cl_icd.cpp | 2 +-
4 files changed, 7 insertions(+), 284 deletions(-)
diff --git a/opencl/api/opencl/amdocl/cl_common.hpp b/opencl/api/opencl/amdocl/cl_common.hpp
index 603ff085e2..c2ec8a1f86 100644
--- a/opencl/api/opencl/amdocl/cl_common.hpp
+++ b/opencl/api/opencl/amdocl/cl_common.hpp
@@ -227,30 +227,6 @@ public:
extern "C" {
-#ifdef cl_ext_device_fission
-
-extern CL_API_ENTRY cl_int CL_API_CALL
-clCreateSubDevicesEXT(
- cl_device_id in_device,
- const cl_device_partition_property_ext * partition_properties,
- cl_uint num_entries,
- cl_device_id * out_devices,
- cl_uint * num_devices);
-
-extern CL_API_ENTRY cl_int CL_API_CALL
-clRetainDeviceEXT(cl_device_id device);
-
-extern CL_API_ENTRY cl_int CL_API_CALL
-clReleaseDeviceEXT(cl_device_id device);
-
-#else // cl_ext_device_fission
-
-#define clCreateSubDevicesEXT ((void (*)(void))0)
-#define clRetainDeviceEXT ((void (*)(void))0)
-#define clReleaseDeviceEXT ((void (*)(void))0)
-
-#endif // cl_ext_device_fission
-
extern CL_API_ENTRY cl_key_amd CL_API_CALL
clCreateKeyAMD(
cl_platform_id platform,
diff --git a/opencl/api/opencl/amdocl/cl_context.cpp b/opencl/api/opencl/amdocl/cl_context.cpp
index 007ac7d4d2..5be091c464 100644
--- a/opencl/api/opencl/amdocl/cl_context.cpp
+++ b/opencl/api/opencl/amdocl/cl_context.cpp
@@ -469,9 +469,6 @@ CL_API_ENTRY void* CL_API_CALL clGetExtensionFunctionAddress(const char* func_na
CL_EXTENSION_ENTRYPOINT_CHECK(clCreateFromD3D10Texture3DKHR);
CL_EXTENSION_ENTRYPOINT_CHECK(clCreateFromDX9MediaSurfaceKHR);
#endif //_WIN32
-#if defined(cl_ext_device_fission) || defined(CL_VERSION_1_2)
- CL_EXTENSION_ENTRYPOINT_CHECK(clCreateSubDevicesEXT);
-#endif // defined(cl_ext_device_fission) || defined(CL_VERSION_1_2)
CL_EXTENSION_ENTRYPOINT_CHECK(clCreateKeyAMD);
CL_EXTENSION_ENTRYPOINT_CHECK(clConvertImageAMD);
CL_EXTENSION_ENTRYPOINT_CHECK(clCreateBufferFromImageAMD);
@@ -570,10 +567,6 @@ CL_API_ENTRY void* CL_API_CALL clGetExtensionFunctionAddress(const char* func_na
CL_EXTENSION_ENTRYPOINT_CHECK(clRetainPerfCounterAMD);
CL_EXTENSION_ENTRYPOINT_CHECK(clReleaseThreadTraceAMD);
CL_EXTENSION_ENTRYPOINT_CHECK(clRetainThreadTraceAMD);
-#if defined(cl_ext_device_fission) || defined(CL_VERSION_1_2)
- CL_EXTENSION_ENTRYPOINT_CHECK(clRetainDeviceEXT);
- CL_EXTENSION_ENTRYPOINT_CHECK(clReleaseDeviceEXT);
-#endif // defined(cl_ext_device_fission) || defined(CL_VERSION_1_2)
#if cl_amd_liquid_flash
CL_EXTENSION_ENTRYPOINT_CHECK(clRetainSsgFileObjectAMD);
CL_EXTENSION_ENTRYPOINT_CHECK(clReleaseSsgFileObjectAMD);
diff --git a/opencl/api/opencl/amdocl/cl_device.cpp b/opencl/api/opencl/amdocl/cl_device.cpp
index 88e5d7f037..9a8d7c3351 100644
--- a/opencl/api/opencl/amdocl/cl_device.cpp
+++ b/opencl/api/opencl/amdocl/cl_device.cpp
@@ -335,105 +335,6 @@ RUNTIME_ENTRY(cl_int, clGetDeviceInfo,
CASE(CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE, queueOnDeviceMaxSize_);
CASE(CL_DEVICE_MAX_ON_DEVICE_QUEUES, maxOnDeviceQueues_);
CASE(CL_DEVICE_MAX_ON_DEVICE_EVENTS, maxOnDeviceEvents_);
-#ifdef cl_ext_device_fission
- case CL_DEVICE_AFFINITY_DOMAINS_EXT: {
- const device::AffinityDomain& affinityDomain = as_amd(device)->info().affinityDomain_;
-
- size_t valueSize = affinityDomain.getNumSet() * sizeof(cl_device_partition_property_ext);
- if (param_value != NULL && param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- *not_null(param_value_size_ret) = valueSize;
- if (param_value != NULL) {
- affinityDomain.toCLExt(reinterpret_cast(param_value));
- if (param_value_size > valueSize) {
- ::memset(static_cast(param_value) + valueSize, '\0', param_value_size - valueSize);
- }
- }
- return CL_SUCCESS;
- }
- case CL_DEVICE_PARTITION_STYLE_EXT: {
- const device::PartitionInfo& partitionInfo = as_amd(device)->info().partitionCreateInfo_;
- size_t valueSize = 0;
- cl_device_partition_property_ext* properties =
- reinterpret_cast(param_value);
-
- switch (partitionInfo.type_.value_) {
- case device::PartitionType::EQUALLY:
- valueSize = 3 * sizeof(cl_device_partition_property_ext);
- if (param_value != NULL) {
- if (param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- properties[0] = CL_DEVICE_PARTITION_EQUALLY_EXT;
- properties[1] =
- (cl_device_partition_property_ext)partitionInfo.equally_.numComputeUnits_;
- properties[2] = CL_PROPERTIES_LIST_END_EXT;
- }
- break;
-
- case device::PartitionType::BY_COUNTS:
- valueSize =
- (partitionInfo.byCounts_.listSize_ + 2) * sizeof(cl_device_partition_property_ext);
- if (param_value != NULL) {
- if (param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- *properties++ = CL_DEVICE_PARTITION_BY_COUNTS_EXT;
- for (size_t i = 0; i < partitionInfo.byCounts_.listSize_; ++i) {
- *properties++ = partitionInfo.byCounts_.countsList_[i];
- }
- *properties = CL_PROPERTIES_LIST_END_EXT;
- }
- break;
-
- case device::PartitionType::BY_AFFINITY_DOMAIN:
- valueSize = 3 * sizeof(cl_device_partition_property_ext);
- if (param_value != NULL) {
- if (param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- properties[0] = CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT;
- properties[1] = partitionInfo.byAffinityDomain_.toCLExt();
- properties[2] = CL_PROPERTIES_LIST_END_EXT;
- }
- break;
- }
-
- *not_null(param_value_size_ret) = valueSize;
- if (param_value != NULL && param_value_size > valueSize) {
- ::memset(static_cast(param_value) + valueSize, '\0', param_value_size - valueSize);
- }
- return CL_SUCCESS;
- }
- case CL_DEVICE_PARTITION_TYPES_EXT: {
- const device::PartitionType& partitionProperties =
- as_amd(device)->info().partitionProperties_;
- size_t valueSize = partitionProperties.getNumSet() * sizeof(cl_device_partition_property_ext);
-
- if (param_value != NULL && param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- *not_null(param_value_size_ret) = valueSize;
- if (param_value != NULL) {
- partitionProperties.toCLExt(
- reinterpret_cast(param_value));
- if (param_value_size > valueSize) {
- ::memset(static_cast(param_value) + valueSize, '\0', param_value_size - valueSize);
- }
- }
- return CL_SUCCESS;
- }
- case CL_DEVICE_PARENT_DEVICE_EXT: {
- cl_device_id parent =
- !as_amd(device)->isRootDevice() ? as_cl(as_amd(device)->parent()) : (cl_device_id)0;
- return amd::clGetInfo(parent, param_value_size, param_value, param_value_size_ret);
- }
- case CL_DEVICE_REFERENCE_COUNT_EXT: {
- cl_uint count = as_amd(device)->referenceCount();
- return amd::clGetInfo(count, param_value_size, param_value, param_value_size_ret);
- }
-#endif // cl_ext_device_fission
CASE(CL_DEVICE_LINKER_AVAILABLE, linkerAvailable_);
CASE(CL_DEVICE_BUILT_IN_KERNELS, builtInKernels_);
CASE(CL_DEVICE_IMAGE_MAX_BUFFER_SIZE, imageMaxBufferSize_);
@@ -445,78 +346,16 @@ RUNTIME_ENTRY(cl_int, clGetDeviceInfo,
}
CASE(CL_DEVICE_PARTITION_MAX_SUB_DEVICES, maxComputeUnits_);
case CL_DEVICE_PARTITION_PROPERTIES: {
- const device::PartitionType& partitionProperties =
- as_amd(device)->info().partitionProperties_;
- size_t valueSize = partitionProperties.getNumSet() * sizeof(cl_device_partition_property);
-
- if (param_value != NULL && param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- *not_null(param_value_size_ret) = valueSize;
- if (param_value != NULL) {
- partitionProperties.toCL(reinterpret_cast(param_value));
- if (param_value_size > valueSize) {
- ::memset(static_cast(param_value) + valueSize, '\0', param_value_size - valueSize);
- }
- }
- return CL_SUCCESS;
+ cl_device_partition_property cl_property = {};
+ return amd::clGetInfo(cl_property, param_value_size, param_value, param_value_size_ret);
}
case CL_DEVICE_PARTITION_AFFINITY_DOMAIN: {
- cl_device_affinity_domain deviceAffinity = as_amd(device)->info().affinityDomain_.toCL();
+ cl_device_affinity_domain deviceAffinity = {};
return amd::clGetInfo(deviceAffinity, param_value_size, param_value, param_value_size_ret);
}
case CL_DEVICE_PARTITION_TYPE: {
- const device::PartitionInfo& partitionInfo = as_amd(device)->info().partitionCreateInfo_;
- size_t valueSize = 0;
- cl_device_partition_property* properties =
- reinterpret_cast(param_value);
-
- switch (partitionInfo.type_.value_) {
- case device::PartitionType::EQUALLY:
- valueSize = 3 * sizeof(cl_device_partition_property);
- if (param_value != NULL) {
- if (param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- properties[0] = CL_DEVICE_PARTITION_EQUALLY;
- properties[1] = (cl_device_partition_property)partitionInfo.equally_.numComputeUnits_;
- properties[2] = (cl_device_partition_property)0;
- }
- break;
-
- case device::PartitionType::BY_COUNTS:
- valueSize =
- (partitionInfo.byCounts_.listSize_ + 2) * sizeof(cl_device_partition_property);
- if (param_value != NULL) {
- if (param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- *properties++ = CL_DEVICE_PARTITION_BY_COUNTS;
- for (size_t i = 0; i < partitionInfo.byCounts_.listSize_; ++i) {
- *properties++ = partitionInfo.byCounts_.countsList_[i];
- }
- *properties = (cl_device_partition_property)0;
- }
- break;
-
- case device::PartitionType::BY_AFFINITY_DOMAIN:
- valueSize = 3 * sizeof(cl_device_partition_property);
- if (param_value != NULL) {
- if (param_value_size < valueSize) {
- return CL_INVALID_VALUE;
- }
- properties[0] = CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN;
- properties[1] = (cl_device_partition_property)partitionInfo.byAffinityDomain_.toCL();
- properties[2] = (cl_device_partition_property)0;
- }
- break;
- }
-
- *not_null(param_value_size_ret) = valueSize;
- if (param_value != NULL && param_value_size > valueSize) {
- ::memset(static_cast(param_value) + valueSize, '\0', param_value_size - valueSize);
- }
- return CL_SUCCESS;
+ cl_device_partition_property cl_property = {};
+ return amd::clGetInfo(cl_property, param_value_size, param_value, param_value_size_ret);
}
case CL_DEVICE_REFERENCE_COUNT: {
cl_uint count = as_amd(device)->referenceCount();
@@ -601,73 +440,6 @@ RUNTIME_ENTRY(cl_int, clGetDeviceInfo,
}
RUNTIME_EXIT
-#ifdef cl_ext_device_fission
-
-RUNTIME_ENTRY(cl_int, clCreateSubDevicesEXT,
- (cl_device_id in_device, const cl_device_partition_property_ext* partition_properties,
- cl_uint num_entries, cl_device_id* out_devices, cl_uint* num_devices)) {
- if (!is_valid(in_device)) {
- return CL_INVALID_DEVICE;
- }
- if (partition_properties == NULL || *partition_properties == 0u) {
- return CL_INVALID_VALUE;
- }
- if (((num_entries > 0 || num_devices == NULL) && out_devices == NULL) ||
- (num_entries == 0 && out_devices != NULL)) {
- return CL_INVALID_VALUE;
- }
-
- device::CreateSubDevicesInfoT create_info;
- switch (*partition_properties) {
- case CL_DEVICE_PARTITION_EQUALLY_EXT:
- create_info.p_.type_.value_ = device::PartitionType::EQUALLY;
- create_info.p_.equally_.numComputeUnits_ = (size_t)partition_properties[1];
- break;
- case CL_DEVICE_PARTITION_BY_COUNTS_EXT:
- create_info.p_.type_.value_ = device::PartitionType::BY_COUNTS;
- create_info.initCountsList(partition_properties + 1);
- break;
- case CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT:
- create_info.p_.type_.value_ = device::PartitionType::BY_AFFINITY_DOMAIN;
- create_info.p_.byAffinityDomain_.value_ = (uint)partition_properties[1];
- break;
- default:
- return CL_INVALID_VALUE;
- }
-
- cl_int ret =
- as_amd(in_device)->createSubDevices(create_info, num_entries, out_devices, num_devices);
-
- if (ret == CL_DEVICE_PARTITION_FAILED) {
- return CL_DEVICE_PARTITION_FAILED_EXT;
- }
- if (ret == CL_INVALID_DEVICE_PARTITION_COUNT) {
- return CL_INVALID_PARTITION_COUNT_EXT;
- }
- return ret;
-}
-RUNTIME_EXIT
-
-RUNTIME_ENTRY(cl_int, clRetainDeviceEXT, (cl_device_id device)) {
- if (!is_valid(device)) {
- return CL_INVALID_DEVICE;
- }
- as_amd(device)->retain();
- return CL_SUCCESS;
-}
-RUNTIME_EXIT
-
-RUNTIME_ENTRY(cl_int, clReleaseDeviceEXT, (cl_device_id device)) {
- if (!is_valid(device)) {
- return CL_INVALID_DEVICE;
- }
- as_amd(device)->release();
- return CL_SUCCESS;
-}
-RUNTIME_EXIT
-
-#endif // cl_ext_device_fission
-
RUNTIME_ENTRY(cl_int, clCreateSubDevices,
(cl_device_id in_device, const cl_device_partition_property* partition_properties,
cl_uint num_entries, cl_device_id* out_devices, cl_uint* num_devices)) {
@@ -681,25 +453,7 @@ RUNTIME_ENTRY(cl_int, clCreateSubDevices,
return CL_INVALID_VALUE;
}
- device::CreateSubDevicesInfoT create_info;
- switch (*partition_properties) {
- case CL_DEVICE_PARTITION_EQUALLY:
- create_info.p_.type_.value_ = device::PartitionType::EQUALLY;
- create_info.p_.equally_.numComputeUnits_ = (size_t)partition_properties[1];
- break;
- case CL_DEVICE_PARTITION_BY_COUNTS:
- create_info.p_.type_.value_ = device::PartitionType::BY_COUNTS;
- create_info.initCountsList(partition_properties + 1);
- break;
- case CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN:
- create_info.p_.type_.value_ = device::PartitionType::BY_AFFINITY_DOMAIN;
- create_info.p_.byAffinityDomain_.value_ = (uint)partition_properties[1];
- break;
- default:
- return CL_INVALID_VALUE;
- }
-
- return as_amd(in_device)->createSubDevices(create_info, num_entries, out_devices, num_devices);
+ return CL_INVALID_VALUE;
}
RUNTIME_EXIT
diff --git a/opencl/api/opencl/amdocl/cl_icd.cpp b/opencl/api/opencl/amdocl/cl_icd.cpp
index 3d60efa6a6..b25458382a 100644
--- a/opencl/api/opencl/amdocl/cl_icd.cpp
+++ b/opencl/api/opencl/amdocl/cl_icd.cpp
@@ -66,7 +66,7 @@ KHRicdVendorDispatch amd::ICDDispatchedObject::icdVendorDispatch_[] = {
WINDOWS_SWITCH(clEnqueueReleaseD3D10ObjectsKHR, NULL), clSetEventCallback, clCreateSubBuffer,
clSetMemObjectDestructorCallback, clCreateUserEvent, clSetUserEventStatus,
clEnqueueReadBufferRect, clEnqueueWriteBufferRect, clEnqueueCopyBufferRect,
- clCreateSubDevicesEXT, clRetainDeviceEXT, clReleaseDeviceEXT, clCreateEventFromGLsyncKHR,
+ NULL, NULL, NULL, clCreateEventFromGLsyncKHR,
/* OpenCL 1.2*/
clCreateSubDevices, clRetainDevice, clReleaseDevice, clCreateImage,