Package Details: mesa-minimal-git 26.2.0_devel.222483.fb0123f42ed-1

Git Clone URL: https://aur.archlinux.org/mesa-minimal-git.git (read-only, click to copy)
Package Base: mesa-minimal-git
Description: an open-source implementation of the OpenGL specification, stripped down git version
Upstream URL: https://www.mesa3d.org
Keywords: llvm mesa
Licenses: MIT AND BSD-3-Clause AND SGI-B-2.0
Conflicts: libva-mesa-driver, mesa, mesa-libgl, mesa-vdpau, opencl-mesa, vulkan-dzn, vulkan-gfxstream, vulkan-intel, vulkan-mesa-implicit-layers, vulkan-mesa-layers, vulkan-nouveau, vulkan-radeon, vulkan-swrast, vulkan-virtio
Provides: libva-mesa-driver, mesa, opengl-driver, vulkan-driver, vulkan-intel, vulkan-mesa-implicit-layers, vulkan-mesa-layers, vulkan-radeon, vulkan-swrast, vulkan-virtio
Submitter: shoober420
Maintainer: Lone_Wolf
Last Packager: Lone_Wolf
Votes: 12
Popularity: 0.000179
First Submitted: 2020-12-10 00:38 (UTC)
Last Updated: 2026-05-13 17:10 (UTC)

Required by (1659)

Sources (3)

Pinned Comments

Lone_Wolf commented on 2023-05-22 12:07 (UTC) (edited on 2024-09-06 21:16 (UTC) by Lone_Wolf)

Build order

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

N.B. these packages are closely tied together, make sure you build all of them in a short period of time (worst case on my system is around 3 hours) .

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

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 .. 12 Next › Last »

TIMW commented on 2026-05-13 16:47 (UTC) (edited on 2026-05-13 19:08 (UTC) by TIMW)

Keep it simple 😉 MCContextTargetMachine.patch

--- mesa/src/amd/llvm/ac_llvm_helper.cpp 2026-05-13 18:41:40.949271325 +0200 +++ mesa/src/amd/llvm/ac_llvm_helper.cpp.new 2026-05-13 18:43:16.289880710 +0200 @@ -71,7 +71,7 @@ bool ac_is_llvm_processor_supported(LLVMTargetMachineRef tm, const char processor) { TargetMachine TM = reinterpret_cast<TargetMachine *>(tm); - return TM->getMCSubtargetInfo()->isCPUStringValid(processor); + return TM->getMCSubtargetInfo().isCPUStringValid(processor); }

void ac_reset_llvm_all_options_occurrences() --- mesa/src/compiler/clc/clc_helpers.cpp 2026-05-13 18:41:34.746264116 +0200 +++ mesa/src/compiler/clc/clc_helpers.cpp.new 2026-05-13 18:43:11.302379691 +0200 @@ -1189,7 +1189,8 @@ if (args->use_llvm_spirv_target) { const char *triple = args->address_bits == 32 ? "spirv-unknown-unknown" : "spirv64-unknown-unknown"; std::string error_msg(""); - auto target = TargetRegistry::lookupTarget(triple, error_msg); + llvm::Triple llvm_triple(triple); + auto target = TargetRegistry::lookupTarget(llvm_triple, error_msg); if (target) { auto TM = target->createTargetMachine( #if LLVM_VERSION_MAJOR >= 21

TIMW commented on 2026-05-13 16:01 (UTC)

Build succes for me for now

Lone_Wolf commented on 2026-05-13 13:38 (UTC)

Thanks, I'll look into building & updating within next 24 hours.

TIMW commented on 2026-05-13 12:34 (UTC) (edited on 2026-05-13 18:47 (UTC) by TIMW)

prepare() { cd mesa

sed -i \ 's/auto target = TargetRegistry::lookupTarget(triple, error_msg);/llvm::Triple llvm_triple(triple);\n auto target = TargetRegistry::lookupTarget(llvm_triple, error_msg);/' \ src/compiler/clc/clc_helpers.cpp

sed -i \ 's/getMCSubtargetInfo()->/getMCSubtargetInfo()./g' \ src/amd/llvm/ac_llvm_helper.cpp }

TIMW commented on 2026-05-13 11:50 (UTC)

After loot of reading mesa gitlab its still not look like for future even if this issue will be fixed another come and thath dev community is not look like tie to llvm git so future profs is not exist and temporary fixing thath is not good way ...sad

Lone_Wolf commented on 2026-05-10 11:39 (UTC)

new build error:

../mesa/src/compiler/clc/clc_helpers.cpp: In function ‘int llvm_mod_to_spirv(std::unique_ptr<llvm::Module>, llvm::LLVMContext&, const clc_compile_args*, const clc_logger*, clc_binary*)’:
../mesa/src/compiler/clc/clc_helpers.cpp:1192:49: error: no matching function for call to ‘llvm::TargetRegistry::lookupTarget(const char*&, std::string&)’
 1192 |       auto target = TargetRegistry::lookupTarget(triple, error_msg);
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
  • there are 2 candidates
In file included from ../mesa/src/compiler/clc/clc_helpers.cpp:37:
    • candidate 1: ‘static const llvm::Target* llvm::TargetRegistry::lookupTarget(const llvm::Triple&, std::string&)’
      /usr/include/llvm/MC/TargetRegistry.h:731:33:
        731 |   LLVM_ABI static const Target *lookupTarget(const Triple &TheTriple,
            |                                 ^~~~~~~~~~~~
      • no known conversion for argument 1 from ‘const char*’ to ‘const llvm::Triple&’
        /usr/include/llvm/MC/TargetRegistry.h:731:60:
          731 |   LLVM_ABI static const Target *lookupTarget(const Triple &TheTriple,
              |                                              ~~~~~~~~~~~~~~^~~~~~~~~
    • candidate 2: ‘static const llvm::Target* llvm::TargetRegistry::lookupTarget(llvm::StringRef, llvm::Triple&, std::string&)’
      /usr/include/llvm/MC/TargetRegistry.h:746:3:
        746 |   lookupTarget(StringRef ArchName, Triple &TheTriple, std::string &Error);
            |   ^~~~~~~~~~~~
      • candidate expects 3 arguments, 2 provided