@@ -203,78 +203,49 @@ int main(int argc, char* argv[])
203
203
WINPR_UNUSED (argc );
204
204
WINPR_UNUSED (argv );
205
205
primitives_YUV_benchmark bench = primitives_YUV_benchmark_init ();
206
- primitives_t * opt = primitives_get ();
207
- primitives_t * generic = primitives_get_generic ();
208
- if (!generic || !opt )
209
- {
210
- (void )fprintf (stderr , "failed to get primitives: generic=%p, opt=%p\n" , (void * )generic ,
211
- (void * )opt );
212
- goto fail ;
213
- }
214
-
215
- printf ("Running YUV420 -> RGB benchmark on generic implementation:\n" );
216
- if (!primitives_YUV420_benchmark_run (& bench , generic ))
217
- {
218
- (void )fprintf (stderr , "YUV420 -> RGB benchmark failed\n" );
219
- goto fail ;
220
- }
221
- printf ("\n" );
222
-
223
- printf ("Running YUV420 benchmark on optimized implementation:\n" );
224
- if (!primitives_YUV420_benchmark_run (& bench , opt ))
225
- {
226
- (void )fprintf (stderr , "YUV420 benchmark failed\n" );
227
- goto fail ;
228
- }
229
- printf ("\n" );
230
206
231
- printf ("Running RGB -> YUV420 benchmark on generic implementation:\n" );
232
- if (!primitives_RGB2420_benchmark_run (& bench , generic ))
207
+ for (primitive_hints hint = PRIMITIVES_PURE_SOFT ; hint < PRIMITIVES_AUTODETECT ; hint ++ )
233
208
{
234
- (void )fprintf (stderr , "RGB -> YUV420 benchmark failed\n" );
235
- goto fail ;
236
- }
237
- printf ("\n" );
238
-
239
- printf ("Running RGB -> YUV420 benchmark on optimized implementation:\n" );
240
- if (!primitives_RGB2420_benchmark_run (& bench , opt ))
241
- {
242
- (void )fprintf (stderr , "RGB -> YUV420 benchmark failed\n" );
243
- goto fail ;
244
- }
245
- printf ("\n" );
209
+ const char * hintstr = primtives_hint_str (hint );
210
+ primitives_t * prim = primitives_get_by_type (hint );
211
+ if (!prim )
212
+ {
213
+ (void )fprintf (stderr , "failed to get primitives: %s\n" , hintstr );
214
+ goto fail ;
215
+ }
246
216
247
- printf ("Running YUV444 -> RGB benchmark on generic implementation:\n" );
248
- if (!primitives_YUV444_benchmark_run (& bench , generic ))
249
- {
250
- (void )fprintf (stderr , "YUV444 -> RGB benchmark failed\n" );
251
- goto fail ;
252
- }
253
- printf ("\n" );
217
+ printf ("Running YUV420 -> RGB benchmark on %s implementation:\n" , hintstr );
218
+ if (!primitives_YUV420_benchmark_run (& bench , prim ))
219
+ {
220
+ (void )fprintf (stderr , "YUV420 -> RGB benchmark failed\n" );
221
+ goto fail ;
222
+ }
223
+ printf ("\n" );
254
224
255
- printf ("Running YUV444 -> RGB benchmark on optimized implementation:\n" );
256
- if (!primitives_YUV444_benchmark_run (& bench , opt ))
257
- {
258
- (void )fprintf (stderr , "YUV444 -> RGB benchmark failed\n" );
259
- goto fail ;
260
- }
261
- printf ("\n" );
225
+ printf ("Running RGB -> YUV420 benchmark on %s implementation:\n" , hintstr );
226
+ if (!primitives_RGB2420_benchmark_run (& bench , prim ))
227
+ {
228
+ (void )fprintf (stderr , "RGB -> YUV420 benchmark failed\n" );
229
+ goto fail ;
230
+ }
231
+ printf ("\n" );
262
232
263
- printf ("Running RGB -> YUV444 benchmark on generic implementation:\n" );
264
- if (!primitives_RGB2444_benchmark_run (& bench , generic ))
265
- {
266
- (void )fprintf (stderr , "RGB -> YUV444 benchmark failed\n" );
267
- goto fail ;
268
- }
269
- printf ("\n" );
233
+ printf ("Running YUV444 -> RGB benchmark on %s implementation:\n" , hintstr );
234
+ if (!primitives_YUV444_benchmark_run (& bench , prim ))
235
+ {
236
+ (void )fprintf (stderr , "YUV444 -> RGB benchmark failed\n" );
237
+ goto fail ;
238
+ }
239
+ printf ("\n" );
270
240
271
- printf ("Running RGB -> YUV444 benchmark on optimized implementation:\n" );
272
- if (!primitives_RGB2444_benchmark_run (& bench , opt ))
273
- {
274
- (void )fprintf (stderr , "RGB -> YUV444 benchmark failed\n" );
275
- goto fail ;
241
+ printf ("Running RGB -> YUV444 benchmark on %s implementation:\n" , hintstr );
242
+ if (!primitives_RGB2444_benchmark_run (& bench , prim ))
243
+ {
244
+ (void )fprintf (stderr , "RGB -> YUV444 benchmark failed\n" );
245
+ goto fail ;
246
+ }
247
+ printf ("\n" );
276
248
}
277
- printf ("\n" );
278
249
fail :
279
250
primitives_YUV_benchmark_free (& bench );
280
251
return 0 ;
0 commit comments