diff options
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/checkers/checkers.c | 22 | 
1 files changed, 12 insertions, 10 deletions
| diff --git a/src/modules/checkers/checkers.c b/src/modules/checkers/checkers.c index 5d76a88..f04ebf0 100644 --- a/src/modules/checkers/checkers.c +++ b/src/modules/checkers/checkers.c @@ -224,17 +224,19 @@ static int checkers_fragmenter(til_module_context_t *context, const til_fb_fragm  static void checkers_prepare_frame(til_module_context_t *context, til_stream_t *stream, unsigned ticks, til_fb_fragment_t **fragment_ptr, til_frame_plan_t *res_frame_plan)  { -	checkers_context_t	*ctxt = (checkers_context_t *)context; - -	/* XXX: note cpu_affinity is required when fill_module is used, to ensure module_contexts -	 * have a stable relationship to fragnum.  Otherwise the output would be unstable because the -	 * module contexts would be randomly distributed across the filled checkers frame-to-frame. -	 * This is unfortunate since cpu_affinity is likely to be slower than just letting the render -	 * threads render fragments in whatever order (the preferred default).  fill_module here -	 * is actually *the* reason til_frame_plan_t.cpu_affinity got implemented, before this there -	 * wasn't even a til_frame_plan_t container; a bare til_fragmenter_t was returned. +	/* XXX: once upon a time this used .cpu_affinity = 1, to +	 * get a stable mapping of per-cpu-context to filled cell +	 * via/fill_module.  But that slows things down +	 * substantially as-implemented in til_threads since it +	 * makes threads wait for their next fragnum to come up. +	 * Since seed-ifying everything, and the seed is the same +	 * across the contexts, they _should_ have identical +	 * outputs.  So I got rid of it for the perf gain, and +	 * modules which aren't behaving well WRT +	 * same-seeds-same-settings-but-different-output, fix +	 * them.  	 */ -	*res_frame_plan = (til_frame_plan_t){ .fragmenter = checkers_fragmenter, .cpu_affinity = !!ctxt->setup->fill_module }; +	*res_frame_plan = (til_frame_plan_t){ .fragmenter = checkers_fragmenter };  } | 
