Open oscarbg opened 4 years ago
For MSVC you need ARM64 CPU to even try, last time I checked. As for mingw the only possible option is MinGW clang, and it fails just like MSVC: arm-fail.txt The final attempt is to explicitly declare crosscompilation with Meson.
Hi, thanks for info.. let me keep open anyway in case eventually I get some Win ARM64 machine to try..
I setup crosscompilation in 15121d6e and this is where I got:
Select Python installation
1. Python 3.8 64 bit
Select Python version by entering its index from the table above:1
Using Python 3.8.3 from C:\Software\Python38\python.exe.
Update python packages (y/n):y
Updated 0 paths from the index
Microsoft Windows [Version 10.0.19041]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\Software\Development\projects\mesa>git pull
remote: Enumerating objects: 172, done.
remote: Counting objects: 100% (172/172), done.
remote: Compressing objects: 100% (165/165), done.
remote: Total 172 (delta 102), reused 29 (delta 6), pack-reused 0
Receiving objects: 100% (172/172), 531.77 KiB | 1.01 MiB/s, done.
Resolving deltas: 100% (102/102), completed with 3 local objects.
From https://gitlab.freedesktop.org/mesa/mesa
f0e075ce6ec..9375e72d8d1 master -> origin/master
+ 979ae78318c...f3ac8ec54d1 staging/20.1 -> origin/staging/20.1 (forced update)
Updating f0e075ce6ec..9375e72d8d1
Fast-forward
src/amd/common/ac_gpu_info.c | 16 ++-
src/amd/common/ac_gpu_info.h | 2 +-
src/amd/common/ac_surface.c | 5 +-
src/amd/common/sid.h | 26 +++-
src/amd/registers/amdgfxregs.json | 10 ++
src/amd/registers/gfx10.json | 89 ++++++-------
src/amd/vulkan/radv_cmd_buffer.c | 4 +-
src/amd/vulkan/radv_device.c | 4 +-
src/amd/vulkan/radv_sqtt.c | 8 +-
src/amd/vulkan/si_cmd_buffer.c | 4 +-
src/gallium/drivers/freedreno/a6xx/fd6_context.c | 1 +
src/gallium/drivers/freedreno/freedreno_context.c | 2 +-
src/gallium/drivers/radeonsi/si_blit.c | 3 +-
src/gallium/drivers/radeonsi/si_descriptors.c | 13 +-
src/gallium/drivers/radeonsi/si_get.c | 5 +-
src/gallium/drivers/radeonsi/si_gfx_cs.c | 154 ++++++++++------------
src/gallium/drivers/radeonsi/si_pipe.h | 1 +
src/gallium/drivers/radeonsi/si_pm4.c | 31 -----
src/gallium/drivers/radeonsi/si_pm4.h | 1 -
src/gallium/drivers/radeonsi/si_state.c | 5 +-
src/gallium/drivers/radeonsi/si_state.h | 3 +-
src/gallium/drivers/radeonsi/si_state_shaders.c | 2 -
src/gallium/drivers/radeonsi/si_texture.c | 10 +-
src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 2 +-
src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 2 +-
25 files changed, 202 insertions(+), 201 deletions(-)
C:\Software\Development\projects\mesa>git checkout .
Updated 0 paths from the index
C:\Software\Development\projects\mesa>%buildconf%
The Meson build system
Version: 0.54.2
Source dir: C:\Software\Development\projects\mesa
Build dir: C:\Software\Development\projects\mesa\build\aarch64
Build type: cross build
Program python found: YES (C:\Software\Python38\python.EXE)
Project name: mesa
Project version: 20.2.0-devel
C compiler for the build machine: cc (clang 10.0.0 "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d32170dbd5b0d54436537b6b75beaf44324e0c28)")
C linker for the build machine: cc ld.lld 10.0.0
C++ compiler for the build machine: c++ (clang 10.0.0 "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d32170dbd5b0d54436537b6b75beaf44324e0c28)")
C++ linker for the build machine: c++ ld.lld 10.0.0
C compiler for the host machine: aarch64-w64-mingw32-clang (clang 10.0.0 "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d32170dbd5b0d54436537b6b75beaf44324e0c28)")
C linker for the host machine: aarch64-w64-mingw32-clang ld.lld 10.0.0
C++ compiler for the host machine: aarch64-w64-mingw32-clang++ (clang 10.0.0 "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d32170dbd5b0d54436537b6b75beaf44324e0c28)")
C++ linker for the host machine: aarch64-w64-mingw32-clang++ ld.lld 10.0.0
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: aarch64
Host machine cpu: arm64
Target machine cpu family: aarch64
Target machine cpu: arm64
Program C:\Software\Python38\python found: YES (C:\Software\Python38\python.exe)
Fetching value of define "ETIME" : 137
Checking for function "bswap32" : YES
Checking for function "bswap64" : YES
Checking for function "clz" : YES
Checking for function "clzll" : YES
Checking for function "ctz" : YES
Checking for function "expect" : YES
Checking for function "ffs" : YES
Checking for function "ffsll" : YES
Checking for function "popcount" : YES
Checking for function "popcountll" : YES
Checking for function "unreachable" : YES
Checking if "__attribute__((const))" compiles: YES
Checking if "__attribute__((flatten))" compiles: YES
Checking if "__attribute__((malloc))" compiles: YES
Checking if "__attribute__((pure))" compiles: YES
Checking if "__attribute__((unused))" compiles: YES
Checking if "__attribute__((warn_unused_result))" compiles: YES
Checking if "__attribute__((weak))" compiles: YES
Checking if "__attribute__((format(...)))" compiles: YES
Checking if "__attribute__((packed))" compiles: YES
Checking if "__attribute__((returns_nonnull))" compiles: YES
Checking if "__attribute__((visibility(...)))" compiles: YES
Checking if "__attribute__((alias(...)))" compiles: YES
Checking if "__attribute__((__noreturn__))" compiles: YES
Checking if "__uint128_t" compiles: YES
Compiler for C supports arguments -Werror=implicit-function-declaration: YES
Compiler for C supports arguments -Werror=missing-prototypes: YES
Compiler for C supports arguments -Werror=return-type: YES
Compiler for C supports arguments -Werror=empty-body: YES
Compiler for C supports arguments -Werror=incompatible-pointer-types: YES
Compiler for C supports arguments -Werror=int-conversion: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-format-truncation: NO
Compiler for C supports arguments -fno-math-errno: YES
Compiler for C supports arguments -fno-trapping-math: YES
Compiler for C supports arguments -Qunused-arguments: YES
Compiler for C supports arguments -fno-common: YES
Compiler for C supports arguments -Werror=format: YES
Compiler for C supports arguments -Wformat-security: YES
Compiler for C++ supports arguments -Werror=return-type: YES
Compiler for C++ supports arguments -Werror=empty-body: YES
Compiler for C++ supports arguments -Wno-non-virtual-dtor: YES
Compiler for C++ supports arguments -Wno-missing-field-initializers: YES
Compiler for C++ supports arguments -Wno-format-truncation: NO
Compiler for C++ supports arguments -fno-math-errno: YES
Compiler for C++ supports arguments -fno-trapping-math: YES
Compiler for C++ supports arguments -Qunused-arguments: YES
Compiler for C++ supports arguments -flifetime-dse=1: NO
Compiler for C++ supports arguments -Werror=format: YES
Compiler for C++ supports arguments -Wformat-security: YES
Compiler for C supports arguments -Wno-override-init: YES
Compiler for C supports arguments -Wno-initializer-overrides: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Compiler for C supports arguments -Werror=pointer-arith: YES
Compiler for C++ supports arguments -Werror=pointer-arith: YES
Compiler for C supports arguments -Werror=vla: YES
Compiler for C++ supports arguments -Werror=vla: YES
Compiler for C supports arguments -Werror=gnu-empty-initializer: YES
Compiler for C++ supports arguments -Werror=gnu-empty-initializer: YES
Compiler for C++ supports arguments -fvisibility=hidden: YES
Checking if "GCC atomic builtins" compiles: YES
Checking if "GCC atomic builtins required -latomic" links: YES
Checking if "GCC 64bit atomics" with dependency not-found links: YES
Library ws2_32 found: YES
Header <sys/sysmacros.h> has symbol "major" : NO
Header <sys/mkdev.h> has symbol "major" : NO
Checking if "xlocale.h" compiles: NO
Checking if "sys/sysctl.h" compiles: NO
Checking if "linux/futex.h" compiles: NO
Checking if "endian.h" compiles: NO
Checking if "dlfcn.h" compiles: NO
Checking if "execinfo.h" compiles: NO
Checking if "sys/shm.h" compiles: NO
Checking if "cet.h" compiles: NO
Checking for function "strtof" : YES
Checking for function "mkostemp" : NO
Checking for function "timespec_get" : NO
Checking for function "memfd_create" : NO
Checking for function "random_r" : NO
Checking for function "flock" : NO
Checking for function "strtok_r" : YES
Checking for function "getrandom" : NO
Header <errno.h> has symbol "program_invocation_name" : NO
Checking whether type "struct dirent" has member "d_type" : NO
Checking if "strtod has locale support" links: NO
Checking if "Bsymbolic" links: NO
Checking if "gc-sections" links: YES
Checking if "version-script" links: NO
Checking if "dynamic-list" links: NO
Compiler for C supports link arguments -Wl,--build-id=sha1: NO
Checking for function "dlopen" : NO
Library dl found: NO
Checking for function "dladdr" with dependency -ldl: NO
Checking for function "dl_iterate_phdr" : NO
Found Pkg-config: NO
Found CMake: NO
Run-time dependency zlib found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency zlib
Using zlib source from cache.
Using zlib patch from cache.
|Executing subproject zlib method meson
|
|Project name: zlib
|Project version: 1.2.11
|C compiler for the build machine: cc (clang 10.0.0 "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d32170dbd5b0d54436537b6b75beaf44324e0c28)")
|C linker for the build machine: cc ld.lld 10.0.0
|C compiler for the host machine: aarch64-w64-mingw32-clang (clang 10.0.0 "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d32170dbd5b0d54436537b6b75beaf44324e0c28)")
|C linker for the host machine: aarch64-w64-mingw32-clang ld.lld 10.0.0
|Windows resource compiler: version: LLVM windres (GNU windres compatible) 0.1
|Build targets in project: 2
|Subproject zlib finished.
Dependency zlib from subproject subprojects\zlib found: YES 1.2.11
Run-time dependency libzstd found: NO (tried pkgconfig and cmake)
Run-time dependency threads found: YES
Library m found: YES
Run-time dependency libdrm found: NO (tried pkgconfig and cmake)
Run-time dependency valgrind found: NO (tried pkgconfig)
Program win_flex found: YES (C:\Software\DEVELO~1\projects\flexbison\win_flex.EXE)
Program win_bison found: YES (C:\Software\DEVELO~1\projects\flexbison\win_bison.EXE)
Run-time dependency libunwind found: NO (tried pkgconfig and cmake)
Library sensors found: NO
Program dumpbin found: NO
Program symbols-check.py found: YES (python C:\Software\Development\projects\mesa\bin\symbols-check.py)
Program install_megadrivers.py found: YES (c:\software\python38\python.exe C:\Software\Development\projects\mesa\bin\install_megadrivers.py)
DEPRECATION: build_always is deprecated. Combine build_by_default and build_always_stale instead.
Message: Configuration summary:
prefix: c:/
libdir: lib
includedir: include
OpenGL: yes (ES1: no ES2: no)
OSMesa: no
EGL: no
GBM: no
EGL/Vulkan/VL platforms: windows
Vulkan drivers: no
llvm: no
Gallium drivers: swrast
Gallium st: mesa
HUD lmsensors: no
Shared-glapi: no
Build targets in project: 92
mesa 20.2.0-devel
Subprojects
zlib: YES
Option buildtype is: release [default: debugoptimized]
Found ninja.EXE-1.10.0 at C:\Software\DEVELO~1\projects\ninja\ninja.EXE
C:\Software\Development\projects\mesa>%buildcmd%
ninja: Entering directory `build/aarch64'
[7/872] Generating glsl_parser with a custom command
../../src/compiler/glsl/glsl_parser.yy:85.1-12: warning: deprecated directive: '%pure-parser', use '%define api.pure' [-Wdeprecated]
85 | %pure-parser
| ^~~~~~~~~~~~
| %define api.pure
../../src/compiler/glsl/glsl_parser.yy:86.1-14: warning: deprecated directive: '%error-verbose', use '%define parse.error verbose' [-Wdeprecated]
86 | %error-verbose
| ^~~~~~~~~~~~~~
| %define parse.error verbose
../../src/compiler/glsl/glsl_parser.yy: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
[9/872] Generating glcpp-parse.[ch] with a custom command
../../src/compiler/glsl/glcpp/glcpp-parse.y:176.1-12: warning: deprecated directive: '%pure-parser', use '%define api.pure' [-Wdeprecated]
176 | %pure-parser
| ^~~~~~~~~~~~
| %define api.pure
../../src/compiler/glsl/glcpp/glcpp-parse.y:177.1-14: warning: deprecated directive: '%error-verbose', use '%define parse.error verbose' [-Wdeprecated]
177 | %error-verbose
| ^~~~~~~~~~~~~~
| %define parse.error verbose
../../src/compiler/glsl/glcpp/glcpp-parse.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
[14/872] Compiling C object src/compiler/glsl/glcpp/c893047@@glcpp@sta/meson-generated_.._glcpp-lex.c.obj
src/compiler/glsl/glcpp/glcpp-lex.c:4:9: warning: '__STDC_VERSION__' macro redefined [-Wmacro-redefined]
#define __STDC_VERSION__ 199901
^
<built-in>:368:9: note: previous definition is here
#define __STDC_VERSION__ 199901L
^
1 warning generated.
[58/872] Compiling C object src/util/719bc35@@mesa_util@sta/u_process.c.obj
../../src/util/u_process.c:158:17: warning: Warning: Per application configuration won't work with your OS version. [-W#pragma-messages]
# pragma message ( "Warning: Per application configuration won't work with your OS version." )
^
1 warning generated.
[71/872] Compiling C object src/util/719bc35@@mesa_util@sta/softfloat.c.obj
../../src/util/softfloat.c:214:42: warning: result of comparison of constant 32768 with expression of type 'int16_t' (aka 'short') is always false [-Wtautological-constant-out-of-range-compare]
} else if ((e > 0x1d) || (0x8000 <= m)) {
~~~~~~ ^ ~
1 warning generated.
[232/872] Compiling C object src/compiler/nir/c6d7332@@nir@sta/.._spirv_vtn_cfg.c.obj
../../src/compiler/spirv/vtn_cfg.c:466:1: warning: unused function 'vtn_cf_node_find_if' [-Wunused-function]
VTN_DECL_CF_NODE_FIND(if)
^
../../src/compiler/spirv/vtn_cfg.c:458:61: note: expanded from macro 'VTN_DECL_CF_NODE_FIND'
static inline struct vtn_##_type * \
^
<scratch space>:110:1: note: expanded from here
vtn_cf_node_find_if
^
1 warning generated.
[248/872] Compiling C object src/mapi/glapi/175994c@@glapi_static@sta/glapi_entrypoint.c.obj
../../src/mapi/glapi/glapi_entrypoint.c:314:1: warning: unused function 'init_glapi_relocs' [-Wunused-function]
init_glapi_relocs( void )
^
1 warning generated.
[324/872] Compiling C object src/mesa/5cde929@@mesa_gallium@sta/state_tracker_st_cb_texture.c.obj
In file included from ../../src/mesa/state_tracker/st_cb_texture.c:34:
..\..\src\mesa\main/format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main/format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[427/872] Compiling C++ object src/compiler/glsl/1a27c3f@@glsl@sta/lower_packed_varyings.cpp.obj
../../src/compiler/glsl/lower_packed_varyings.cpp:208:19: warning: private field 'locations_used' is not used [-Wunused-private-field]
const unsigned locations_used;
^
1 warning generated.
[462/872] Generating program_parse_tab.[ch] with a custom command
../../src/mesa/program/program_parse.y:124.1-12: warning: deprecated directive: '%pure-parser', use '%define api.pure' [-Wdeprecated]
124 | %pure-parser
| ^~~~~~~~~~~~
| %define api.pure
../../src/mesa/program/program_parse.y:128.1-14: warning: deprecated directive: '%error-verbose', use '%define parse.error verbose' [-Wdeprecated]
128 | %error-verbose
| ^~~~~~~~~~~~~~
| %define parse.error verbose
../../src/mesa/program/program_parse.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
[472/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/meson-generated_.._program_lex.yy.c.obj
src/mesa/program/lex.yy.c:4:9: warning: '__STDC_VERSION__' macro redefined [-Wmacro-redefined]
#define __STDC_VERSION__ 199901
^
<built-in>:368:9: note: previous definition is here
#define __STDC_VERSION__ 199901L
^
1 warning generated.
[474/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/meson-generated_.._format_unpack.c.obj
In file included from src/mesa/format_unpack.c:43:
..\..\src\mesa\main\format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main\format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
src/mesa/format_unpack.c:6810:31: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
dst[i] = s[i] * (1.0F / 0xffffffff);
~ ^~~~~~~~~~
2 warnings generated.
[475/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/meson-generated_.._format_pack.c.obj
In file included from src/mesa/format_pack.c:42:
..\..\src\mesa\main\format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main\format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[485/872] Compiling C object src/mesa/5cde929@@mesa_common...on-generated_.._.._mapi_glapi_gen_marshal_generated0.c.obj
src/mapi/glapi/gen/marshal_generated0.c:1216:16: warning: unknown attribute 'optimize' ignored [-Wunknown-attributes]
__attribute__((optimize("O1")))
^
src/mapi/glapi/gen/marshal_generated0.c:36:19: warning: unused function 'safe_mul' [-Wunused-function]
static inline int safe_mul(int a, int b)
^
2 warnings generated.
[565/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_format_utils.c.obj
In file included from ../../src/mesa/main/format_utils.c:28:
..\..\src\mesa\main/format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main/format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[567/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_get.c.obj
../../src/mesa/main/get.c:81:31: warning: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Wimplicit-int-float-conversion]
return ( ((F) * 65536.0f > INT_MAX) ? INT_MAX :
~ ^~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\lib\clang\10.0.0\include\limits.h:46:19: note: expanded from macro 'INT_MAX'
#define INT_MAX __INT_MAX__
^~~~~~~~~~~
<built-in>:37:21: note: expanded from here
#define __INT_MAX__ 2147483647
^~~~~~~~~~
1 warning generated.
[586/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_pack.c.obj
In file included from ../../src/mesa/main/pack.c:56:
..\..\src\mesa\main/format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main/format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[603/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_readpix.c.obj
In file included from ../../src/mesa/main/readpix.c:42:
..\..\src\mesa\main/format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main/format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[611/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_texgetimage.c.obj
In file included from ../../src/mesa/main/texgetimage.c:49:
..\..\src\mesa\main/format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main/format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[619/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_texparam.c.obj
../../src/mesa/main/texparam.c:821:27: warning: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Wimplicit-int-float-conversion]
((param > INT_MAX) ? INT_MAX : (GLint) (param + 0.5)) :
~ ^~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\lib\clang\10.0.0\include\limits.h:46:19: note: expanded from macro 'INT_MAX'
#define INT_MAX __INT_MAX__
^~~~~~~~~~~
<built-in>:37:21: note: expanded from here
#define __INT_MAX__ 2147483647
^~~~~~~~~~
1 warning generated.
[622/872] Compiling C object src/mesa/5cde929@@mesa_common@sta/main_texstore.c.obj
In file included from ../../src/mesa/main/texstore.c:58:
..\..\src\mesa\main/format_utils.h:90:38: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
return _mesa_i64roundevenf(x * MAX_UINT(dst_bits));
~ ^~~~~~~~~~~~~~~~~~
..\..\src\mesa\main/format_utils.h:46:40: note: expanded from macro 'MAX_UINT'
#define MAX_UINT(BITS) ((BITS) == 32 ? UINT32_MAX : ((1u << (BITS)) - 1))
^~~~~~~~~~
C:\Software\DEVELO~1\projects\llvm-mingw\include\stdint.h:88:20: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX 0xffffffffU /* 4294967295U */
^~~~~~~~~~~
1 warning generated.
[682/872] Compiling C object src/gallium/auxiliary/962fc52@@gallium@sta/draw_draw_pipe_user_cull.c.obj
../../src/gallium/auxiliary/draw/draw_pipe_user_cull.c:41:39: warning: unused function 'user_cull_stage' [-Wunused-function]
static inline struct user_cull_stage *user_cull_stage( struct draw_stage *stage )
^
1 warning generated.
[695/872] Compiling C object src/gallium/auxiliary/962fc52@@gallium@sta/draw_draw_tess.c.obj
../../src/gallium/auxiliary/draw/draw_tess.c:37:1: warning: unused function 'draw_tes_get_input_index' [-Wunused-function]
draw_tes_get_input_index(int semantic, int index,
^
1 warning generated.
[778/872] Compiling C object src/gallium/auxiliary/962fc52@@gallium@sta/util_u_debug_symbol.c.obj
In file included from ../../src/gallium/auxiliary/util/u_debug_symbol.c:49:
..\..\src\gallium\auxiliary\util/dbghelp.h:900:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
#include <pshpack4.h>
^
C:\Software\DEVELO~1\projects\llvm-mingw\include/pshpack4.h:7:9: note: previous '#pragma pack' directive that modifies alignment is here
#pragma pack(push,4)
^
In file included from ../../src/gallium/auxiliary/util/u_debug_symbol.c:49:
..\..\src\gallium\auxiliary\util/dbghelp.h:1260:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
#include <poppack.h>
^
note: previous '#pragma pack' directive that modifies alignment is here
2 warnings generated.
[815/872] Compiling C object src/gallium/auxiliary/962fc52@@gallium@sta/util_u_debug_stack.c.obj
../../src/gallium/auxiliary/util/u_debug_stack.c:255:32: warning: unknown warning group '-Wframe-address', ignored [-Wunknown-warning-option]
#pragma GCC diagnostic ignored "-Wframe-address"
^
1 warning generated.
[851/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_ext_pbuffer.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_ext_pbuffer.c:40:
In file included from ..\..\src\gallium\frontends\wgl/stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[853/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_ext_pixelformat.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_ext_pixelformat.c:47:
In file included from ..\..\src\gallium\frontends\wgl/stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[854/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_ext_rendertexture.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_ext_rendertexture.c:40:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[855/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_context.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_context.c:43:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[859/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_ext_context.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_ext_context.c:33:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[860/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_device.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_device.c:36:
In file included from ..\..\src\gallium\frontends\wgl/stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[863/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_framebuffer.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_framebuffer.c:37:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[864/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_getprocaddress.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_getprocaddress.c:36:
In file included from ..\..\src\gallium\frontends\wgl/stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[865/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_st.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_st.c:34:
In file included from ..\..\src\gallium\frontends\wgl/stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[866/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_wgl.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_wgl.c:45:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[867/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_pixelformat.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_pixelformat.c:37:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[868/872] Compiling C object src/gallium/targets/libgl-gdi/0b71dfc@@opengl32@sha/libgl_gdi.c.obj
In file included from ../../src/gallium/targets/libgl-gdi/libgl_gdi.c:41:
In file included from ..\..\src\gallium\frontends\wgl\stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
../../src/gallium/targets/libgl-gdi/libgl_gdi.c:58:16: warning: unused variable 'use_llvmpipe' [-Wunused-variable]
static boolean use_llvmpipe = FALSE;
^
../../src/gallium/targets/libgl-gdi/libgl_gdi.c:59:16: warning: unused variable 'use_swr' [-Wunused-variable]
static boolean use_swr = FALSE;
^
3 warnings generated.
[869/872] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_ext_swapinterval.c.obj
In file included from ../../src/gallium/frontends/wgl/stw_ext_swapinterval.c:36:
In file included from ..\..\src\gallium\frontends\wgl/stw_device.h:35:
..\..\src\gallium\frontends\wgl/gldrv.h:517:25: warning: redefinition of typedef 'PFN_PRESENTBUFFERS' is a C11 feature [-Wtypedef-redefinition]
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
..\..\src\gallium\frontends\wgl/gldrv.h:402:25: note: previous definition is here
typedef BOOL (APIENTRY *PFN_PRESENTBUFFERS)(HDC hdc, LPPRESENTBUFFERSCB pprsbcbData);
^
1 warning generated.
[872/872] Linking target src/gallium/targets/libgl-gdi/opengl32.dll
FAILED: src/gallium/targets/libgl-gdi/opengl32.dll
aarch64-w64-mingw32-clang++ @src/gallium/targets/libgl-gdi/opengl32.dll.rsp
lld-link: error: undefined symbol: sscanf
>>> referenced by libgallium.a(hud_hud_context.c.obj):(hud_create)
>>> referenced by libgallium.a(hud_hud_context.c.obj):(hud_create)
>>> referenced by libgallium.a(hud_hud_context.c.obj):(hud_create)
>>> referenced by libmesa_common.a(main_version.c.obj):(_mesa_override_gl_version_contextless)
>>> referenced by libmesa_common.a(main_version.c.obj):(_mesa_override_glsl_version)
lld-link: error: undefined symbol: __ms_vsnprintf
>>> referenced by libgallium.a(hud_hud_context.c.obj):(hud_draw_string)
>>> referenced by libgallium.a(hud_hud_context.c.obj):(util_sprintf)
>>> referenced by libmesa_util.a(u_debug.c.obj):(_debug_vprintf)
>>> referenced by libmesa_util.a(u_debug.c.obj):(_debug_printf)
>>> referenced by libmesa_util.a(u_debug.c.obj):(snprintf)
>>> referenced by libgallium.a(util_u_simple_shaders.c.obj):(util_sprintf)
>>> referenced by libgallium.a(util_u_simple_shaders.c.obj):(snprintf)
>>> referenced by libmesa_common.a(main_teximage.c.obj):(snprintf)
>>> referenced by libmesa_common.a(main_errors.c.obj):(_mesa_warning)
>>> referenced by libmesa_common.a(main_errors.c.obj):(_mesa_problem)
>>> referenced 32 more times
lld-link: error: undefined symbol: __declspec(dllimport) _snprintf
>>> referenced by libmesa_gallium.a(state_tracker_st_cb_drawpixels.c.obj):(get_drawpix_z_stencil_program)
>>> referenced by libmesa_gallium.a(state_tracker_st_cb_drawpixels.c.obj):(get_drawpix_z_stencil_program)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced by libmesa_gallium.a(state_tracker_st_nir_builtins.c.obj):(st_nir_make_passthrough_shader)
>>> referenced 10 more times
lld-link: error: undefined symbol: _setjmpex
>>> referenced by libnir.a(.._spirv_spirv_to_nir.c.obj):(spirv_to_nir)
>>> referenced by libnir.a(.._spirv_gl_spirv.c.obj):(gl_spirv_validation)
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
C:\Software\Development\projects\mesa>
Update __MSVCRT_VERSION__
from 0x0700
to 0x0E00
to solve the CRT linking issues with MinGW, here is a patch for scons build, meson should be similar.
diff --git a/scons/gallium.py b/scons/gallium.py
index df842de..89ba5b4 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -403,7 +403,7 @@ def generate(env):
('WINVER', '0x0601'),
]
if gcc_compat:
- cppdefines += [('__MSVCRT_VERSION__', '0x0700')]
+ cppdefines += [('__MSVCRT_VERSION__', '0x0E00')]
cppdefines += ['_USE_MATH_DEFINES']
if msvc:
cppdefines += [
@@ -604,7 +604,7 @@ def generate(env):
linkflags += ['-m32']
if env['machine'] == 'x86_64':
linkflags += ['-m64']
- if env['platform'] not in ('darwin'):
+ if not env['clang']:
shlinkflags += [
'-Wl,-Bsymbolic',
]
@@ -623,7 +623,8 @@ def generate(env):
if 'w64' in env['CC'].split('-'):
linkflags += ['-static-libstdc++']
# Handle the @xx symbol munging of DLL exports
- shlinkflags += ['-Wl,--enable-stdcall-fixup']
+ if not env['clang']:
+ shlinkflags += ['-Wl,--enable-stdcall-fixup']
#shlinkflags += ['-Wl,--kill-at']
if msvc:
if env['build'] == 'release' and not env['clang']:
Or just replace libmsvcrt.a (which is actually libucrt.a) with libmsvcrt-os.a to force llvm-mingw to link to the traditional msvcrt.dll. (To do it properly you need to rebuild MinGW but this seems to work fine enough)
Hello, I have RPI4B with 8GB RAM (It's SBC with ARM64 arch CPU with integrated GPU) and ready to test it out on Windows 11 Insider preview edition (22000.51). What should I do and how can help you?
For starters I am worried that deployment tools may not function properly on Windows 10 ARM64. If you know CMD batch script you test and fix them if necessary. As for native ARM/ARM64 builds they won't happen until there is upstream support.
I made some modifications to the build script and was able to compile for ARM64. I tested the outputted .dll
files on my Windows ARM64 devkit with Minecraft Java with prism launcher and openjdk arm64 windows and my testing has shown that it doesn't work, but I'm not sure what's the problem at runtime.
I have the modifications available here: https://github.com/pal1000/mesa-dist-win/compare/master...yourWaifu:mesa-dist-win:master
I'm aware that these modifications aren't elegant solutions, but it compiles.
Not related to this repo specifically, but I get mesa to build on MSYS2 CLANGARM64 environment.
GLonD3D12 and softpipe works fine (which isn't surprising since it is already shipped by Microsoft).
llvmpipe does not (I am not able to figure out how to make MCJIT work on Windows ARM64).
dzn works (with vkcube) on WARP (Microsoft's Direct3D software render), but crashes with Qualcomm GPU driver.
Considering @yourWaifu contributing MSYS2 MinGW ARM64 native build support in #130 and @driver1998 having some success testing it I'd like to work on MSVC x64_ARM64 cross build preferably with ARM64X toolchain. This would enable me to provide ARM64 binaries despite not having an ARM64 CPU.
Here is a build script todo list:
ARM64EC are for x64 apps, if you can't build them yet you can just use a x64 version instead.
You may need an ARM64X wrapper DLL if you want system deploy though. https://learn.microsoft.com/en-us/windows/arm/arm64x-build#building-an-arm64x-pure-forwarder-dll
Do ARM64X binaries run on Windows 11 x64? If they do that could save me from cross-compilation complexity as they would run in either ARM64 or ARM64EC mode as necessary. This would also enable me to get system wide deployment tool working on Windows ARM64.
No, but it does run in Windows 10 ARM64.
any updates on this or has this issue gone stale?
It's mostly stale. There have been contributions, but without ARM64 PC I can't make binaries and fix build script bugs.
Hi, now that one use case of CLonD3D12 and GLonD3D12 is clear: https://devblogs.microsoft.com/directx/directx-heart-linux/ seems other use case Microsoft is interested is for Windows on ARM64 as this version doesn't have OpenGL/OpenCL support.. see: https://gitlab.freedesktop.org/kusma/mesa/-/merge_requests/69 seems they are testing support for Photoshop OpenCL kernels on CLonD3D12 and this maybe useful jointly with also upcoming Windows ARM64 x64 emulation support.. anyway all that intro was to ask also how difficult would be to ship you mesa OpenGL software rasterizers for ARM64? SWR makes no sense but hope llvmpipe is Neon accelerated.. as Mesa supports Linux ARM64.. note that I haven't yet any Win ARM64 machine so just curious to ask.. thanks..