Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Terrain instancing incompatible with tessellation/surface shaders [1111579]

Discussion in '2019.1 Beta' started by jbooth, Dec 26, 2018.

  1. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    3,563
    Had texture arrays not been broken through the entire 2018.3 beta, I might have caught this earlier. But basically the new instancing system used for terrain is incompatible with surface shader tessellation. It will complain that the input (inout) parameter to the displacement function is not fully initialized, because the instance ID is not initialized before being passed to this function.

    Bug id: 1111579
     
  2. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    714
    @jbooth Did you manage to solve the issue finally?
     
  3. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    3,563
    Nope, not something that can be worked around. Unity seems to be happily ignoring it too, since they are trying to move away from surface shaders.
     
    TerraUnity likes this.
  4. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    714
    Oh ok, thanks for the answer Jason. Actually the current state of surface shaders are somewhat ambiguous, because Shader Graph is only available in SRPs, and normal pipeline still uses surface shaders and is the same in the latest versions yet we hear they will drop them soon.

    Shader Graph is what we need as developers and also normal users but what about all these missing features in normal pipeline!
     
  5. LeonhardP

    LeonhardP

    Unity Technologies

    Joined:
    Jul 4, 2016
    Posts:
    1,487
    QA was able to reproduce the issue in the version you reported it for but also stated in their last email that it was no longer happening from 2018.3.3f1. If this is still an issue, please reply to the email and the case will get re-activated.
     
  6. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    3,563
    It still breaks on 2018.4.2f1 LTS, though with different errors:

    Shader error in 'MicroSplat/Example_Tessellation': Unsupported dynamic indexing scheme on constant buffer vars. (on metal)

    Metal: Error creating pipeline state (MicroSplat/Example_Tessellation): Link failed: fragment input user(SV_InstanceID0) was not found in vertex shader outputs
    (null)

    Somehow I missed that response but will respond with this there as well, along with a new repro.
     
    Last edited: Jun 18, 2019