Search Issue Tracker

Active

Votes

0

Found in

2019.2

Issue ID

1150291

Regression

No

Temporary textures do not respect QualitySettings.textureQuality

Graphics - General

-

The RenderTexture.GetTemporary() API creates a render texture that does not get mipped down at the API level (at least for DX11).

You can see this issue in the repro project attached to this bug: https://fogbugz.unity3d.com/f/cases/edit/1148582/
Graphics test 434 might be hitting this issue too: https://fogbugz.unity3d.com/f/cases/1144430/

Maybe this bug can be resolved with the answer "temporary textures shouldn't be mipped down!" in which case we'd just need to update documentation for QualitySettings.masterTextureLimit. But then temporary textures will always have scaling problems with textures that *are* managed behind the scenes according to masterTextureLimit. In 1148582 it was also discovered that it's possible to cause a crash by copying from a location in a texture that's legal at the C++ level (which sees a texture as full resolution, even if it's been downmipped at the API level) but illegal for the actual texture resource at the API level, which causes GfxDevice removal. So we'd probably need additional assertion checks that account for QualitySettings.masterTextureLimit when checking texture operation dimensions. It might also be advisable to add an API argument on texture allocation to specify whether the resolution should be affected by QualitySettings?

If it turns out temporary textures SHOULD be mipped down at the API level, the bugfix for 1148582 would be broken (since it relies on temporary textures being created at full resolution).

Add comment

Log in to post comment

All about bugs

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