Search Issue Tracker

Fixed in Unity 2018.3

Votes

0

Found in

2018.1.0f2

Issue ID

1037570

Regression

Yes

Error appears when calling Texture2D.SetPixels32() with a texture that has format set to BGRA32

Graphics - General

-

-

Priority: 2Necessary for shipping a final release

-

Severity: 3Secondary functionality broken

Reproduction steps:
1. Open the attached project "2018BugReport.zip";
2. Open the TestScene;
3. Enter a play mode.

Expected results: The scene is played without any errors.
Actual results: There an error shown in the console:
SetPixels32 can only be called on a RGBA32 or BGRA32 texture but is being called on TextureFormat(14)
UnityEngine.Texture2D:SetPixels32(Color32[])
GenerateTexture:Start() (at Assets/GenerateTexture.cs:12)

Reproduced on: 2018.1.0b1, 2018.1.1f1, 2018.2.0b4, 2018.3.0a1.
Not reproduced on: 2018.1.0a1, 2017.4.3.f1 or lower.

Comments (4)

  1. 1565e5d4d135de25f49d6b5fddafe093?d=mm

    MortePCAndVR

    Jul 28, 2018 06:28

    Same issue in Unity 2018.2.1f1

  2. 1565e5d4d135de25f49d6b5fddafe093?d=mm

    MortePCAndVR

    Jul 28, 2018 05:31

    Confirmed also same issue in Unity 2018.2.0f2
    On Textureformat.BGRA32

    "SetPixels32 can only be called on a RGBA32 or BGRA32 texture but is being called on TextureFormat(14)
    UnityEngine.Texture2D:SetPixels32(Int32, Int32, Int32, Int32, Color32[])"

    So, Issue tracker above says "fixed in future release"

    - Since 2018.2.1f1 is the latest version and this issue does not appear in the patch list:
    https://unity3d.com/unity/whatsnew/unity-2018.2.1
    I'm guessing that is a yet-to-be-announced future release which isn't even in beta yet?

  3. 1565e5d4d135de25f49d6b5fddafe093?d=mm

    MortePCAndVR

    Jul 27, 2018 15:44

    Same issue here using a BGRA32 Texture2D, in Unity 2018.1.6f1.
    SetPixels32 works fine with an ARGB32 Texture2D, but requires expensive conversion code on each 32bit int to reverse colour byte order (endian-ness).

    LoadRawTextureData(intPtr,size) works fine with Textureformat.BGRA32 from the native framebuffer pixel data encoding without requiring endian preprocessing, but I need SetPixels32 for smaller rectangles inside the texture2D.

  4. Dc475734b1c707140096c1ae53acd64b?d=mm

    ajayzthakur7

    May 28, 2018 15:52

    Facing same issue for 2018.1.0b1 , is any way to fix this please.

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.