diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2019-11-23 16:08:07 -0800 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2019-11-23 16:14:34 -0800 |
commit | ade362b53d721bc2e2c7a62a30c4345014e5f5ce (patch) | |
tree | 028914a89365c43047ecb9af1368d8c3304f7e5c /src/rototiller.h | |
parent | 796b3a8b0669ee5e09c6faba6614e3f228d36595 (diff) |
rototiller: pass num_cpus to .create_context()
Back in the day, there was no {create,destroy}_context(), so passing
num_cpus to just prepare_frame made sense. Modules then would
implicitly initialize themselves on the first prepare_frame() call
using a static initialized variable.
Since then things have been decomposed a bit for more sophisticated
(and cleaner) modules. It can be necessary to allocate per-cpu data
structures and the natural place to do that is @ create_context(). So
this commit wires that up.
A later commit will probably have to plumb a "current cpu" identifier
into the render_fragment() function. Because a per-cpu data structure
isn't particularly useful if you can't easily address it from within
your execution context.
Diffstat (limited to 'src/rototiller.h')
-rw-r--r-- | src/rototiller.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rototiller.h b/src/rototiller.h index ca2559a..e60eece 100644 --- a/src/rototiller.h +++ b/src/rototiller.h @@ -11,7 +11,7 @@ typedef struct settings_t settings; typedef struct setting_desc_t setting_desc_t; typedef struct rototiller_module_t { - void * (*create_context)(void); + void * (*create_context)(unsigned n_cpus); void (*destroy_context)(void *context); void (*prepare_frame)(void *context, unsigned n_cpus, fb_fragment_t *fragment, rototiller_fragmenter_t *res_fragmenter); void (*render_fragment)(void *context, fb_fragment_t *fragment); |