{"id":14525267,"url":"https://github.com/jakoch/rasterizers","last_synced_at":"2025-06-24T04:09:37.541Z","repository":{"id":247776499,"uuid":"826546986","full_name":"jakoch/rasterizers","owner":"jakoch","description":"Precompiled libraries for the software rasterizers Mesa's LLVMpipe and Google's Swiftshader for Windows.","archived":false,"fork":false,"pushed_at":"2025-06-10T11:51:29.000Z","size":62,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T12:24:43.503Z","etag":null,"topics":["llvmpipe","mesa","mesa3d","rasterizer","swiftshader","swrast","vulkan","vulkan-sdk"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakoch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"jakoch"}},"created_at":"2024-07-09T23:22:46.000Z","updated_at":"2025-06-10T11:10:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ae0d101-9d5e-456a-a8fa-5bd744cb5f16","html_url":"https://github.com/jakoch/rasterizers","commit_stats":null,"previous_names":["jakoch/rasterizers"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/jakoch/rasterizers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakoch%2Frasterizers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakoch%2Frasterizers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakoch%2Frasterizers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakoch%2Frasterizers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakoch","download_url":"https://codeload.github.com/jakoch/rasterizers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakoch%2Frasterizers/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261601527,"owners_count":23183097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llvmpipe","mesa","mesa3d","rasterizer","swiftshader","swrast","vulkan","vulkan-sdk"],"created_at":"2024-09-04T14:01:18.001Z","updated_at":"2025-06-24T04:09:37.512Z","avatar_url":"https://github.com/jakoch.png","language":null,"funding_links":["https://github.com/sponsors/jakoch"],"categories":["Others"],"sub_categories":[],"readme":"## jakoch/rasterizers [![Build on Windows: Mesa llvmpipe](https://github.com/jakoch/rasterizers/actions/workflows/build-mesa.yml/badge.svg?branch=main)](https://github.com/jakoch/rasterizers/actions/workflows/build-mesa.yml) [![Build on Windows: Swiftshader](https://github.com/jakoch/rasterizers/actions/workflows/build-swiftshader.yml/badge.svg?branch=main)](https://github.com/jakoch/rasterizers/actions/workflows/build-swiftshader.yml) \u003c!-- omit from toc --\u003e\n\n## Table of Contents \u003c!-- omit from toc --\u003e\n- [What is this?](#what-is-this)\n- [What is a Software Rasterizer?](#what-is-a-software-rasterizer)\n- [What is Mesa LLVMpipe?](#what-is-mesa-llvmpipe)\n- [What is Swiftshader?](#what-is-swiftshader)\n- [Why does this repo exist?](#why-does-this-repo-exist)\n- [Downloads](#downloads)\n  - [How to get the latest version of llvmpipe or swiftshader from this repository?](#how-to-get-the-latest-version-of-llvmpipe-or-swiftshader-from-this-repository)\n  - [Download latest version of Swiftshader](#download-latest-version-of-swiftshader)\n  - [Download latest version of LLVMPipe](#download-latest-version-of-llvmpipe)\n- [Links](#links)\n  - [Mesa](#mesa)\n  - [Swiftshader](#swiftshader)\n  - [Package Docs from Arch Linux](#package-docs-from-arch-linux)\n\n## What is this?\n\nThis repository automates the process of building and releasing ready-to-use\ndrivers for Windows of two software rasterizers: Mesa's **LLVMpipe** and\nGoogle's **Swiftshader**.\n\nBoth rasterizers are designed to enable rendering in CPU environments,\nwhich is particularly valuable in CI (Continuous Integration) systems for\nautomated testing and validation of graphics applications.\n\nNeither Mesa's LLVMpipe nor Google's SwiftShader offer official downloads for\nthese packages as of February 2025.\n\nThis repository aims to provide prebuilt versions of these drivers for integration with\n[jakoch/install-vulkan-sdk-action](https://github.com/jakoch/install-vulkan-sdk-action),\nwhich automates the installation of the Vulkan SDK during GitHub Action CI runs.\nThe drivers are compiled using GitHub Actions CI, ensuring automated compilation,\nand distributed through GitHub Releases, providing a standardized download\nmechanism for developers.\n\nBy using the software rasterizers from this repository, developers can\neffectively test their Vulkan applications on CPU-only or GPU-less platforms,\nsuch as CI environments.\n\n## What is a Software Rasterizer?\n\nA software rasterizer is a software-based implementation of a graphics\nrendering pipeline that executes entirely on the CPU, without relying on\ndedicated GPU hardware acceleration. It performs tasks such as vertex\nprocessing, primitive assembly, rasterization (converting geometric shapes\ninto pixels), and pixel shading entirely through software algorithms and\nCPU computations.\n\n## What is Mesa LLVMpipe?\n\n[Mesa's LLVMpipe](https://docs.mesa3d.org/drivers/llvmpipe.html)  is a component\nof the Mesa 3D Graphics Library that leverages the LLVM compiler infrastructure\nto perform rendering tasks on the CPU. It provides a flexible and robust\nsolution for environments without dedicated GPU hardware. Specifically, all\ngraphics-related processing, including shaders, rasterization of points, lines,\nand triangles, and vertex processing, is converted into LLVM intermediate\nrepresentation (IR) and then translated into CPU machine code for the target\nplatform, such as x86, x86_64, or ppc64le.\n\n## What is Swiftshader?\n\n[Swiftshader](https://github.com/google/swiftshader), developed by Google,\ndelivers a high-performance CPU-based implementation of the Vulkan and\nOpenGL ES APIs, ensuring graphics rendering on systems without GPU acceleration.\n\n## Why does this repo exist?\n\n1. Neither project offers precompiled binaries.\n   - According to Mesa's documentation:\n      - \u003e In general, precompiled Mesa libraries are not available.\n      - Referencing [Mesa Documentation on Precompiled Libraries](https://docs.mesa3d.org/precompiled.html).\n   - According to Google's SwiftShader repo:\n      - \u003e No releases published\n      - Referencing [Google's Swiftshader Github Repository](https://github.com/google/swiftshader)\n1. Various precompiled libraries from anonymous users are available on GitHub,\n   but they lack regular updates and, more importantly, CI builds.\n2. I needed a reliable download source for integration into my\n   [jakoch/install-vulkan-sdk-action](https://github.com/jakoch/install-vulkan-sdk-action).\n\n## Downloads\n\n### How to get the latest version of llvmpipe or swiftshader from this repository?\n\nThis requires two requests:\n - first, fetch versions.json to get the latest version's URL,\n - then use that URL to download the file.\n\n1. Fetch `versions.json` from the latest GitHub release:\n   https://github.com/jakoch/rasterizers/releases/latest/download/versions.json\n2. Extract the latest download URL from `version.json`:\n   - For SwiftShader: `.latest[\"swiftshader-win64\"].url`\n   - For LLVMpipe: `.latest[\"mesa-lavapipe-win64\"].url`\n3. Download the file using the extracted URL.\n\n### Download latest version of Swiftshader\n\n```sh\nswiftshader_latest_version=$(curl -sL https://github.com/jakoch/rasterizers/releases/latest/download/versions.json | jq -r \".latest[\\\"swiftshader-win64\\\"].url\")\ncurl -sLO \"$swiftshader_latest_version\"\n```\n\n### Download latest version of LLVMPipe\n\n```sh\nllvmpipe_latest_version=$(curl -sL https://github.com/jakoch/rasterizers/releases/latest/download/versions.json | jq -r \".latest[\\\"mesa-lavapipe-win64\\\"].url\")\ncurl -sLO \"$llvmpipe_latest_version\"\n```\n\n## Links\n\n### Mesa\n\n- Website: https://mesa3d.org\n- Documentation: https://docs.mesa3d.org/\n- LLVMpipe: https://docs.mesa3d.org/drivers/llvmpipe.html\n- Issue Tracker: https://issuetracker.google.com/issues?q=componentid:408190\u0026pli=1\n- Main Repository: https://gitlab.freedesktop.org/mesa/mesa/\n- Demos: https://gitlab.freedesktop.org/mesa/demos\n\n### Swiftshader\n\n- Main Repository: https://swiftshader.googlesource.com/SwiftShader\n- Github Mirror: https://github.com/google/swiftshader\n\n### Package Docs from Arch Linux\n\n- https://wiki.archlinux.org/title/Vulkan\n- https://archlinux.org/packages/?name=vulkan-swrast\n- https://archlinux.org/packages/?name=lib32-vulkan-swrast\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakoch%2Frasterizers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakoch%2Frasterizers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakoch%2Frasterizers/lists"}