# ShaderGlass: a DirectX 11 shader overlay for the Windows desktop and Wine

> ShaderGlass applies RetroArch shaders on top of whatever is already on screen, in a floating window or full-screen. It is a Windows 10 2004+ and Wine tool for emulator and pixel-art users, and its capture model is the part worth understanding before you install it.

**mausimus/ShaderGlass** — Overlay for running GPU shaders on top of Windows desktop and Wine

- Repository: https://github.com/mausimus/ShaderGlass
- Stars: 4,297 · Forks: 122
- Language: C++
- License: GPL-3.0
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/mausimus-shaderglass

## The problem ShaderGlass solves: shaders without patching the emulator

RetroArch ships a large shader library, but using it normally means running your content inside RetroArch. Emulators such as DOSBox, FS-UAE, Altirra, ScummVM, VICE and AGS each have their own video pipeline, and most of them either have no shader support or a much smaller set. ShaderGlass inverts the arrangement. It captures the desktop or a chosen window, runs a shader over the captured image, and draws the result in its own window. The emulator keeps rendering exactly as it did; the shader sits between the framebuffer and your eyes.

The README lists the intended audience directly: emulators, retro platforms and pixel art editors, with Aseprite named among them. The pixel-art case is the clearest one. A CRT simulation on a 320x200 DOS game is a rendering decision, not a game modification, and ShaderGlass lets you make it without a per-application plugin. The README also notes you can use it on top of YouTube, Twitch or modern games, which is the same idea applied to content you do not control at all.

## How the capture and shader pipeline is put together

The README states the app is built with ISO C++ 20 in Visual Studio 2022 against the Windows Capture API and DirectX 11, and that it includes a limited implementation of the RetroArch shader back-end using DirectX 11. That word limited matters. This is not RetroArch's renderer ported wholesale; it is a subset that covers the shader presets the project ships.

Shaders reach the binary in two ways. The built-in library is precompiled, and ShaderGen, a command-line tool in the repository, is what produces it. The README describes the chain: glslang converts Slang or GLSL to SPIR-V, SPIRV-Cross converts that to HLSL for DX11, and fxc.exe from the Windows SDK pre-compiles the result into bytecode, which ShaderGen emits as .h files. Because the shaders are baked in, the runtime does not need a shader compiler, and external .slangp or .slang files can also be imported.

Capture is the other half. Desktop Glass mode uses a transparent floating window that applies the shader to whatever is behind it, which is why it needs Windows 10 2004 (build 19041) or Windows 11; the README says on 1903 and 1909 you will see only a black window in that mode. Window Clone mode fixes capture to a specific window, which the README recommends when you want to tune scaling to the input and recapture the image through a screenshot tool or OBS. The README notes OBS can take ShaderGlass itself as a Game Capture source. A third path captures from a USB source, such as a webcam or capture card.

## Installing ShaderGlass and applying your first CRT shader

There is no package manager route documented. The README points at a zip archive attached to the v1.3.0 release, so installation is unpacking a folder and running the executable. The release notes for v1.3.0 list desktop and window capture under Linux and Wine, a shader search function, a shader library update and minor enhancements.

The download URL given in the README is:

```bash
https://github.com/mausimus/ShaderGlass/releases/download/v1.3.0/ShaderGlass-1.3.0.win-x64.zip
```

Unpack it anywhere writable, since profiles and imported shaders have to be stored somewhere. Betas and older versions are on the releases page. On Linux the supported path is Wine or Proton, and the README is specific about the mechanism: since 1.3, capture under Linux uses ScreenCast and PipeWire, and only in clone mode. That means Window Clone, not Desktop Glass, and it means your compositor has to grant the screen-cast permission when prompted.

Once running, the flow is: pick a capture source, pick a shader, then tune. The README names crt-geom for scanlines and curvature, crt-interlaced-halation, HSM MegaBezel STD, newpixie-crt and a C64 monitor shader as examples from its own screenshots. Shader parameters are exposed for adjustment, and profiles can be saved and loaded, which is the part that makes this usable day to day: one profile per emulator, recalled instead of rebuilt.

## Where ShaderGlass is the wrong tool

The first limitation is the platform. The requirements section says Windows 10 version 2004 (build 19041) or Windows 11, with version 1903 working only in a limited capacity. There is no macOS build and no Android build in the README, and no mention of a native Linux build; Linux support means Wine or Proton. If you are on a Mac, this project does not address you, regardless of what search results suggest.

The second is what capture costs you. Desktop Glass composites over the desktop, so the shader is applied to the final image, not to the game's render target. That rules out shader effects that need depth, motion vectors, or per-object information. ReShade hooks the graphics API inside the application and has access to those buffers; ShaderGlass sees a flat frame. For CRT simulation, scanlines, blur and upscaling, a flat frame is enough. For anything that needs to know what the scene contains, it is not.

