godotengine / godotengine/godot

Texture artifacts introduced when GPU is not available

Open
#119,993 10 comments 2 reactions 0 assignees View on GitHub
bug confirmed topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Reproducible in v4.6.3.stable.official [7d41c59c4]

### System information

Godot v4.6.3.stable - Windows 10 (build 19045) - Multi-window, 1 monitor - Direct3D 12 (Forward+) - dedicated NVIDIA GeForce RTX 3090 (NVIDIA; 32.0.15.8129) - AMD Ryzen 9 7950X3D 16-Core Processor (32 threads) - 95.08 GiB memory

### Issue description

Texture artifacts are introduced when an export is made using `--headless` (in a CI). Further testing shows you can reproduce by disabling `compress_with_gpu` in project settings.

I believe this is a difference of etcpak and betsy, but it creates a pretty big divide between the quality of the game in our editors vs. our production builds.

With GPU Compression:

Image

With CPU Compression:

Image

### Steps to reproduce

1. Open MRP
2. Observe scene (specifically where camera is positioned).
3. Disable `compress_with_gpu` in Project Settings.
4. Re-import `res://PCA-Treasure-Room-Pristine Combined.png`
5, Re-observe.

### Minimal reproduction project (MRP)

[texture-artifacts.zip](https://github.com/user-attachments/files/28555099/texture-artifacts.zip)

Contributor guide

Open the contributing guide

Research direction

Start with the attached texture-artifacts.zip reproduction project and compare the texture produced by a GPU-enabled import with one using `compress_with_gpu` disabled or a `--headless` export. Trace the etcpak and betsy compression paths to identify the source of the artifact, then verify that CPU and GPU compression produce visually consistent results in the reproduction scene.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.