-
Notifications
You must be signed in to change notification settings - Fork 773
{compiler,lib,vis}[GCCcore/14.3.0] glslang-SPIRV v15.4.0, libclc v20.1.8, OpenGL v2025.09 #23764
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
d014895
a9184c4
2d58e99
4a768e6
d728be4
03edbbc
ac3f11e
1732c82
8d27165
1e004c1
1432361
b3bb20e
7c5cc48
2a39887
37939eb
18a9eaa
360087c
66d1fab
631ecf4
29471a2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| easyblock = 'CMakeMake' | ||
|
|
||
| name = 'glslang-SPIRV' | ||
| version = '15.4.0' | ||
|
|
||
| homepage = 'https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/' | ||
| description = """Glslang is the official reference compiler front end for the OpenGL ES and OpenGL shading languages. | ||
| It implements a strict interpretation of the specifications for these languages. It is open and free for anyone to use, | ||
| either from a command line or programmatically. The OpenGL and OpenGL ES working groups are committed to maintaining | ||
| consistency between the reference compiler and the corresponding shading language specifications.""" | ||
|
|
||
| toolchain = {'name': 'GCCcore', 'version': '14.3.0'} | ||
| toolchainopts = {'pic': True} | ||
|
|
||
| # From https://github.com/KhronosGroup/glslang/blob/15.4.0/known_good.json | ||
| local_spirv_tools_commit = '33e02568181e3312f49a3cf33df470bf96ef293a' # equivalent to v2025.3.0.rc1 | ||
| local_spirv_headers_commit = '2a611a970fdbc41ac2e3e328802aed9985352dca' # equivalent to v1.4.321.0 | ||
| local_googletest_commit = 'f8d7d77c06936315286eb55f8de22cd23c188571' # equivalent to tag v1.14.0 | ||
|
|
||
| local_github_repos = [ | ||
| ("KhronosGroup", "SPIRV-Tools", local_spirv_tools_commit, 'spirv-tools'), | ||
| ("KhronosGroup", "SPIRV-Headers", local_spirv_headers_commit, 'spirv-tools/external/spirv-headers'), | ||
| ("google", "googletest", local_googletest_commit, 'googletest'), | ||
| ] | ||
|
|
||
| sources = ['https://github.com/KhronosGroup/glslang/archive/%(version)s.tar.gz'] | ||
|
|
||
| # Extend the sources by adding external components from their respective GitHub repos at the known good commits | ||
| local_ext_dir = "%(builddir)s/glslang-%(version)s/External" # Where the external components are expected to be | ||
| local_ext_cmd = "tar xvf %s --strip-components=1 -C $_" | ||
| for local_owner, local_repo, local_commit, local_dir in local_github_repos: | ||
| sources.append({ | ||
| "filename": f"{local_repo}-{local_commit[:8]}.tar.xz", | ||
| "extract_cmd": f"mkdir -p {local_ext_dir}/{local_dir} && {local_ext_cmd}", | ||
| "git_config": { | ||
| "url": f"https://github.com/{local_owner}", | ||
| "repo_name": local_repo, | ||
| "commit": local_commit, | ||
| }, | ||
| }) | ||
|
|
||
| checksums = [ | ||
| {'15.4.0.tar.gz': 'b16c78e7604b9be9f546ee35ad8b6db6f39bbbbfb19e8d038b6fe2ea5bba4ff4'}, | ||
| {'SPIRV-Tools-33e02568.tar.xz': '57cc1a374b2d4829a3165b586f287d33e6beb4ee69d49e42c80a2cd2e8983c1d'}, | ||
| {'SPIRV-Headers-2a611a97.tar.xz': '0333b5d2c63b95be3771a3146b3692e7a6720889187275669119c14a48e3fd6e'}, | ||
| {'googletest-f8d7d77c.tar.xz': '8dd1ff67f8abca903d3f03c78eaae7b2076a73f465cb1f369f3698bfbd6f4aad'}, | ||
| ] | ||
|
|
||
| builddependencies = [ | ||
| ('binutils', '2.44'), | ||
| ('CMake', '4.0.3'), | ||
| ('Bison', '3.8.2'), | ||
| ] | ||
|
|
||
| dependencies = [ | ||
| ('Python', '3.13.5'), # Only needed with SPIRV | ||
| ] | ||
|
|
||
| configopts = "-DENABLE_OPT=ON" # Needed if SPIRV is used | ||
|
|
||
| runtest = True | ||
|
|
||
| sanity_check_paths = { | ||
| 'files': [ | ||
| 'bin/glslang', | ||
| 'lib/libglslang.a', 'lib/libGenericCodeGen.a', 'lib/libSPIRV.a', | ||
| ], | ||
| 'dirs': ['include/glslang'], | ||
| } | ||
|
|
||
| sanity_check_commands = [ | ||
| 'glslang --version', | ||
| ] | ||
|
|
||
| moduleclass = 'compiler' |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| easyblock = 'CMakeMake' | ||
|
|
||
| name = 'libclc' | ||
| version = '20.1.8' | ||
|
|
||
| homepage = 'https://libclc.llvm.org/' | ||
| description = """ | ||
| libclc is an open source, BSD/MIT dual licensed implementation of the library requirements of the OpenCL | ||
| C programming language, as specified by the OpenCL 1.1 Specification. | ||
| """ | ||
|
|
||
| toolchain = {'name': 'GCCcore', 'version': '14.3.0'} | ||
|
|
||
| source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] | ||
| sources = ['libclc-%(version)s.src.tar.xz'] | ||
| checksums = ['ecd83a52859742f71f4c332538f8bee54a6743374a233b5a85017de22d75c227'] | ||
|
|
||
| builddependencies = [ | ||
| ('binutils', '2.44'), | ||
| ('CMake', '4.0.3'), | ||
| ('LLVM', '20.1.8'), | ||
| ] | ||
|
|
||
| sanity_check_paths = { | ||
| 'files': [ | ||
| 'share/pkgconfig/libclc.pc', | ||
| 'include/clc/clc.h', | ||
| ], | ||
| 'dirs': ['include/clc', 'share/clc'], | ||
| } | ||
|
|
||
| moduleclass = 'lib' |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,128 @@ | ||
| easyblock = 'Bundle' | ||
|
|
||
| name = 'OpenGL' | ||
| version = '2025.09' | ||
|
|
||
| homepage = 'http://www.opengl.org/' | ||
| description = """ | ||
| Open Graphics Library (OpenGL) is a cross-language, cross-platform application | ||
| programming interface (API) for rendering 2D and 3D vector graphics. | ||
|
|
||
| This module is a bundle of software required for OpenGL rendering. | ||
| It provides Mesa as an open-source implementation of the OpenGL specification | ||
| with software rendering and AMD GPU support, libglvnd for a vendor neutral | ||
| dispatch layer for rendering with both NVIDIA GPUs & Mesa, Mesa-demos for | ||
| sample applications, and GLU as an computer graphics library utilizing OpenGL. | ||
| """ | ||
|
|
||
| toolchain = {'name': 'GCCcore', 'version': '14.3.0'} | ||
|
|
||
| builddependencies = [ | ||
| ('binutils', '2.44'), | ||
| ('Bison', '3.8.2'), | ||
| ('CMake', '4.0.3'), | ||
| ('Mako', '1.3.10'), | ||
| ('Meson', '1.8.2'), | ||
| ('Ninja', '1.13.0'), | ||
| ('Python', '3.13.5'), | ||
| ('PyYAML', '6.0.2'), | ||
| ('flex', '2.6.4'), | ||
| ('expat', '2.7.1'), | ||
| ('glslang-SPIRV', '15.4.0'), | ||
| ('libclc', '20.1.8'), | ||
| ('libxml2', '2.14.3'), | ||
| ('pkgconf', '2.4.3'), | ||
| ] | ||
|
|
||
| dependencies = [ | ||
| ('LLVM', '20.1.8'), | ||
| ('Wayland', '1.24.0'), | ||
| ('X11', '20250608'), | ||
| ('elfutils', '0.193'), | ||
| ('libdrm', '2.4.125'), | ||
| ('libunwind', '1.8.2'), | ||
| ('nettle', '3.10.2'), | ||
| ('zlib', '1.3.1'), | ||
| ] | ||
|
|
||
| default_easyblock = 'MesonNinja' | ||
|
|
||
| local_pkg_config = 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib/pkgconfig && ' | ||
| local_pkg_config += 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib64/pkgconfig && ' | ||
|
|
||
| local_mesa_configopts = "-Dplatforms=x11,wayland -Dvulkan-drivers='swrast,amd' -Dvulkan-layers='device-select' " | ||
| local_mesa_configopts += "-Dllvm=enabled -Dshared-llvm=enabled -Dlibunwind=enabled -Degl=enabled -Dglvnd=enabled " | ||
| local_mesa_configopts += "-Dglx=auto -Dgbm=enabled -Dgles1=enabled -Dgles2=enabled -Dgallium-drivers=llvmpipe,radeonsi " | ||
| local_mesa_configopts += "-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc,av1dec,av1enc,vp9dec " | ||
|
|
||
| components = [ | ||
| ('libglvnd', '1.7.0', { | ||
| 'source_urls': ['https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/'], | ||
| 'sources': ['%(name)s-v%(version)s.tar.gz'], | ||
| 'checksums': ['2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d'], | ||
| 'start_dir': '%(namelower)s-v%(version)s', | ||
| }), | ||
| ('Mesa', '25.2.2', { | ||
| 'easyblock': 'EB_Mesa', | ||
| 'source_urls': [ | ||
| 'https://archive.mesa3d.org/', | ||
| 'https://archive.mesa3d.org/older-versions/%(version_major)s.x/', | ||
| ], | ||
| 'sources': [SOURCELOWER_TAR_XZ], | ||
| 'checksums': ['43d7abcd4aa8049d8fd75538344a374104765e81e17b4a6314cee2c0160e4412'], | ||
| 'start_dir': '%(namelower)s-%(version)s', | ||
| 'preconfigopts': local_pkg_config, | ||
| 'configopts': local_mesa_configopts, | ||
| }), | ||
| ('libGLU', '9.0.3', { | ||
| 'source_urls': ['https://archive.mesa3d.org/glu/'], | ||
| 'sources': ['glu-%(version)s.tar.xz'], | ||
| 'checksums': ['bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f'], | ||
| 'start_dir': 'glu-%(version)s', | ||
| 'preconfigopts': local_pkg_config, | ||
| }), | ||
| ('Mesa-demos', '9.0.0', { | ||
| 'source_urls': ['https://archive.mesa3d.org/demos/'], | ||
| 'sources': [SOURCELOWER_TAR_XZ], | ||
| 'checksums': ['3046a3d26a7b051af7ebdd257a5f23bfeb160cad6ed952329cdff1e9f1ed496b'], | ||
| 'start_dir': '%(namelower)s-%(version)s', | ||
| 'preconfigopts': local_pkg_config, | ||
| 'configopts': ' -D osmesa=disabled -D wayland=disabled', | ||
| }), | ||
| ] | ||
|
|
||
| postinstallcmds = [ | ||
| 'cd %(installdir)s/lib && ln -sf libGL.so.1.7.0 libGL.so.1', | ||
| 'cd %(installdir)s/lib && ln -sf libGLX_mesa.so.0 libGLX_indirect.so.0', | ||
| ] | ||
|
|
||
| modextrapaths = { | ||
| '__EGL_VENDOR_LIBRARY_DIRS': [ | ||
| '/etc/glvnd/egl_vendor.d', | ||
| '/usr/share/glvnd/egl_vendor.d', | ||
| 'share/glvnd/egl_vendor.d/', | ||
| ], | ||
| 'VK_ADD_DRIVER_FILES': 'share/vulkan/icd.d/', | ||
| 'VK_ADDITIONAL_IMPLICIT_LAYER_PATH_ENV_VAR': 'share/vulkan/implicit_layer.d/', | ||
| 'VK_ADDITIONAL_EXPLICIT_LAYER_PATH_ENV_VAR': 'share/vulkan/explicit_layer.d/', | ||
| } | ||
|
|
||
| modextravars = { | ||
| 'EGL_PLATFORM': 'surfaceless', | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hm. Does this not interfere with interactive applications by forcing some off-screen rendering to happen? I haven't played with this parameter before.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jhgoebbert, can you maybe give some information on this? 😄 |
||
| 'EGL_LOG_LEVEL': 'fatal', | ||
| 'KNOB_MAX_WORKER_THREADS': '65535', | ||
| } | ||
|
|
||
| sanity_check_all_components = True | ||
| sanity_check_paths = { | ||
| 'files': [ | ||
| 'lib/libEGL_mesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT, | ||
| 'lib/libGLESv2.%s' % SHLIB_EXT, 'include/GL/glext.h', | ||
| 'include/GL/glx.h', 'include/GL/gl.h', 'include/GL/glxext.h', | ||
| 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h', | ||
| 'lib/libOpenGL.%s' % SHLIB_EXT, | ||
| ], | ||
| 'dirs': [] | ||
| } | ||
|
|
||
| moduleclass = 'vis' | ||
Uh oh!
There was an error while loading. Please reload this page.