Git Product home page Git Product logo

Comments (12)

pal1000 avatar pal1000 commented on July 22, 2024 5

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.

from mesa-dist-win.

pal1000 avatar pal1000 commented on July 22, 2024 1

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.

from mesa-dist-win.

oscarbg avatar oscarbg commented on July 22, 2024

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

from mesa-dist-win.

pal1000 avatar pal1000 commented on July 22, 2024

I setup crosscompilation in 15121d6 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>

from mesa-dist-win.

driver1998 avatar driver1998 commented on July 22, 2024

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)

from mesa-dist-win.

Maxim766 avatar Maxim766 commented on July 22, 2024

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?

from mesa-dist-win.

pal1000 avatar pal1000 commented on July 22, 2024

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.

from mesa-dist-win.

yourWaifu avatar yourWaifu commented on July 22, 2024

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: master...yourWaifu:mesa-dist-win:master
I'm aware that these modifications aren't elegant solutions, but it compiles.

from mesa-dist-win.

driver1998 avatar driver1998 commented on July 22, 2024

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.

from mesa-dist-win.

driver1998 avatar driver1998 commented on July 22, 2024

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

from mesa-dist-win.

pal1000 avatar pal1000 commented on July 22, 2024

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.

from mesa-dist-win.

driver1998 avatar driver1998 commented on July 22, 2024

No, but it does run in Windows 10 ARM64.

from mesa-dist-win.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.