mesa-dist-win icon indicating copy to clipboard operation
mesa-dist-win copied to clipboard

ARM64 releases?

Open oscarbg opened this issue 4 years ago • 12 comments

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..

oscarbg avatar May 20 '20 04:05 oscarbg

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 arm-fail.txt The final attempt is to explicitly declare crosscompilation with Meson.

pal1000 avatar May 20 '20 20:05 pal1000

Hi, thanks for info.. let me keep open anyway in case eventually I get some Win ARM64 machine to try..

oscarbg avatar May 21 '20 19:05 oscarbg

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>

pal1000 avatar May 23 '20 15:05 pal1000

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)

driver1998 avatar Nov 01 '20 10:11 driver1998

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?

Maxim766 avatar Jul 03 '21 13:07 Maxim766

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.

pal1000 avatar Jul 04 '21 16:07 pal1000

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.

yourWaifu avatar Dec 27 '22 19:12 yourWaifu

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.

driver1998 avatar Dec 28 '22 04:12 driver1998

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:

  • [ ] Review and fix if needed MSVC ARM64 Meson cross file;
  • [ ] Implement MSVC ARM64 cmake cross file;
  • [ ] Allow selecting ARM64 with x86/x64 CPU host when building with MSVC;
  • [ ] Support configuring CLonD3D12 ICD, LLVM+clang, llvmspirvlib, libclc, libva and spirv tools builds for cmake based crosscompilation with MSVC;
  • [ ] Support configuring Mesa3D build for Meson based crosscompilation with MSVC;
  • [ ] Force LLVM discovery method to cmake when crosscompiling because we can't run config-tool.

pal1000 avatar Mar 16 '23 12:03 pal1000

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

driver1998 avatar Mar 17 '23 01:03 driver1998

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.

pal1000 avatar Mar 23 '23 11:03 pal1000

No, but it does run in Windows 10 ARM64.

driver1998 avatar Mar 23 '23 11:03 driver1998