@@ -49,6 +49,11 @@ private void CreateAssetAndComponent(float spawnCountValue, string playEventName
4949 var spawnerInit = ScriptableObject . CreateInstance < VFXBasicInitialize > ( ) ;
5050 var spawnerOutput = ScriptableObject . CreateInstance < VFXPlanarPrimitiveOutput > ( ) ;
5151
52+ var blockAttributeDesc = VFXLibrary . GetBlocks ( ) . FirstOrDefault ( o => o . modelType == typeof ( Block . SetAttribute ) ) ;
53+ var blockAttribute = blockAttributeDesc . CreateInstance ( ) ;
54+ blockAttribute . SetSettingValue ( "attribute" , "position" ) ;
55+ spawnerInit . AddChild ( blockAttribute ) ;
56+
5257 slotCount . value = spawnCountValue ;
5358
5459 spawnerContext . AddChild ( blockConstantRate ) ;
@@ -406,6 +411,47 @@ public IEnumerator Create_Spawner_Check_Time_Mode_Update_Count([ValueSource("s_C
406411 yield return new ExitPlayMode ( ) ;
407412 }
408413
414+ //Cover fix from 1268360 : Simple usage of exact fixed time step, it should not throw any error from the renderer
415+ [ UnityTest ]
416+ public IEnumerator Create_Spawner_Check_No_Incorrect_Thread_Count ( [ ValueSource ( "s_CheckTimeMode" ) ] VFXTimeModeTest timeMode )
417+ {
418+ yield return new EnterPlayMode ( ) ;
419+
420+ var spawnCountValue = 651.0f ;
421+ VisualEffect vfxComponent ;
422+ GameObject cameraObj , gameObj ;
423+ VFXGraph graph ;
424+ CreateAssetAndComponent ( spawnCountValue , "OnPlay" , out graph , out vfxComponent , out gameObj , out cameraObj ) ;
425+ graph . GetResource ( ) . updateMode = ( VFXUpdateMode ) timeMode . vfxUpdateMode ;
426+ AssetDatabase . ImportAsset ( AssetDatabase . GetAssetPath ( graph ) ) ;
427+
428+ var previousCaptureFrameRate = Time . captureFramerate ;
429+ var previousFixedTimeStep = UnityEngine . VFX . VFXManager . fixedTimeStep ;
430+ var previousMaxDeltaTime = UnityEngine . VFX . VFXManager . maxDeltaTime ;
431+
432+ UnityEngine . VFX . VFXManager . fixedTimeStep = 0.1f ;
433+ UnityEngine . VFX . VFXManager . maxDeltaTime = 0.5f ;
434+ Time . captureDeltaTime = 1.0f ;
435+
436+ int maxFrame = 128 ;
437+ while ( vfxComponent . culled && -- maxFrame > 0 )
438+ yield return null ;
439+
440+ //Wait a few frame to verify if we are getting any warning from the rendering
441+ for ( int i = 0 ; i < 5 ; ++ i )
442+ yield return null ;
443+
444+ UnityEngine . Object . DestroyImmediate ( gameObj ) ;
445+ UnityEngine . Object . DestroyImmediate ( cameraObj ) ;
446+
447+ Time . captureFramerate = previousCaptureFrameRate ;
448+ UnityEngine . VFX . VFXManager . fixedTimeStep = previousFixedTimeStep ;
449+ UnityEngine . VFX . VFXManager . maxDeltaTime = previousMaxDeltaTime ;
450+
451+ yield return new ExitPlayMode ( ) ;
452+ }
453+
454+
409455 //Fix case 1217876
410456 static VFXTimeModeTest [ ] s_Change_Fixed_Time_Step_To_A_Large_Value_Then_Back_To_Default = new [ ]
411457 {
0 commit comments