Skip to content

rendervulkan: Add Anime4K 2x CNN UL upscaling filter#2072

Open
Et3rnos wants to merge 3 commits intoValveSoftware:masterfrom
Et3rnos:master
Open

rendervulkan: Add Anime4K 2x CNN UL upscaling filter#2072
Et3rnos wants to merge 3 commits intoValveSoftware:masterfrom
Et3rnos:master

Conversation

@Et3rnos
Copy link

@Et3rnos Et3rnos commented Jan 31, 2026

Overview

Added Anime4K 2x CNN UL (Ultra-Large) as a new upscaling filter option for gamescope.

  • New CLI option: --filter anime4k
  • 2x neural network upscaler optimized for anime/cartoon content, like visual novels and 2D RPG games

Performance

Benchmarked on RTX 3050 Ti (Laptop) against Lossless Scaling's Anime4K UL implementation:

Input Resolution Gamescope Lossless Scaling Improvement
1280×720 6ms (~166 fps) 9ms (~111 fps) 50% faster
800×600 4ms (~250 fps) Not tested Not tested

Estimated VRAM usage:

Input Resolution VRAM
1280×720 ~191 MB
800×600 ~100 MB

A consistent 50% performance gain achieved by merging 25 original shader passes into 9, reducing redundant texture fetches by writing to 3 output textures per dispatch.

Visual Quality

Output compared against Lossless Scaling (a perfect match). It is correctly implemented, and the quality matches the original Anime4K shader.

Comparison with FSR

The source game was run at 544x416, upscaled to 1920x1080:

FSR:

image

Anime4K:

image

Related Threads / Motivation

Those threads mentioned interest on Anime4K being added to Gamescope.

#262
#788

Notes

  • This is only an implementation of the Ultra Large (UL) shader variant.
  • This is a Vulkan compute shader implementation of the original Anime4K shaders (https://github.com/bloc97/Anime4K - MIT licensed)

Copilot AI review requested due to automatic review settings January 31, 2026 17:44

This comment was marked as spam.

@malucard
Copy link

malucard commented Feb 7, 2026

To run this without crashing, I had to change 2 to 3 in rendervulkan.cpp:915

@Et3rnos
Copy link
Author

Et3rnos commented Feb 8, 2026

To run this without crashing, I had to change 2 to 3 in rendervulkan.cpp:915

Thanks for giving it a try, I've now updated that line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants