@@ -42,14 +42,22 @@ impl Metrics for LargeScene {
4242 if fs_extra:: dir:: copy (
4343 format ! ( "/assets/{scene}" ) ,
4444 format ! ( "examples/large_scenes/{scene}/assets" ) ,
45- & fs_extra:: dir:: CopyOptions :: new ( ) . copy_inside ( true ) ,
45+ & fs_extra:: dir:: CopyOptions :: new ( )
46+ . copy_inside ( true )
47+ . skip_exist ( true ) ,
4648 )
4749 . is_err ( )
4850 {
4951 return false ;
5052 }
5153
5254 let sh = Shell :: new ( ) . unwrap ( ) ;
55+ if self
56+ . features
57+ . contains ( & "mipmap_generator/compress" . to_string ( ) )
58+ {
59+ sh. set_var ( "RUSTFLAGS" , "-C linker=clang" ) ;
60+ }
5361 let mut features = self . features . clone ( ) ;
5462 features. push ( "bevy/bevy_ci_testing" . to_string ( ) ) ;
5563 let features = features
@@ -103,6 +111,12 @@ impl Metrics for LargeScene {
103111 . unwrap ( ) ;
104112 let sh = Shell :: new ( ) . unwrap ( ) ;
105113 sh. set_var ( "CI_TESTING_CONFIG" , config) ;
114+ if self
115+ . features
116+ . contains ( & "mipmap_generator/compress" . to_string ( ) )
117+ {
118+ sh. set_var ( "RUSTFLAGS" , "-C linker=clang" ) ;
119+ }
106120
107121 let parameters = self
108122 . parameters
@@ -165,74 +179,80 @@ impl Metrics for LargeScene {
165179 let gpu_memory = gpu_usage. iter ( ) . map ( |v| v. mem as f32 ) . collect :: < Vec < _ > > ( ) ;
166180 let gpu_usage = gpu_usage. iter ( ) . map ( |v| v. sm as f32 ) . collect :: < Vec < _ > > ( ) ;
167181
168- results. insert (
169- format ! ( "{key}.cpu_usage.mean" ) ,
170- ( statistical:: mean ( & cpu_usage) * 1000.0 ) as u64 ,
171- ) ;
172- results. insert (
173- format ! ( "{key}.cpu_usage.median" ) ,
174- ( statistical:: median ( & cpu_usage) * 1000.0 ) as u64 ,
175- ) ;
176- results. insert (
177- format ! ( "{key}.cpu_usage.min" ) ,
178- cpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . min ( ) . unwrap ( ) ,
179- ) ;
180- results. insert (
181- format ! ( "{key}.cpu_usage.max" ) ,
182- cpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . max ( ) . unwrap ( ) ,
183- ) ;
184- results. insert (
185- format ! ( "{key}.cpu_usage.std_dev" ) ,
186- ( statistical:: standard_deviation ( & cpu_usage, None ) * 1000.0 ) as u64 ,
187- ) ;
188- results. insert (
189- format ! ( "{key}.gpu_usage.mean" ) ,
190- ( statistical:: mean ( & gpu_usage) * 1000.0 ) as u64 ,
191- ) ;
192- results. insert (
193- format ! ( "{key}.gpu_usage.median" ) ,
194- ( statistical:: median ( & gpu_usage) * 1000.0 ) as u64 ,
195- ) ;
196- results. insert (
197- format ! ( "{key}.gpu_usage.min" ) ,
198- gpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . min ( ) . unwrap ( ) ,
199- ) ;
200- results. insert (
201- format ! ( "{key}.gpu_usage.max" ) ,
202- gpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . max ( ) . unwrap ( ) ,
203- ) ;
204- results. insert (
205- format ! ( "{key}.gpu_usage.std_dev" ) ,
206- ( statistical:: standard_deviation ( & gpu_usage, None ) * 1000.0 ) as u64 ,
207- ) ;
208- results. insert (
209- format ! ( "{key}.gpu_memory.mean" ) ,
210- ( statistical:: mean ( & gpu_memory) * 1000.0 ) as u64 ,
211- ) ;
212- results. insert (
213- format ! ( "{key}.gpu_memory.median" ) ,
214- ( statistical:: median ( & gpu_memory) * 1000.0 ) as u64 ,
215- ) ;
216- results. insert (
217- format ! ( "{key}.gpu_memory.min" ) ,
218- gpu_memory
219- . iter ( )
220- . map ( |d| ( d * 1000.0 ) as u64 )
221- . min ( )
222- . unwrap ( ) ,
223- ) ;
224- results. insert (
225- format ! ( "{key}.gpu_memory.max" ) ,
226- gpu_memory
227- . iter ( )
228- . map ( |d| ( d * 1000.0 ) as u64 )
229- . max ( )
230- . unwrap ( ) ,
231- ) ;
232- results. insert (
233- format ! ( "{key}.gpu_memory.std_dev" ) ,
234- ( statistical:: standard_deviation ( & gpu_memory, None ) * 1000.0 ) as u64 ,
235- ) ;
182+ if cpu_usage. len ( ) > 3 {
183+ results. insert (
184+ format ! ( "{key}.cpu_usage.mean" ) ,
185+ ( statistical:: mean ( & cpu_usage) * 1000.0 ) as u64 ,
186+ ) ;
187+ results. insert (
188+ format ! ( "{key}.cpu_usage.median" ) ,
189+ ( statistical:: median ( & cpu_usage) * 1000.0 ) as u64 ,
190+ ) ;
191+ results. insert (
192+ format ! ( "{key}.cpu_usage.min" ) ,
193+ cpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . min ( ) . unwrap ( ) ,
194+ ) ;
195+ results. insert (
196+ format ! ( "{key}.cpu_usage.max" ) ,
197+ cpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . max ( ) . unwrap ( ) ,
198+ ) ;
199+ results. insert (
200+ format ! ( "{key}.cpu_usage.std_dev" ) ,
201+ ( statistical:: standard_deviation ( & cpu_usage, None ) * 1000.0 ) as u64 ,
202+ ) ;
203+ }
204+ if gpu_usage. len ( ) > 3 {
205+ results. insert (
206+ format ! ( "{key}.gpu_usage.mean" ) ,
207+ ( statistical:: mean ( & gpu_usage) * 1000.0 ) as u64 ,
208+ ) ;
209+ results. insert (
210+ format ! ( "{key}.gpu_usage.median" ) ,
211+ ( statistical:: median ( & gpu_usage) * 1000.0 ) as u64 ,
212+ ) ;
213+ results. insert (
214+ format ! ( "{key}.gpu_usage.min" ) ,
215+ gpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . min ( ) . unwrap ( ) ,
216+ ) ;
217+ results. insert (
218+ format ! ( "{key}.gpu_usage.max" ) ,
219+ gpu_usage. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . max ( ) . unwrap ( ) ,
220+ ) ;
221+ results. insert (
222+ format ! ( "{key}.gpu_usage.std_dev" ) ,
223+ ( statistical:: standard_deviation ( & gpu_usage, None ) * 1000.0 ) as u64 ,
224+ ) ;
225+ }
226+ if gpu_memory. len ( ) > 3 {
227+ results. insert (
228+ format ! ( "{key}.gpu_memory.mean" ) ,
229+ ( statistical:: mean ( & gpu_memory) * 1000.0 ) as u64 ,
230+ ) ;
231+ results. insert (
232+ format ! ( "{key}.gpu_memory.median" ) ,
233+ ( statistical:: median ( & gpu_memory) * 1000.0 ) as u64 ,
234+ ) ;
235+ results. insert (
236+ format ! ( "{key}.gpu_memory.min" ) ,
237+ gpu_memory
238+ . iter ( )
239+ . map ( |d| ( d * 1000.0 ) as u64 )
240+ . min ( )
241+ . unwrap ( ) ,
242+ ) ;
243+ results. insert (
244+ format ! ( "{key}.gpu_memory.max" ) ,
245+ gpu_memory
246+ . iter ( )
247+ . map ( |d| ( d * 1000.0 ) as u64 )
248+ . max ( )
249+ . unwrap ( ) ,
250+ ) ;
251+ results. insert (
252+ format ! ( "{key}.gpu_memory.std_dev" ) ,
253+ ( statistical:: standard_deviation ( & gpu_memory, None ) * 1000.0 ) as u64 ,
254+ ) ;
255+ }
236256 results. insert ( format ! ( "{key}.duration" ) , elapsed. as_millis ( ) as u64 ) ;
237257 results. insert ( format ! ( "{key}.frames" ) , self . nb_frames as u64 ) ;
238258
@@ -258,34 +278,36 @@ impl Metrics for LargeScene {
258278 . flat_map ( |record| record. get ( 1 ) . unwrap ( ) . parse :: < f32 > ( ) )
259279 . collect :: < Vec < _ > > ( ) ;
260280
261- results. insert (
262- format ! ( "{key}.frame_time.mean" ) ,
263- ( statistical:: mean ( & frame_times) * 1000.0 ) as u64 ,
264- ) ;
265- results. insert (
266- format ! ( "{key}.frame_time.median" ) ,
267- ( statistical:: median ( & frame_times) * 1000.0 ) as u64 ,
268- ) ;
269- results. insert (
270- format ! ( "{key}.frame_time.min" ) ,
271- frame_times
272- . iter ( )
273- . map ( |d| ( d * 1000.0 ) as u64 )
274- . min ( )
275- . unwrap ( ) ,
276- ) ;
277- results. insert (
278- format ! ( "{key}.frame_time.max" ) ,
279- frame_times
280- . iter ( )
281- . map ( |d| ( d * 1000.0 ) as u64 )
282- . max ( )
283- . unwrap ( ) ,
284- ) ;
285- results. insert (
286- format ! ( "{key}.frame_time.std_dev" ) ,
287- ( statistical:: standard_deviation ( & frame_times, None ) * 1000.0 ) as u64 ,
288- ) ;
281+ if !frame_times. len ( ) > 3 {
282+ results. insert (
283+ format ! ( "{key}.frame_time.mean" ) ,
284+ ( statistical:: mean ( & frame_times) * 1000.0 ) as u64 ,
285+ ) ;
286+ results. insert (
287+ format ! ( "{key}.frame_time.median" ) ,
288+ ( statistical:: median ( & frame_times) * 1000.0 ) as u64 ,
289+ ) ;
290+ results. insert (
291+ format ! ( "{key}.frame_time.min" ) ,
292+ frame_times
293+ . iter ( )
294+ . map ( |d| ( d * 1000.0 ) as u64 )
295+ . min ( )
296+ . unwrap ( ) ,
297+ ) ;
298+ results. insert (
299+ format ! ( "{key}.frame_time.max" ) ,
300+ frame_times
301+ . iter ( )
302+ . map ( |d| ( d * 1000.0 ) as u64 )
303+ . max ( )
304+ . unwrap ( ) ,
305+ ) ;
306+ results. insert (
307+ format ! ( "{key}.frame_time.std_dev" ) ,
308+ ( statistical:: standard_deviation ( & frame_times, None ) * 1000.0 ) as u64 ,
309+ ) ;
310+ }
289311 }
290312
291313 results
0 commit comments