Package Details: opencl-rusticl-mesa-minimal-git 24.2.0_devel.189613.18c736bcfc5-1

Git Clone URL: https://aur.archlinux.org/mesa-minimal-git.git (read-only, click to copy)
Package Base: mesa-minimal-git
Description: OpenCL support in rust for mesa drivers (git version)
Upstream URL: https://www.mesa3d.org
Licenses: custom
Conflicts: opencl-clover-mesa, opencl-rusticl-mesa
Provides: opencl-driver, opencl-rusticl-mesa
Submitter: shoober420
Maintainer: Lone_Wolf
Last Packager: Lone_Wolf
Votes: 11
Popularity: 0.49
First Submitted: 2020-12-10 00:38 (UTC)
Last Updated: 2024-05-22 12:57 (UTC)

Required by (39)

Sources (3)

Pinned Comments

Lone_Wolf commented on 2023-05-22 12:07 (UTC) (edited on 2024-03-30 13:58 (UTC) by Lone_Wolf)

Build order

llvm-minimal-git
spirv-headers-git
spirv-tools-git
spirv-llvm-translator-minimal-git
libclc-minimal-git
glslang-minimal-git
mesa-minimal-git

glslang-minimal-git must be built after spirv-tools-git and before mesa-minimal-git

Build frequency

I aim to build everything (including the lib32 part) atleast once a week.

How often you build this is a personal choice, but once a month is in my opinion the absolute maximum .

In that timeframe mesa will have seen almost 1k commits, llvm/clang gets more.

Lone_Wolf commented on 2021-01-22 18:36 (UTC) (edited on 2021-01-22 18:39 (UTC) by Lone_Wolf)

Why does this package hard depend on llvm-minimal-git ?

  • performance

archlinux repo packages are build with -march=x86-64 -mtune=generic which works on lots of machines but makes limited use of modern processor capabilities. For many packages this has little impact, but with llvm my experience is different.

My local builds for llvm / mesa are done with -march=native and this has a noticeable effect on their performance.

How big the benefit of this is depends heavily on the exact hardware you use. Worse, the software setup also impacts this. The only way to find out if it benefits your system/software setup is to try it out yourself.

  • easier maintenance and troubleshooting

Since i started my first mesa trunk package late in 2010 I have maintained versions without any llvm, one llvm implementation, split versions, singular versions, versions supporting multiple llvm implementations , switch from libgl hacks libglvnd to allow mesa & nvidia to cooperate etc.

Depending on one llvm variant in a non-splitted singular version results in a simple PKGBUILD that is easy to maintain.

Troubleshooting is also much easier if maintainer uses the same llvm variant as users.

If people feel those reasons are not good enough to hard depend on llvm-minimal-git , maybe I should transfer ownership .

Lone_Wolf commented on 2021-01-09 15:02 (UTC)

Why does this exist ?

Basically mesa/mesa-git build almost everything they can build.

This package tries to build just enough so everyone can use it, but disables older and/or unused components.

Check https://bbs.archlinux.org/viewtopic.php?id=261629 for a discussion about this package.

Latest Comments

1 2 3 4 5 6 7 Next › Last »

Lone_Wolf commented on 2024-05-22 12:59 (UTC)

patch applied to solve the build failure

Lone_Wolf commented on 2024-05-17 19:36 (UTC)

Build is currentyl broken, see https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25265#note_2417849

Lone_Wolf commented on 2024-04-02 21:04 (UTC)

A change in llvm trunk broke building intel drivers (again) .

see https://gitlab.freedesktop.org/mesa/mesa/-/issues/10947

d3vilguard commented on 2024-03-28 12:47 (UTC) (edited on 2024-03-28 13:32 (UTC) by d3vilguard)

Confirming successful compilation with -fpermissive, obviously had to use it to compile 32mesa too as it was failing around line 779 without it. Both mesa-minimal-git and lib32-mesa-minimal-git compiled.

PS, just for the lols compiled mesa with LTO. I see why we have it disabled. Massive graphical issues.

Lone_Wolf commented on 2024-03-28 08:22 (UTC) (edited on 2024-03-28 08:22 (UTC) by Lone_Wolf)

Nope, -fpermissive needs to be used in build() of the mesa-minimal-git PKGBUILD.

No changes are needed in the llvm-minimal-git package.

d3vilguard commented on 2024-03-28 06:40 (UTC)

