Search Issue Tracker

Not Reproducible

Votes

1

Found in

2020.2.0a17

Issue ID

1263399

Regression

No

[GPU Instancing] Switching shaders with wrong vertex streams can lead GPU instanced systems to glitch or crash

Visual Effects - Legacy

-

Repro steps:
1. Create a particle system and set a large capacity/emission count (at least 1,000 particles)
2. In the Renderer, set the particles to mesh and ensure GPU instancing is enabled
3. Assign a Particle-specific material
4. Fix all vertex stream issues in the material inspector
5. Change the system's material to a non-particle one (i.e. a default Lit material)
6. Duplicate the system and move it around
7. Observe the glitch.

Expected outcome:
- mismatching vertex streams to not cause glitches or crashes.

Notes:
- quite hard to reproduce, especially the crash
- the tests was done in URP, but it's most likely not SRP-specific

Crash stack trace:

========== OUTPUTTING STACK TRACE ==================

0x00007FF78B6D5CC7 (Unity) [C:\buildslave\unity\build\Modules\ParticleSystem\ParticleSystemGeometryJob.cpp:135] TransformParticleMesh<1,0,0,0>
0x00007FF78B6DD9B8 (Unity) [C:\buildslave\unity\build\Modules\ParticleSystem\ParticleSystemGeometryJob.cpp:287] TransformParticleMeshAnimatedUVs<0>
0x00007FF78B6AA71C (Unity) [C:\buildslave\unity\build\Modules\ParticleSystem\ParticleSystemGeometryJob.cpp:1931] DrawMeshParticles<1,0>
0x00007FF78B6E3F7B (Unity) [C:\buildslave\unity\build\Modules\ParticleSystem\ParticleSystemGeometryJob.cpp:2823] ParticleSystemGeometryJob::RenderJobCommon
0x00007FF78B6E39D0 (Unity) [C:\buildslave\unity\build\Modules\ParticleSystem\ParticleSystemGeometryJob.cpp:2679] ParticleSystemGeometryJob::RenderJob
0x00007FF788CDE197 (Unity) [C:\buildslave\unity\build\Runtime\Jobs\Internal\JobQueue.cpp:617] JobQueue::Exec
0x00007FF788CE5DB2 (Unity) [C:\buildslave\unity\build\Runtime\Jobs\Internal\JobQueue.cpp:727] JobQueue::Steal
0x00007FF788CDEB60 (Unity) [C:\buildslave\unity\build\Runtime\Jobs\Internal\JobQueue.cpp:850] JobQueue::ExecuteJobFromQueue
0x00007FF788CE07AB (Unity) [C:\buildslave\unity\build\Runtime\Jobs\Internal\JobQueue.cpp:944] JobQueue::ProcessJobs
0x00007FF788CE71BF (Unity) [C:\buildslave\unity\build\Runtime\Jobs\Internal\JobQueue.cpp:1028] JobQueue::WorkLoop
0x00007FF789311F95 (Unity) [C:\buildslave\unity\build\Runtime\Threads\Thread.cpp:78] Thread::RunThreadWrapper
0x00007FFA86747BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFA881ACE51 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========

Comments (1)

  1. GenericJoe

    Aug 06, 2020 13:30

    I am getting exactly the same crash error, in Unity version 2019.4.6f1

    It is hard to recreate on my end and appears random.

    ========== OUTPUTTING STACK TRACE ==================

    0x00007FFEBCA435A1 (UnityPlayer) TransformParticleMesh<1,1,1,0>
    0x00007FFEBCA5165D (UnityPlayer) TransformParticleMeshAnimatedUVs<0>
    0x00007FFEBCA1E7B7 (UnityPlayer) DrawMeshParticles<1,2>
    0x00007FFEBCA57949 (UnityPlayer) ParticleSystemGeometryJob::RenderJobCommon
    0x00007FFEBCA5751B (UnityPlayer) ParticleSystemGeometryJob::RenderJob
    0x00007FFEBC42D5C8 (UnityPlayer) JobQueue::Exec
    0x00007FFEBC42D9FA (UnityPlayer) JobQueue::ProcessJobs
    0x00007FFEBC42EB50 (UnityPlayer) JobQueue::WorkLoop
    0x00007FFEBC51A2C8 (UnityPlayer) Thread::RunThreadWrapper
    0x00007FFF0C557BD4 (KERNEL32) BaseThreadInitThunk
    0x00007FFF0CD8CE51 (ntdll) RtlUserThreadStart

    ========== END OF STACKTRACE ===========

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.