Search Unity

Question Texture creation failed. 'ShadowAuto' is not supported

Discussion in 'Universal Render Pipeline' started by kumade, Dec 26, 2022.

  1. kumade

    kumade

    Joined:
    Nov 3, 2016
    Posts:
    52
    Hey everyone and Merry Christmas!
    I'm using Unity 2022.1.22 with URP.
    My game works relatively ok on most of the devices but one specific device (used to test my app for a very specific marketplace, I can't change the device and I have to pass the test to sell my app on the marketplace) gives a weird exception when entering the first game level:


    2011-01-10 03:22:20.559 2303-2325 Unity com.xxx.xxx.puzzle E NullReferenceException: Object reference not set to an instance of an object.
    at UnityEngine.Rendering.RTHandleSystem.Alloc (System.Int32 width, System.Int32 height, System.Int32 slices,
    UnityEngine.Rendering.DepthBits depthBufferBits,
    UnityEngine.Experimental.Rendering.GraphicsFormat colorFormat,
    UnityEngine.FilterMode filterMode, UnityEngine.TextureWrapMode wrapMode, UnityEngine.Rendering.TextureDimension dimension, System.Boolean enableRandomWrite, System.Boolean useMipMap, System.Boolean autoGenerateMips, System.Boolean isShadowMap, System.Int32 anisoLevel, System.Single mipMapBias, UnityEngine.Rendering.MSAASamples msaaSamples, System.Boolean bindTextureMS, System.Boolean useDynamicScale, UnityEngine.RenderTextureMemoryless memoryless, UnityEngine.VRTextureUsage vrUsage, System.String name) [0x00000] in <00000000000000000000000000000000>:0
    at UnityEngine.Rendering.RTHandles.Alloc (UnityEngine.RenderTextureDescriptor& descriptor, UnityEngine.FilterMode filterMode, UnityEngine.TextureWrapMode wrapMod

    2011-01-10 03:22:20.712 2303-2325 Unity com.xxx.xxx.puzzle E Texture creation failed. 'ShadowAuto' is not supported for Render usage on this platform. Use 'SystemInfo.IsFormatSupported' C# API to check format support.
    UnityEngine.Logger:Log(LogType, Object, Object)
    UnityEngine.Debug:LogError(Object, Object) UnityEngine.Texture:ValidateFormat(GraphicsFormat, FormatUsage)
    UnityEngine.RenderTexture:Initialize(Int32, Int32, Int32, RenderTextureFormat, RenderTextureReadWrite, Int32)
    UnityEngine.RenderTexture:.ctor(Int32, Int32, Int32, RenderTextureFormat, RenderTextureReadWrite)
    UnityEngine.Rendering.RTHandleSystem:Alloc(Int32, Int32, Int32, DepthBits, GraphicsFormat, FilterMode, TextureWrapMode, TextureDimension, Boolean, Boolean, Boolean, Boolean, Int32, Single, MSAASamples, Boolean, Boolean, RenderTextureMemoryless, VRTextureUsage, String)
    UnityEngine.Rendering.RTHandles:Alloc(RenderTextureDescriptor&, FilterMode, TextureWrapMode, Boolean, Int32, Single, String)
    UnityEngine.Rendering.Universal.ShadowUtils:AllocShadowRT(Int32, Int32, Int32, Int32, Single, String)


    As I see it the main issue is Texture creation failed. 'ShadowAuto' is not supported for Render usage on this platform. Use 'SystemInfo.IsFormatSupported' C# API to check format support.

    The device specification is as follows:
    device-info.jpg

    I checked my materials and textures and URP settings but I cannot find anything related to ShadowAuto option mentioned in the exception text.

    I have 3 render textures in my project, they have this settings:
    render-texture-settings.png

    Please help!
     
    Last edited: Dec 26, 2022
  2. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,043
    Do you use OpenGLES 2, OpenGLES 3 or vulkan?
    And do you use ETC or ASTC compression?
     
  3. kumade

    kumade

    Joined:
    Nov 3, 2016
    Posts:
    52
    Thanks for the reply though I'm not sure what to answer :) I have all 3 Graphic APIs selected in my player settings. Vulkan, GL2, GL3 in this order, if it matters. I'm not big at graphics programming so can't tell for sure.

    There is no compression settings for render textures (see my screenshot). My game is 2d and I use render textures to simulate liquids. For all other 2d sprites I use "RGBA Compressed ETC2 8 bits" compression format. But the exception seems to be caused by render textures specifically as it says UnityEngine.RenderTexture:Initialize, UnityEngine.RenderTexture:.ctor etc so I guess my render textures is the reason, not my sprites compression, does this make sense?
     
  4. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,043
    Remove vulkan and opengl 2. If that doesn't work try opengl2 only, but that's not optimal for high end devices.
    What texture compression is selected at the build settings?
     
  5. kumade

    kumade

    Joined:
    Nov 3, 2016
    Posts:
    52
    Thank I'll try removing vulkan and opengl2. The compression in build settings is set to ETC.