The third is latency and the yellow border. Capture and re-present adds a compositing step that a native emulator shader does not have, and the README treats the capture border as a real annoyance: Windows 11 allows removal of the yellow border, while on Windows 10 the FAQ has tips for avoiding it. If you are chasing the lowest possible input lag for a competitive game, an overlay is the wrong layer to add. The README also notes that Black Frame Insertion and Blur Busters' CRT Beam Simulator were spun off into a separate app, ShaderBeam, so those features are not here.

## ShaderGlass against RetroArch and ReShade

RetroArch is the closest comparison because ShaderGlass embeds RetroArch's shader back-end, and the README credits the RetroArch team and the libretro shader repository. The difference is where the shader runs. RetroArch runs the emulator core and the shader in one process, so the shader receives the emulator's output directly and latency stays inside one pipeline. ShaderGlass runs no cores at all. It captures output from an application it does not control. That makes it universal across emulators and useless as an emulator frontend. If your content already runs in RetroArch, adding ShaderGlass on top is a second capture step for a result RetroArch can produce itself.

ReShade is the other comparison people search for. ReShade injects into a running application and hooks its rendering API, which gives it access to depth buffers and lets it apply effects inside the game's own frame. ShaderGlass never enters the target process. It is a separate window that captures pixels. The trade-off is symmetric: ReShade is more capable per game and more invasive, requiring per-game setup and injection; ShaderGlass is one app that works over anything visible, including content with no graphics API to hook, such as a video player or a browser. Neither is a superset of the other.

## Licence, build and upgrade cost

ShaderGlass is GPL-3.0. For an end user running the released binary this changes nothing about how you use it. It matters if you intend to redistribute a modified build, or to link the code into a product with different licence terms, because GPL-3.0 carries obligations in those cases. This is a description of the licence identifier in the repository, not legal advice; if you plan to ship something derived from it, read the LICENSE file and get your own counsel.

The bundled shaders come from libretro/slang-shaders, and the README says copyright notes inside each shader govern that shader's terms. So the licence picture is not uniform across the shader library: the application is GPL-3.0, the shaders are a collection with per-file notices. The README also credits the app icon to Icons-Land.

Upgrade cost is low if you use the release zip. There is no installer and no package manager, so upgrading means replacing the folder and keeping your profiles and imported shaders. Building from source is a heavier commitment: Visual Studio 2022, ISO C++ 20, Windows SDK 10.0.26100, and the shader conversion chain that ShaderGen depends on, including glslang, SPIRV-Cross and fxc.exe. The last push to the repository was on 2026-06-20, and v1.3.0 was released on 2026-03-19, after two betas in February 2026.

## Conclusion

Adopt ShaderGlass if you run emulators, DOSBox, ScummVM or Aseprite on Windows 10 2004 or newer and want the libretro shader library applied without touching each emulator's video settings. Do not adopt it as a ReShade replacement inside games, on macOS or Android, or if you need per-pixel control over a game's own render pipeline. Before installing, check your Windows build with winver, confirm your GPU supports DirectX 11, and read the Desktop Glass section of the online manual, because on 1903 and 1909 that mode shows only a black window.

## FAQ

### What does ShaderGlass do?

It is an overlay that runs GPU shaders on top of the Windows desktop or a captured window, drawing the processed image in a floating window or full-screen. It ships a built-in RetroArch shader library covering CRT monitor simulation, upscaling, TV, VHS and handheld simulation, and more.

### Is ShaderGlass free to use?

The application is provided under GNU General Public License v3.0 according to the README, and the release zip is downloadable from the GitHub releases page. It is also sold on Steam, and the README links a Ko-fi page for donations.

### What is the difference between ShaderGlass and ReShade?

ShaderGlass is a separate application that captures the desktop or a window and applies shaders to the captured image, so it never enters the target process. ReShade is not described in the ShaderGlass README; what the README establishes is that ShaderGlass works over most emulators, retro platforms and pixel art editors without modifying them.

### How do I install ShaderGlass?

Download the win-x64 zip from the v1.3.0 release and unpack it; there is no installer or package manager documented. The README lists betas and older versions on the releases page.

### How do I use ShaderGlass on Linux?

The README states that running under Wine or Proton is supported since 1.3, using ScreenCast and PipeWire for capture, and only in clone mode. Desktop Glass mode is not part of that Linux path.

### Is ShaderGlass safe to use?

The README documents a GPL-3.0 application built with Visual Studio 2022 against the Windows Capture API and DirectX 11, distributed as a release zip and on Steam. It does not discuss security auditing.

## Sources

- [Issues](https://github.com/mausimus/ShaderGlass/issues)
- [License: GPL-3.0](https://github.com/mausimus/ShaderGlass/blob/master/LICENSE)
- [mausimus/ShaderGlass on GitHub](https://github.com/mausimus/ShaderGlass)
- [README](https://github.com/mausimus/ShaderGlass/blob/master/README.md)
- [Releases](https://github.com/mausimus/ShaderGlass/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mausimus-shaderglass
