Skip to content

RenderingDevice::texture_get_data doesn't handle compressed textures properly #111497

@nikitalita

Description

@nikitalita

Tested versions

current master @ 26cd27065

System information

Godot Engine v4.6.dev.custom_build.26cd27065 - macOS Sequoia (15.6.0) - Multi-window, 1 monitor - Metal (Forward+) - integrated Apple M4 Max (Apple9) - Apple M4 Max (16 threads) - 64.00 GiB memory

Issue description

according to @clayjohn :

Turns out we don't handle compressed textures properly in that function and we just read them as if they are laid out linearly in memory

As a result of this, the result of CompressedTexture2D::get_image() becomes non-deterministic if it's compressed and has mipmaps

Relevant PRs:
#108422
#111328

Steps to reproduce

Run the below MRP, observe stdout

Minimal reproduction project (MRP)

tex-non-deterministic-mrp.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions