godotengine / godotengine/godot
Texture artifacts introduced when GPU is not available
- 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:
With CPU Compression:
### 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
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