Search Issue Tracker
By Design
Votes
8
Found in
2017.4.0f1
2018.4.0f1
2019.1.0a1
2019.1.11f1
2019.2.0a1
2019.3.0a1
Issue ID
1172610
Regression
No
CopyTexture() throws an error when copying compressed Texture
How to reproduce:
1. Open the "SampleScene" in the attached project "case_1172610-Graphics_Bug"
2. Make sure that "copyTextureFailure" Texture in the project Assets folder is compressed
3. Press "Play"
Expected results: CopyTexture() will replace goblin's torso texture with compressed texture
Actual results: An error is thrown
Reproducible with: 2017.4.31f1, 2018.4.5f1, 2019.1.13f1, 2019.2.0f1, 2019.3.0a11
Additional notes:
1. It was tested using different graphics APIs. Here are the errors received:
Windows:
DX11/DX12: "Graphics.CopyTexture can only copy between same texture format groups (d3d11/d3d12 base formats: src=76 dst=27)"
OpenGLCore: "Graphics.CopyTexture can only copy between same texture format groups (OpenGL internal formats: src=33779, blockSize=16 ; dst=32856,
blockSize=4)"
Mac:
Metal: Crash
OpenGLCore: Does not reproduce, works as expected without any errors
2. Compression quality does not affect the outcome
-
GXMark
Jan 10, 2020 01:59
Yes I can confirm the same issue. Created two textures with exactly same format through Texture2D.CreateExternalTexture and I get DX11/DX12: "Graphics.CopyTexture can only copy between same texture format groups (d3d11/d3d12 base formats: src=76 dst=27)"
Unity please look into this because the base formats its complaining are incompatible is incorrect.
Version 2019.3.0f3
-
Aggressor
Sep 07, 2019 15:13
Ignore my previous comment, it was an asset bundle caching bug.
-
Aggressor
Sep 07, 2019 15:09
I've done some research and this happens even if the target and source texture share the same format group (even literally the exact same format).
However, I noticed a different bug with certain textures. Setting the import property to readable did not matter. It would always appear as FALSE even if the read/write import property was set to true.
Im wondering if this error message is "wrong" because there might be an underlying issue with the read/write property on certain textures? (This is pure speculation as I cannot step through the code but I can verify that the read/write property is false on textures I explicitly set to true).
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- ArgumentOutOfRangeException when manipulating the Project Settings search bar
- [Linux] Touch freezes in Player when any mouse button is clicked
- UnityEngine.Rendering.Volume.OnEnable() is called twice before OnDisable() creating multiple copies of the same volume when a volume is enabled right after Domain Reload when entering Play Mode
- Hinge Joint transforms are reset when toggling the "useMotor" property
- Motion Vector texture reports incorrect Mesh data when Mesh is coming from off-screen
Resolution Note:
GPUs can only copy texture within the same format groups. As a result, we throw an error if the user tries to use CopyTexture between textures which can't be copied to each other.