build() {
    CXXFLAGS+=" -fpermissive"
    local cmake_args=(

Right?

I'm still failing randomly between line 500-600 while compiling mesa.

[578/2329] Compiling C object src/vulkan/runtime/libvulkan_lite_runtime.a.p/meson-generated_.._vk_cmd_queue.c.o
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().

Lone_Wolf commented on 2024-03-27 23:21 (UTC)

@wustdsh: confirmed, I get the same error.

Looks like it may be caused by https://github.com/llvm/llvm-project/commit/44d037cc258dcf179d2c48c93996bb406ecd0fae but i'll need to bisect llvm-minimal-git to be certain of that (hopefully coming weekend) .

I did find a workaround: add CXXFLAGS+=" -fpermissive" just before the meson setup line in build() .

@d3vilguard: I have tried building with LTO several times in the last 2 years, but got runtime issues every few weeks that vanished completely when building with lto disabled.

wustdsh commented on 2024-03-27 15:29 (UTC)

built failed with

[405/2802] Compiling C++ object src/compiler/clc/liblibmesaclc.a.p/clc_helpers.cpp.o
FAILED: src/compiler/clc/liblibmesaclc.a.p/clc_helpers.cpp.o 
g++ -Isrc/compiler/clc/liblibmesaclc.a.p -Isrc/compiler/clc -I../mesa/src/compiler/clc -Iinclude -I../mesa/include -Isrc -I../mesa/src -Isrc/compiler/spirv -I../mesa/src/compiler/spirv -Isrc/compiler/nir -I../mesa/src/compiler/nir -Isrc/compiler -I../mesa/src/compiler -I/usr/include/valgrind -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++17 -O3 '-DPACKAGE_VERSION="24.1.0-devel"' '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"' -DHAVE_OPENGL=1 -DHAVE_OPENGL_ES_1=0 -DHAVE_OPENGL_ES_2=1 -DHAVE_R300 -DHAVE_R600 -DHAVE_RADEONSI -DHAVE_SVGA -DHAVE_SWRAST -DHAVE_VIRGL -DHAVE_IRIS -DHAVE_ZINK -DHAVE_CROCUS -DHAVE_I915 -DVIDEO_CODEC_VC1DEC=1 -DVIDEO_CODEC_H264DEC=1 -DVIDEO_CODEC_H264ENC=1 -DVIDEO_CODEC_H265DEC=1 -DVIDEO_CODEC_H265ENC=1 -DVIDEO_CODEC_AV1DEC=1 -DVIDEO_CODEC_AV1ENC=1 -DVIDEO_CODEC_VP9DEC=1 -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_XCB_PLATFORM -DHAVE_ST_VDPAU -DENABLE_ST_OMX_BELLAGIO=1 -DENABLE_ST_OMX_TIZONIA=0 -DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_DRM -DGLAPI_EXPORT_PROTO_ENTRY_POINTS=0 -DALLOW_KCMP -DMESA_DEBUG=0 -DENABLE_SHADER_CACHE -DHAVE___BUILTIN_BSWAP32 -DHAVE___BUILTIN_BSWAP64 -DHAVE___BUILTIN_CLZ -DHAVE___BUILTIN_CLZLL -DHAVE___BUILTIN_CTZ -DHAVE___BUILTIN_EXPECT -DHAVE___BUILTIN_FFS -DHAVE___BUILTIN_FFSLL -DHAVE___BUILTIN_POPCOUNT -DHAVE___BUILTIN_POPCOUNTLL -DHAVE___BUILTIN_UNREACHABLE -DHAVE___BUILTIN_TYPES_COMPATIBLE_P -DHAVE_FUNC_ATTRIBUTE_CONST -DHAVE_FUNC_ATTRIBUTE_FLATTEN -DHAVE_FUNC_ATTRIBUTE_MALLOC -DHAVE_FUNC_ATTRIBUTE_PURE -DHAVE_FUNC_ATTRIBUTE_UNUSED -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT -DHAVE_FUNC_ATTRIBUTE_WEAK -DHAVE_FUNC_ATTRIBUTE_FORMAT -DHAVE_FUNC_ATTRIBUTE_PACKED -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL -DHAVE_FUNC_ATTRIBUTE_ALIAS -DHAVE_FUNC_ATTRIBUTE_NORETURN -DHAVE_FUNC_ATTRIBUTE_VISIBILITY -DHAVE_UINT128 -DHAVE_REALLOCARRAY -DHAVE_FMEMOPEN -DUSE_SSE41 -DHAVE___BUILTIN_IA32_CLFLUSHOPT -DUSE_GCC_ATOMIC_BUILTINS -DUSE_X86_64_ASM -DMAJOR_IN_SYSMACROS -DHAS_SCHED_H -DHAS_SCHED_GETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_ENDIAN_H -DHAVE_DLFCN_H -DHAVE_SYS_SHM_H -DHAVE_CET_H -DHAVE_SYS_INOTIFY_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_MEMFD_CREATE -DHAVE_RANDOM_R -DHAVE_FLOCK -DHAVE_STRTOK_R -DHAVE_GETRANDOM -DHAVE_POSIX_FALLOCATE -DHAVE_SECURE_GETENV -DHAVE_GNU_QSORT_R -DHAVE_STRUCT_TIMESPEC -DHAVE_PROGRAM_INVOCATION_NAME -DHAVE_ISSIGNALING -DHAVE_POSIX_MEMALIGN -DHAVE_DIRENT_D_TYPE -DHAVE_STRTOD_L -DHAVE_DLADDR -DHAVE_DL_ITERATE_PHDR -DSUPPORT_INTEL_INTEGRATED_GPUS -DHAVE_ZLIB -DHAVE_ZSTD -DHAVE_COMPRESSION -DHAVE_PTHREAD -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LIBDRM -DHAVE_LIBUDEV '-DMESA_LLVM_VERSION_STRING="19.0.0"' -DLLVM_IS_SHARED=1 -DLLVM_AVAILABLE=1 -DDRAW_LLVM_AVAILABLE=1 -DUSE_LIBELF -DUSE_LIBGLVND=1 -DHAVE_VALGRIND -DHAVE_LIBUNWIND -DWL_HIDE_DEPRECATED -DHAVE_OPENMP -DHAVE_DRI -DHAVE_DRI2 -DHAVE_DRI3 -DHAVE_DRI3_MODIFIERS -DHAVE_DRISW_KMS -DHAVE_GALLIUM_EXTRA_HUD=1 -DHAVE_LIBSENSORS=1 -mtls-dialect=gnu2 -Werror=return-type -Werror=empty-body -Wmisleading-indentation -Wno-non-virtual-dtor -Wno-missing-field-initializers -Wno-format-truncation -fno-math-errno -fno-trapping-math -flifetime-dse=1 -Wno-unknown-pragmas -Werror=format -Wformat-security -ffunction-sections -fdata-sections -Wno-unused-variable -Wno-unused-but-set-variable -march=native -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS '-DLLVM_LIB_DIR="/usr/lib"' '-DDYNAMIC_LIBCLC_PATH="/usr/share/clc/"' -MD -MQ src/compiler/clc/liblibmesaclc.a.p/clc_helpers.cpp.o -MF src/compiler/clc/liblibmesaclc.a.p/clc_helpers.cpp.o.d -o src/compiler/clc/liblibmesaclc.a.p/clc_helpers.cpp.o -c ../mesa/src/compiler/clc/clc_helpers.cpp
../mesa/src/compiler/clc/clc_helpers.cpp: In function ‘int clc_c_to_spir(const clc_compile_args*, const clc_logger*, clc_binary*)’:
../mesa/src/compiler/clc/clc_helpers.cpp:1124:42: error: invalid conversion from ‘void (*)(const llvm::DiagnosticInfo&, void*)’ to ‘llvm::DiagnosticHandler::DiagnosticHandlerTy’ {aka ‘void (*)(const llvm::DiagnosticInfo*, void*)’} [-fpermissive]
 1124 |    llvm_ctx.setDiagnosticHandlerCallBack(llvm_log_handler,
      |                                          ^~~~~~~~~~~~~~~~
      |                                          |
      |                                          void (*)(const llvm::DiagnosticInfo&, void*)
In file included from /usr/include/llvm/IR/Metadata.h:27,
                 from /usr/include/llvm/IR/TrackingMDRef.h:16,
                 from /usr/include/llvm/IR/DebugLoc.h:17,
                 from /usr/include/llvm/IR/DiagnosticInfo.h:22,
                 from ../mesa/src/compiler/clc/clc_helpers.cpp:33:
/usr/include/llvm/IR/LLVMContext.h:171:46: note:   initializing argument 1 of ‘void llvm::LLVMContext::setDiagnosticHandlerCallBack(llvm::DiagnosticHandler::DiagnosticHandlerTy, void*, bool)’
  171 |       DiagnosticHandler::DiagnosticHandlerTy DiagHandler,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../mesa/src/compiler/clc/clc_helpers.cpp: In function ‘int clc_c_to_spirv(const clc_compile_args*, const clc_logger*, clc_binary*)’:
../mesa/src/compiler/clc/clc_helpers.cpp:1150:42: error: invalid conversion from ‘void (*)(const llvm::DiagnosticInfo&, void*)’ to ‘llvm::DiagnosticHandler::DiagnosticHandlerTy’ {aka ‘void (*)(const llvm::DiagnosticInfo*, void*)’} [-fpermissive]
 1150 |    llvm_ctx.setDiagnosticHandlerCallBack(llvm_log_handler,
      |                                          ^~~~~~~~~~~~~~~~
      |                                          |
      |                                          void (*)(const llvm::DiagnosticInfo&, void*)
/usr/include/llvm/IR/LLVMContext.h:171:46: note:   initializing argument 1 of ‘void llvm::LLVMContext::setDiagnosticHandlerCallBack(llvm::DiagnosticHandler::DiagnosticHandlerTy, void*, bool)’
  171 |       DiagnosticHandler::DiagnosticHandlerTy DiagHandler,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../mesa/src/compiler/clc/clc_helpers.cpp: In function ‘int clc_spir_to_spirv(const clc_binary*, const clc_logger*, clc_binary*)’:
../mesa/src/compiler/clc/clc_helpers.cpp:1167:42: error: invalid conversion from ‘void (*)(const llvm::DiagnosticInfo&, void*)’ to ‘llvm::DiagnosticHandler::DiagnosticHandlerTy’ {aka ‘void (*)(const llvm::DiagnosticInfo*, void*)’} [-fpermissive]
 1167 |    llvm_ctx.setDiagnosticHandlerCallBack(llvm_log_handler,
      |                                          ^~~~~~~~~~~~~~~~
      |                                          |
      |                                          void (*)(const llvm::DiagnosticInfo&, void*)
/usr/include/llvm/IR/LLVMContext.h:171:46: note:   initializing argument 1 of ‘void llvm::LLVMContext::setDiagnosticHandlerCallBack(llvm::DiagnosticHandler::DiagnosticHandlerTy, void*, bool)’
  171 |       DiagnosticHandler::DiagnosticHandlerTy DiagHandler,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~

Maybe my llvm-minimal-git build is outdated, but rebuilding is time-consuming.

d3vilguard commented on 2024-03-27 13:20 (UTC) (edited on 2024-03-27 13:24 (UTC) by d3vilguard)

Built successful last night but I had some game crashes so decided to rebuild everything.

Try 1:

[603/2329] Compiling C object src/vulkan/runtime/libvulkan_lite_runtime.a.p/meson-generated_.._vk_cmd_queue.c.o ninja: build stopped: subcommand failed. ==> ERROR: A failure occurred in build().

Try2:

[584/2329] Compiling C object src/vulkan/runtime/libvulkan_lite_runtime.a.p/meson-generated_.._vk_cmd_queue.c.o ninja: build stopped: subcommand failed. ==> ERROR: A failure occurred in build().

With: Packages (12) libedit-20230828_3.1-1 llvm-libs-17.0.6-2 clang-libs-minimal-git-19.0.0_r494032.c9d12664f2f9-1 clang-minimal-git-19.0.0_r494032.c9d12664f2f9-1 clang-opencl-headers-minimal-git-19.0.0_r494032.c9d12664f2f9-1 glslang-minimal-git-14.1.0.r7.g32257786-3 libclc-minimal-git-19.0.0_r494032.c9d12664f2f9-1 llvm-libs-minimal-git-19.0.0_r494032.c9d12664f2f9-1 llvm-minimal-git-19.0.0_r494032.c9d12664f2f9-1 spirv-headers-git-1:vulkan.sdk.1.3.280.0.r2.g7d500c4-1 spirv-llvm-translator-minimal-git-1:r2011.98729ef-1 spirv-tools-git-3:2024.1.3932.fe7bae090-1

Also wanted to ask if LTO can be enabled?