Mesa (master): clover/api: Support MSVC
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Dec 2 18:52:48 UTC 2020
Module: Mesa
Branch: master
Commit: 474baa04eda3b2bba3bf10c121ae98a7137dc128
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=474baa04eda3b2bba3bf10c121ae98a7137dc128
Author: Jesse Natalie <jenatali at microsoft.com>
Date: Wed Nov 18 18:37:54 2020 -0800
clover/api: Support MSVC
Three things:
1. MSVC dislikes mismatching declaration/definition of __declspec(dllexport).
Since CL headers don't have the declspec, the implementations should't either.
2. An unnamed brace-initialization gets deduced as an initializer list, instead
of a brace-constructed string. Just add the type name.
3. posix_memalign doesn't exist on Windows.
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Reviewed-by: Karol Herbst <kherbst at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7680>
---
src/gallium/frontends/clover/api/memory.cpp | 2 ++
src/gallium/frontends/clover/api/program.cpp | 2 +-
src/gallium/frontends/clover/api/util.hpp | 6 +++++-
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/gallium/frontends/clover/api/memory.cpp b/src/gallium/frontends/clover/api/memory.cpp
index 89762d1b262..1ffe306289b 100644
--- a/src/gallium/frontends/clover/api/memory.cpp
+++ b/src/gallium/frontends/clover/api/memory.cpp
@@ -511,6 +511,7 @@ clSVMAlloc(cl_context d_ctx,
if (!alignment)
alignment = 0x80; // sizeof(long16)
+#if HAVE_POSIX_MEMALIGN
bool can_emulate = all_of(std::mem_fn(&device::has_system_svm), ctx.devices());
if (can_emulate) {
// we can ignore all the flags as it's not required to honor them.
@@ -520,6 +521,7 @@ clSVMAlloc(cl_context d_ctx,
posix_memalign(&ptr, alignment, size);
return ptr;
}
+#endif
CLOVER_NOT_SUPPORTED_UNTIL("2.0");
return nullptr;
diff --git a/src/gallium/frontends/clover/api/program.cpp b/src/gallium/frontends/clover/api/program.cpp
index ebe5f233c3c..d390c1c9e13 100644
--- a/src/gallium/frontends/clover/api/program.cpp
+++ b/src/gallium/frontends/clover/api/program.cpp
@@ -123,7 +123,7 @@ clCreateProgramWithBinary(cl_context d_ctx, cl_uint n,
return { CL_INVALID_VALUE, {} };
try {
- std::stringbuf bin( { (char*)p, l } );
+ std::stringbuf bin( std::string{ (char*)p, l } );
std::istream s(&bin);
return { CL_SUCCESS, module::deserialize(s) };
diff --git a/src/gallium/frontends/clover/api/util.hpp b/src/gallium/frontends/clover/api/util.hpp
index 66bd12597c6..788c99adbd2 100644
--- a/src/gallium/frontends/clover/api/util.hpp
+++ b/src/gallium/frontends/clover/api/util.hpp
@@ -29,8 +29,12 @@
#include "core/error.hpp"
#include "core/property.hpp"
#include "util/algorithm.hpp"
+#include "util/detect_os.h"
-#ifdef HAVE_CLOVER_ICD
+#if DETECT_OS_WINDOWS
+#define CLOVER_API
+#define CLOVER_ICD_API
+#elif HAVE_CLOVER_ICD
#define CLOVER_API
#define CLOVER_ICD_API PUBLIC
#else
More information about the mesa-commit
mailing list