Skip to content

WebGPU and Webgl return different pixel array lengths when using readRenderTargetPixelsAsync #31820

@Kycklingris

Description

@Kycklingris

Description

When using r179.1 the WebGPURenderer returns a pixelArray of length 40 000 (for a RenderTarget of size (100, 100)) both when forceWebGL is set to false and true.

However when using r180 and forceWebGL is false it outputs a length of 51 088. With forceWebGL set to true, the pixelArray length is still 40 000.

Reproduction steps

  1. Create a new WebGPURenderer with forceWebGL set to false
  2. Create a new RenderTarget
  3. Init the RenderTarget
  4. read the pixels using readRenderTargetPixelsAsync
  5. check the length of the pixelsArray length

Code

const renderer = new WebGPURenderer();
await renderer.init();

const rt = new RenderTarget(100, 100);
await renderer.initTextureAsync(rt.texture);

const pixels = await renderer.readRenderTargetPixelsAsync(rt, 0, 0, rt.width, rt.height);

console.log(pixels.length); // Outputs 51088

Live example

Screenshots

No response

Version

r180

Device

Desktop

Browser

Chrome

OS

Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions