clover/core: Support MSVC

Constructing a class where the class name is wrapped in parens
doesn't work with MSVC. I see no good reason to do that so drop
the parens. Also, use a generic page size helper instead of hardcoding
something OS-specific.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7680>
This commit is contained in:
Jesse Natalie 2020-11-18 18:37:03 -08:00
parent 4cfd57dd48
commit f88347cd22
2 changed files with 21 additions and 20 deletions

View file

@ -21,7 +21,6 @@
// //
#include <algorithm> #include <algorithm>
#include <unistd.h>
#include "core/device.hpp" #include "core/device.hpp"
#include "core/platform.hpp" #include "core/platform.hpp"
#include "pipe/p_screen.h" #include "pipe/p_screen.h"
@ -235,7 +234,9 @@ device::has_unified_memory() const {
size_t size_t
device::mem_base_addr_align() const { device::mem_base_addr_align() const {
return std::max((size_t)sysconf(_SC_PAGESIZE), sizeof(cl_long) * 16); uint64_t page_size = 0;
os_get_page_size(&page_size);
return std::max(page_size, sizeof(cl_long) * 16);
} }
cl_device_svm_capabilities cl_device_svm_capabilities
@ -345,21 +346,21 @@ std::vector<cl_name_version>
device::supported_extensions() const { device::supported_extensions() const {
std::vector<cl_name_version> vec; std::vector<cl_name_version> vec;
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_byte_addressable_store" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_byte_addressable_store" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_global_int32_base_atomics" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_global_int32_base_atomics" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_global_int32_extended_atomics" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_global_int32_extended_atomics" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_local_int32_base_atomics" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_local_int32_base_atomics" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_local_int32_extended_atomics" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_local_int32_extended_atomics" } );
if (has_int64_atomics()) { if (has_int64_atomics()) {
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_int64_base_atomics" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_int64_base_atomics" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_int64_extended_atomics" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_int64_extended_atomics" } );
} }
if (has_doubles()) if (has_doubles())
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_fp64" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_fp64" } );
if (has_halves()) if (has_halves())
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_fp16" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_fp16" } );
if (svm_support()) if (svm_support())
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_arm_shared_virtual_memory" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_arm_shared_virtual_memory" } );
return vec; return vec;
} }
@ -397,15 +398,15 @@ device::device_clc_version() const {
std::vector<cl_name_version> std::vector<cl_name_version>
device::opencl_c_all_versions() const { device::opencl_c_all_versions() const {
std::vector<cl_name_version> vec; std::vector<cl_name_version> vec;
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "OpenCL C" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "OpenCL C" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 1, 0), "OpenCL C" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 1, 0), "OpenCL C" } );
if (CL_VERSION_MAJOR(clc_version) == 1 && if (CL_VERSION_MAJOR(clc_version) == 1 &&
CL_VERSION_MINOR(clc_version) == 2) CL_VERSION_MINOR(clc_version) == 2)
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 2, 0), "OpenCL C" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 2, 0), "OpenCL C" } );
if (CL_VERSION_MAJOR(clc_version) == 3) { if (CL_VERSION_MAJOR(clc_version) == 3) {
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 2, 0), "OpenCL C" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 2, 0), "OpenCL C" } );
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(3, 0, 0), "OpenCL C" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(3, 0, 0), "OpenCL C" } );
} }
return vec; return vec;
} }
@ -414,9 +415,9 @@ std::vector<cl_name_version>
device::opencl_c_features() const { device::opencl_c_features() const {
std::vector<cl_name_version> vec; std::vector<cl_name_version> vec;
vec.push_back( (cl_name_version) {CL_MAKE_VERSION(3, 0, 0), "__opencl_c_int64" }); vec.push_back( cl_name_version {CL_MAKE_VERSION(3, 0, 0), "__opencl_c_int64" });
if (has_doubles()) if (has_doubles())
vec.push_back( (cl_name_version) {CL_MAKE_VERSION(3, 0, 0), "__opencl_c_fp64" }); vec.push_back( cl_name_version {CL_MAKE_VERSION(3, 0, 0), "__opencl_c_fp64" });
return vec; return vec;
} }

View file

@ -49,7 +49,7 @@ std::vector<cl_name_version>
platform::supported_extensions() const { platform::supported_extensions() const {
std::vector<cl_name_version> vec; std::vector<cl_name_version> vec;
vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "cl_khr_icd" } ); vec.push_back( cl_name_version{ CL_MAKE_VERSION(1, 0, 0), "cl_khr_icd" } );
return vec; return vec;
} }