mesa VS deko3d

Compare mesa vs deko3d and see what are their differences.

mesa

Mesa 3D graphics library (read-only mirror of https://gitlab.freedesktop.org/mesa/mesa/) (by Mesa3D)

deko3d

Homebrew low level graphics API for Nintendo Switch (Nvidia Tegra X1) (by devkitPro)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
mesa deko3d
39 4
1,155 302
- 1.3%
9.8 4.8
3 months ago 5 months ago
C C++
- zlib License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

mesa

Posts with mentions or reviews of mesa. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • Been thinking of switching to linux but I am a noob
    8 projects | /r/linux_gaming | 6 Dec 2023
    No problems, AMD Adrenalin it's a part of Windows AMD drivers, but on Linux you have not this soft, here is link: https://github.com/Mesa3D/mesa
  • I need help to upgrade the C++ source code of the panfrost driver on the ARM Chromebook from 1.1 to 1.2
    1 project | /r/cpp_questions | 19 Oct 2023
    # apt install libxcb-glx0-dev libx11-xcb-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev # git clone https://gitlab.freedesktop.org/mesa/mesa # cd mesa meson setup build/ -Dgallium-drivers=lima,panfrost,kmsro,swrast -Dplatforms=x11 -Dvulkan-drivers= -Dllvm=disabled The Meson build system Version: 1.0.1 Source dir: /Dati/mesa Build dir: /Dati/mesa/build Build type: native build Project name: mesa Project version: 23.3.0-devel C compiler for the host machine: cc (gcc 12.2.0 "cc (Debian 12.2.0-14) 12.2.0") C linker for the host machine: cc ld.bfd 2.40 C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (Debian 12.2.0-14) 12.2.0") C++ linker for the host machine: c++ ld.bfd 2.40 Host machine cpu family: arm Host machine cpu: armv7l Checking if "-mtls-dialect=gnu2" runs: YES Dependency vdpau skipped: feature gallium-vdpau disabled Program glslangValidator found: NO Dependency libva skipped: feature gallium-va disabled Program python3 found: YES (/usr/bin/python3) Fetching value of define "ETIME" : 62 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 for function "types_compatible_p" : YES Compiler for C supports function attribute const: YES Compiler for C supports function attribute flatten: YES Compiler for C supports function attribute malloc: YES Compiler for C supports function attribute pure: YES Compiler for C supports function attribute unused: YES Compiler for C supports function attribute warn_unused_result: YES Compiler for C supports function attribute weak: YES Compiler for C supports function attribute format: YES Compiler for C supports function attribute packed: YES Compiler for C supports function attribute returns_nonnull: YES Compiler for C supports function attribute alias: YES Compiler for C supports function attribute noreturn: YES Compiler for C supports function attribute visibility:hidden: YES Checking if "__uint128_t" compiles: NO Checking for function "reallocarray" : YES Checking for function "fmemopen" : YES Checking if "gc-sections" : links: 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 -Wimplicit-fallthrough: YES Compiler for C supports arguments -Wmisleading-indentation: YES Compiler for C supports arguments -Wno-missing-field-initializers: YES Compiler for C supports arguments -Wno-format-truncation: YES Compiler for C supports arguments -Wno-nonnull-compare: YES 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: NO Compiler for C supports arguments -fno-common: YES Compiler for C supports arguments -Wno-microsoft-enum-value: NO Compiler for C supports arguments -Wno-unused-function: YES Compiler for C supports arguments -Werror=format: YES Compiler for C supports arguments -Wformat-security: YES Compiler for C supports arguments -Werror=thread-safety: NO Compiler for C supports arguments -ffunction-sections: YES Compiler for C supports arguments -fdata-sections: YES Compiler for C++ supports arguments -Werror=return-type: YES Compiler for C++ supports arguments -Werror=empty-body: YES Compiler for C++ supports arguments -Wmisleading-indentation: 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: YES 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: NO Compiler for C++ supports arguments -flifetime-dse=1: YES Compiler for C++ supports arguments -Wno-microsoft-enum-value: NO Compiler for C++ supports arguments -Werror=format: YES Compiler for C++ supports arguments -Wformat-security: YES Compiler for C++ supports arguments -ffunction-sections: YES Compiler for C++ supports arguments -fdata-sections: YES Compiler for C supports arguments -Wno-override-init: YES Compiler for C supports arguments -Wno-initializer-overrides: NO Compiler for C supports arguments -Werror=pointer-arith: YES Compiler for C supports arguments -Werror=vla: YES Compiler for C supports arguments -Werror=gnu-empty-initializer: NO Compiler for C++ supports arguments -Werror=pointer-arith: YES Compiler for C++ supports arguments -Werror=vla: YES Compiler for C++ supports arguments -Werror=gnu-empty-initializer: NO Checking for function "__builtin_ia32_clflushopt" : NO Checking if "GCC atomic builtins" compiles: YES Checking if "GCC atomic builtins required -latomic" : links: YES Checking if "GCC 64bit atomics" with dependency : links: YES Library ws2_32 found: NO Header "sys/sysmacros.h" has symbol "major" : YES Header "sys/sysmacros.h" has symbol "minor" : YES Header "sys/sysmacros.h" has symbol "makedev" : YES Header "sys/mkdev.h" has symbol "major" : NO Check usable header "sched.h" : YES Checking for function "sched_getaffinity" : YES Check usable header "xlocale.h" : NO Check usable header "linux/futex.h" : YES Check usable header "endian.h" : YES Check usable header "dlfcn.h" : YES Check usable header "sys/shm.h" : YES Check usable header "cet.h" : NO Check usable header "pthread_np.h" : NO Check usable header "renderdoc_app.h" : NO Check usable header "sys/inotify.h" : YES Checking for function "strtof" : YES Checking for function "mkostemp" : YES Checking for function "memfd_create" : YES Checking for function "random_r" : YES Checking for function "flock" : YES Checking for function "strtok_r" : YES Checking for function "getrandom" : YES Checking for function "qsort_s" : NO Checking for function "posix_fallocate" : YES Checking if "GNU qsort_r" : links: YES Header "time.h" has symbol "struct timespec" : YES Checking for function "thrd_create" : YES Header "errno.h" has symbol "program_invocation_name" : YES Header "math.h" has symbol "issignaling" : YES Checking for function "posix_memalign" : YES Checking whether type "struct dirent" has member "d_type" : YES Checking if "strtod has locale support" : links: YES Checking if "Bsymbolic" : links: YES Checking if "version-script" : links: YES Checking if "dynamic-list" : links: YES Compiler for C supports link arguments -Wl,--build-id=sha1: YES Checking for function "dlopen" : YES Checking for function "dladdr" with dependency : YES Checking for function "dl_iterate_phdr" : YES Checking for function "clock_gettime" : YES Found pkg-config: /usr/bin/pkg-config (1.8.1) Run-time dependency zlib found: YES 1.2.13 Run-time dependency libzstd found: YES 1.5.4 Run-time dependency threads found: YES Checking for function "pthread_setaffinity_np" with dependency threads: YES Run-time dependency expat found: YES 2.5.0 Library m found: YES Run-time dependency libdrm found: YES 2.4.114 Run-time dependency libudev found: YES 251 Run-time dependency libelf found: YES 0.188 Run-time dependency valgrind found: NO (tried pkgconfig) Program bison found: YES (/usr/bin/bison) Program bison found: YES 3.8.2 (/usr/bin/bison) Program flex found: YES (/usr/bin/flex) Run-time dependency libunwind found: YES 1.6.2 Run-time dependency x11 found: YES 1.8.4 Run-time dependency xext found: YES 1.3.4 Run-time dependency xfixes found: YES 6.0.0 Run-time dependency xcb-glx found: YES 1.15 Run-time dependency xcb-shm found: YES 1.15 Run-time dependency xcb found: YES 1.15 Found CMake: /usr/bin/cmake (3.25.1) Run-time dependency xcb-keysyms found: NO (tried pkgconfig and cmake) Run-time dependency x11-xcb found: YES 1.8.4 Run-time dependency xcb-dri2 found: YES 1.15 Run-time dependency xcb-dri3 found: YES 1.15 Run-time dependency xcb-present found: YES 1.15 Dependency xcb-shm found: YES 1.15 (cached) Run-time dependency xcb-sync found: YES 1.15 Run-time dependency xshmfence found: YES 1.3 Run-time dependency glproto found: YES 1.4.17 Run-time dependency dri2proto found: YES 2.8 Run-time dependency xxf86vm found: YES 1.1.4 Run-time dependency xcb-xfixes found: YES 1.15 Run-time dependency xcb-randr found: YES 1.15 Run-time dependency xrandr found: YES 1.5.2 Library sensors found: NO Program nm found: YES (/usr/bin/nm) Program symbols-check.py found: YES (/usr/bin/python3 /Dati/mesa/bin/symbols- check.py) Program install_megadrivers.py found: YES (/usr/bin/python3 /Dati/mesa /bin/install_megadrivers.py) Program decode.py found: YES (/Dati/mesa/src/compiler/isaspec/decode.py) Program encode.py found: YES (/Dati/mesa/src/compiler/isaspec/encode.py) Program ln found: YES (/bin/ln) Checking for function "mincore" : YES Build targets in project: 214 mesa 23.3.0-devel Directories prefix : /usr/local libdir : lib/arm-linux-gnueabihf includedir : include Common C and C++ arguments c_cpp_args : -mtls-dialect=gnu2 OpenGL OpenGL : YES ES1 : YES ES2 : YES Shared glapi : YES GLVND : NO DRI Platform : drm Driver dir : /usr/local/lib/arm-linux-gnueabihf/dri GLX Enabled : YES Provider : dri EGL Enabled : YES Drivers : builtin:egl_dri2 builtin:egl_dri3 Platforms : x11 surfaceless drm xcb GBM Enabled : YES Backends path : /usr/local/lib/arm-linux-gnueabihf/gbm Vulkan Drivers : NO Video Codecs : NO APIs : NO LLVM Enabled : NO Gallium Enabled : YES Drivers : lima panfrost kmsro swrast Platforms : x11 surfaceless drm xcb Frontends : mesa Off-screen rendering (OSMesa): NO HUD lm-sensors : NO Perfetto Enabled : NO User defined options gallium-drivers : lima,panfrost,kmsro,swrast llvm : disabled platforms : x11 vulkan-drivers : Found ninja-1.11.1 at /usr/bin/ninja
  • PRoot-Distro Ubuntu : Adreno 7xx GPU series Freedreno Turnip install
    2 projects | /r/termux | 1 Aug 2023
    $ echo "deb-src [signed-by="/usr/share/keyrings/ubuntu-archive-keyring.gpg"] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" >> /etc/apt/sources.list $ sudo apt update $ sudo apt build-dep mesa $ clone https://gitlab.freedesktop.org/mesa/mesa $ cd mesa $ meson build -Dgbm=enabled -Dopengl=true -Degl=enabled -Degl-native-platform=x11 -Dgles1=disabled -Dgles2=enabled -Ddri3=enabled -Dglx=dri -Dllvm=enabled -Dshared-llvm=disabled -Dplatforms=x11,wayland -Dgallium-drivers=swrast,virgl,zink -Dvulkan-drivers=swrast -Dosmesa=true -Dglvnd=true -Dxmlconfig=disabled $ sudo ninja -C build install
  • using aur helpers like pamac and paru result in issues with downloading and building mesa-git
    2 projects | /r/archlinux | 23 May 2023
  • unfair advantage
    1 project | /r/pcmasterrace | 10 Mar 2023
    Basically there's this one driver for all intel/amd gpus (https://gitlab.freedesktop.org/mesa/mesa) and NVIDIA decided to make their own barely working driver (full of bugs) and also try to make their own standards & protocols instead of using the ones intel/amd have already created
  • Exploring Rust for Vulkan drivers, part 1
    1 project | news.ycombinator.com | 2 Feb 2023
    For the curious (I was), I believe this is the associated commit: https://github.com/Mesa3D/mesa/commit/f2e535e4fed5bdc13e11a4...
  • I have used Linux for a year and a half. My temporary usage of Windows has cemented a newfound perspective for me
    1 project | /r/StallmanWasRight | 15 Jan 2023
    So you're running Mesa 23 by compiling the code at https://gitlab.freedesktop.org/mesa/mesa/ then?
  • Should I switch to Fedora from PopOS?
    1 project | /r/linuxquestions | 13 Jan 2023
  • Does the RX 6700s not have Linux drivers? can't find any
    1 project | /r/linux_gaming | 6 Jan 2023
    no it uses amdgpu driver which is build into / part of the kernel (device drivers), and you can use 2 userspace graphics drivers, one being mesa the other one being amdvlk
  • how do i implement vulkan on my driver
    2 projects | /r/vulkan | 28 Dec 2022
    Good luck, check out https://gitlab.freedesktop.org/mesa/mesa and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm?h=v6.2-rc1 this is for Linux, but I don't believe that the size of that project, would be different for windows.

deko3d

Posts with mentions or reviews of deko3d. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-28.
  • how do i implement vulkan on my driver
    2 projects | /r/vulkan | 28 Dec 2022
    If you just want a low level graphics api, and you don’t care about some of the abstractions Vulkan offers, you might consider checking out Deko 3D. It’s a stripped down version of Vulkan for the NVidia Tegra X1
  • Nvidia Publishes 73k Lines of 3D Header Files for Fermi Through Ampere GPUs
    1 project | news.ycombinator.com | 9 Aug 2022
    That's not exactly correct. This is register maps for the 3d engine (also called class), what you describe would be closer to the shader ISA.

    In driver code you'll see them building command buffers that set registers in those classes to certain values. It could be the RGBA values of the clear color, or a virtual address in the GPU space.

    This documents the names of these registers. This makes reverse engineering somewhat easier as you don't really have to guess anymore. But in most cases it was pretty clear from the start, and for some generations those were already well documented by open source efforts. One of best known gens is probably Maxwell since it was used in the Nintendo Switch, see for instance [1] (or code in yuzu/Ryujinx) which is the equivalent of those headers NV published.

    However this isn't a very big step in documenting their GPUs. The exact functions of those registers aren't explained, but most importantly the shader ISA isn't documented at all, which is essential to build a good open-source driver.

    Source: I have reverse engineered some driver code for Maxwell (and used similar headers to write drivers for nvdec and nvjpg).

    [1] https://github.com/devkitPro/deko3d/blob/master/source/maxwe...

  • PSA: Use Android on Switch for Moonlight game streaming
    3 projects | /r/SwitchHacks | 4 Jun 2022
    They're 100% wrong. There are homebrew emulators that work on the switch just fine and have GPU access and there's also things like this: https://github.com/devkitPro/deko3d
  • Is opengl good for writing game engines or is the smth better? C++
    2 projects | /r/cpp | 22 Jan 2021
    Unfortunately not much info is publicly available about it. Recently a homebrew rendering API was released that builds upon reverse engineering efforts: https://github.com/devkitPro/deko3d.

What are some alternatives?

When comparing mesa and deko3d you can also consider the following projects:

AMDVLK - AMD Open Source Driver For Vulkan

tinyrenderer - A brief computer graphics / rendering course

com.valvesoftware.Steam

SysDVR - Stream switch games to your PC via USB or network

vulkan-test - Test if your system supports Vulkan

Amiigo - Amiibo emulation platform for the Nintendo Switch

GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

sys-clk-Overlay - Editor for your sys-clk configuration using ovl-loader!

steam-runtime - A runtime environment for Steam applications

Sunshine - Sunshine is a Gamestream host for Moonlight. [Moved to: https://github.com/LizardByte/Sunshine]

open-gpu-kernel-modules - NVIDIA Linux open GPU kernel module source

Moonlight-Switch - Moonlight port for Nintendo Switch