diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2022-07-21 22:03:41 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2022-07-21 22:03:41 -0700 |
commit | 75bdc9a1563056582866f5bb370abee4c1a27538 (patch) | |
tree | e4acd2a25463af65720fdf94bb5a0173975ebfc7 /src/modules | |
parent | cbfe780b20ced576c2e3d41361a9036210ab5c9b (diff) |
modules/{compose,rtv}: s/prepare_frame/render_fragment/
These modules have been doing their work in prepare_frame(), but
aren't actually threaded modules and don't return a frame plan
from prepare_frame() nor do they provide a render_fragment() to
complement the prepare_frame().
The convention thus far has been that single-threaded modules
just provide a render_fragment and by not providing a
prepare_frame they will be executed serially.
These two modules break the contract in a sense by using
prepare_frame() without following up with render_fragment().
I'm not sure why it happened that way, maybe at one time
prepare_frame() had access to some things that render_fragment()
didn't.
In any case, just make these use render_fragment() like any other
simple non-threaded module would.
This was actually causing a crash when n_cpus=1 because
module_render_fragment() was assuming the prepare_frame() branch
would include a render_fragment(). It should probably be
asserting as such.
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/compose/compose.c | 6 | ||||
-rw-r--r-- | src/modules/rtv/rtv.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/modules/compose/compose.c b/src/modules/compose/compose.c index ed0ed1c..ff32ac4 100644 --- a/src/modules/compose/compose.c +++ b/src/modules/compose/compose.c @@ -49,7 +49,7 @@ typedef struct compose_setup_t { static til_module_context_t * compose_create_context(unsigned seed, unsigned ticks, unsigned n_cpus, til_setup_t *setup); static void compose_destroy_context(til_module_context_t *context); -static void compose_prepare_frame(til_module_context_t *context, unsigned ticks, til_fb_fragment_t *fragment, til_frame_plan_t *res_frame_plan); +static void compose_render_fragment(til_module_context_t *context, unsigned ticks, unsigned cpu, til_fb_fragment_t *fragment); static int compose_setup(const til_settings_t *settings, til_setting_t **res_setting, const til_setting_desc_t **res_desc, til_setup_t **res_setup); static compose_setup_t compose_default_setup = { @@ -60,7 +60,7 @@ static compose_setup_t compose_default_setup = { til_module_t compose_module = { .create_context = compose_create_context, .destroy_context = compose_destroy_context, - .prepare_frame = compose_prepare_frame, + .render_fragment = compose_render_fragment, .name = "compose", .description = "Layered modules compositor", .setup = compose_setup, @@ -125,7 +125,7 @@ static void compose_destroy_context(til_module_context_t *context) } -static void compose_prepare_frame(til_module_context_t *context, unsigned ticks, til_fb_fragment_t *fragment, til_frame_plan_t *res_frame_plan) +static void compose_render_fragment(til_module_context_t *context, unsigned ticks, unsigned cpu, til_fb_fragment_t *fragment) { compose_context_t *ctxt = (compose_context_t *)context; diff --git a/src/modules/rtv/rtv.c b/src/modules/rtv/rtv.c index c90a824..3a8e7fc 100644 --- a/src/modules/rtv/rtv.c +++ b/src/modules/rtv/rtv.c @@ -63,7 +63,7 @@ typedef struct rtv_setup_t { static void setup_next_channel(rtv_context_t *ctxt, unsigned ticks); static til_module_context_t * rtv_create_context(unsigned seed, unsigned ticks, unsigned n_cpus, til_setup_t *setup); static void rtv_destroy_context(til_module_context_t *context); -static void rtv_prepare_frame(til_module_context_t *context, unsigned ticks, til_fb_fragment_t *fragment, til_frame_plan_t *res_frame_plan); +static void rtv_render_fragment(til_module_context_t *context, unsigned ticks, unsigned cpu, til_fb_fragment_t *fragment); static void rtv_finish_frame(til_module_context_t *context, unsigned ticks, til_fb_fragment_t *fragment); static int rtv_setup(const til_settings_t *settings, til_setting_t **res_setting, const til_setting_desc_t **res_desc, til_setup_t **res_setup); @@ -81,7 +81,7 @@ static til_module_t rtv_none_module = {}; til_module_t rtv_module = { .create_context = rtv_create_context, .destroy_context = rtv_destroy_context, - .prepare_frame = rtv_prepare_frame, + .render_fragment = rtv_render_fragment, .finish_frame = rtv_finish_frame, .name = "rtv", .description = "Rototiller TV", @@ -268,7 +268,7 @@ static void rtv_destroy_context(til_module_context_t *context) } -static void rtv_prepare_frame(til_module_context_t *context, unsigned ticks, til_fb_fragment_t *fragment, til_frame_plan_t *res_frame_plan) +static void rtv_render_fragment(til_module_context_t *context, unsigned ticks, unsigned cpu, til_fb_fragment_t *fragment) { rtv_context_t *ctxt = (rtv_context_t *)context; time_t now = time(NULL); |