summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/checkers/checkers.c22
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 };
}
© All Rights Reserved