@@ -308,16 +308,8 @@ where
308
308
if let Some ( vertex_shader) = key. bind_group_data . vertex_shader {
309
309
info ! ( "Vertex shader is present, aggregating defs" ) ;
310
310
311
- let shader_defs: Vec < _ > = descriptor
312
- . vertex
313
- . shader_defs
314
- . iter ( )
315
- . cloned ( )
316
- . chain ( SHADER_DEFS . iter ( ) . map ( ToString :: to_string) )
317
- . collect ( ) ;
318
-
319
311
info ! ( "Building vertex entrypoint" ) ;
320
- let entry_point = M :: Vertex :: build ( & shader_defs) ;
312
+ let entry_point = M :: Vertex :: build ( & descriptor . vertex . shader_defs ) ;
321
313
322
314
#[ allow( unused_mut) ]
323
315
let mut apply = true ;
@@ -353,7 +345,7 @@ where
353
345
handle
354
346
. send ( crate :: prelude:: Export {
355
347
shader : M :: Vertex :: NAME ,
356
- permutation : M :: Vertex :: permutation ( & shader_defs) ,
348
+ permutation : M :: Vertex :: permutation ( & descriptor . vertex . shader_defs ) ,
357
349
} )
358
350
. unwrap ( ) ;
359
351
} ;
@@ -365,21 +357,17 @@ where
365
357
} else {
366
358
warn ! ( "Falling back to default vertex shader." ) ;
367
359
}
360
+
361
+ // Clear shader defs to satify ShaderProcessor
362
+ descriptor. vertex . shader_defs . clear ( ) ;
368
363
}
369
364
370
365
if let Some ( fragment_descriptor) = descriptor. fragment . as_mut ( ) {
371
366
if let Some ( fragment_shader) = key. bind_group_data . fragment_shader {
372
367
info ! ( "Fragment shader is present, aggregating defs" ) ;
373
368
374
- let shader_defs: Vec < _ > = fragment_descriptor
375
- . shader_defs
376
- . iter ( )
377
- . cloned ( )
378
- . chain ( SHADER_DEFS . iter ( ) . map ( ToString :: to_string) )
379
- . collect ( ) ;
380
-
381
369
info ! ( "Building fragment entrypoint" ) ;
382
- let entry_point = M :: Fragment :: build ( & shader_defs) ;
370
+ let entry_point = M :: Fragment :: build ( & fragment_descriptor . shader_defs ) ;
383
371
384
372
#[ allow( unused_mut) ]
385
373
let mut apply = true ;
@@ -416,7 +404,7 @@ where
416
404
handle
417
405
. send ( crate :: prelude:: Export {
418
406
shader : M :: Fragment :: NAME ,
419
- permutation : M :: Fragment :: permutation ( & shader_defs) ,
407
+ permutation : M :: Fragment :: permutation ( & fragment_descriptor . shader_defs ) ,
420
408
} )
421
409
. unwrap ( ) ;
422
410
} ;
@@ -428,6 +416,9 @@ where
428
416
} else {
429
417
warn ! ( "Falling back to default fragment shader." ) ;
430
418
}
419
+
420
+ // Clear shader defs to satify ShaderProcessor
421
+ fragment_descriptor. shader_defs . clear ( ) ;
431
422
}
432
423
}
433
424
0 commit comments