Search Issue Tracker
By Design
Votes
0
Found in
2019.4
2020.3
2020.3.7f1
2021.2
2022.1
2022.2
Issue ID
1394842
Regression
No
Texture is not rendered when Texture Quality is not set to Full Res
Reproduction steps:
1. Open the "SampleScene" Scene in the attached project "CopyTextureTest.zip"
2. Go to Edit > Project Settings > Quality
3. In Texture Quality set it to Half Res, Quarter Res, or to Eighth Res
4. Enter the Play mode
5. Observe the Sphere in the Game View
Expected result: Sphere is in blue color
Actual result: Sphere texture is not rendered, it stays black
Reproducible with: 2019.4.36f1, 2020.3.28f1, 2021.2.9f1, 2022.1.0b7, 2022.2.0a3
Note: On 2019.4.36f1 3/4 of Texture is not rendered when Texture Quality is set to Half Res, whole Texture is not rendered with Quarter Ress and Eighth Ress
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
- Standalone Player crashes with "TDerived GetOrLoad<TDerived>() where TDerived : T" when IL2CPP Code generation is set to "Faster (smaller) Builds"
- IndexOutOfRangeException and InvalidOperationException when logging XML string
- Script missing in "Assets/Settings/Mobile_Renderer/GlobalVolumeFeature" of "com.unity.template.urp-blank" template
- “Font Asset Creator - Error Code [Invalid_File_Structure]…“ error is logged when generating Font Assets from fonts with meta files from previous Editor versions
- Input.mousePosition returns (NaN, NaN, 0.00) when Scene view is opened
Resolution Note:
This is behaving as expected: such CopyTexture calls are indeed unsupported and errors are printed to indicate this. As documented under Graphics.CopyTexture, "if you need to copy between textures with a different master texture limit, use the region-based overload".
However, the documentation around this is very obscure and we are looking into improving this; as the error messages don't seem to be particularly helpful in understanding why exactly things are going wrong. Especially the fact that 'setting Texture Quality' is the equivalent of setting a 'master texture limit' in scripts, is not at all made clear. Setting Texture Quality to half-res, quarter-res or eight-res is the equivalent of setting a master texture limit of 1, 2 or 3 for all Texture2D's that have a mip chain, meaning that 1, 2 or 3 highest-resolution mips are not uploaded to the GPU. Given that Texture2DArray does not currently support such master texture limits, CopyTexture cannot just work out of the box like this. Also, this support for master texture limit with Texture2DArrays is going to be investigated.