Skip to content

Commit 6710b83

Browse files
committed
backend: Remove extras field from pisp_be_config
Remove the various extras fields from struct pisp_be_config. These fields are not used by the driver nor the hardware, so do not belong in this structure. Signed-off-by: Naushir Patuck <[email protected]>
1 parent 6404127 commit 6710b83

File tree

6 files changed

+106
-96
lines changed

6 files changed

+106
-96
lines changed

src/libpisp/backend/backend.cpp

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ void BackEnd::SetGlobal(pisp_be_global_config const &global)
4444
if (global.rgb_enables & PISP_BE_RGB_ENABLE_HOG)
4545
throw std::runtime_error("HOG output is not supported.");
4646

47-
be_config_.dirty_flags_bayer |=
47+
be_config_extra_.dirty_flags_bayer |=
4848
(global.bayer_enables & ~be_config_.global.bayer_enables); // label anything newly enabled as dirty
49-
be_config_.dirty_flags_rgb |=
49+
be_config_extra_.dirty_flags_rgb |=
5050
(global.rgb_enables & ~be_config_.global.rgb_enables); // label anything newly enabled as dirty
5151
be_config_.global = global;
5252
be_config_.global.pad[0] = be_config_.global.pad[1] = be_config_.global.pad[2] = 0;
53-
be_config_.dirty_flags_extra |= PISP_BE_DIRTY_GLOBAL;
53+
be_config_extra_.dirty_flags_extra |= PISP_BE_DIRTY_GLOBAL;
5454
}
5555

5656
void BackEnd::GetGlobal(pisp_be_global_config &global) const
@@ -61,7 +61,7 @@ void BackEnd::GetGlobal(pisp_be_global_config &global) const
6161
void BackEnd::SetInputFormat(pisp_image_format_config const &input_format)
6262
{
6363
be_config_.input_format = input_format;
64-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_INPUT;
64+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_INPUT;
6565
retile_ = true;
6666
}
6767

@@ -73,41 +73,41 @@ void BackEnd::SetInputBuffer(pisp_be_input_buffer_config const &input_buffer)
7373
void BackEnd::SetDecompress(pisp_decompress_config const &decompress)
7474
{
7575
be_config_.decompress = decompress;
76-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DECOMPRESS;
76+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DECOMPRESS;
7777
}
7878

7979
void BackEnd::SetDpc(pisp_be_dpc_config const &dpc)
8080
{
8181
be_config_.dpc = dpc;
8282
be_config_.dpc.pad = 0;
83-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DPC;
83+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DPC;
8484
}
8585

8686
void BackEnd::SetGeq(pisp_be_geq_config const &geq)
8787
{
8888
be_config_.geq = geq;
8989
be_config_.geq.slope_sharper &= (PISP_BE_GEQ_SLOPE | PISP_BE_GEQ_SHARPER);
90-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_GEQ;
90+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_GEQ;
9191
}
9292

9393
void BackEnd::SetTdnInputFormat(pisp_image_format_config const &tdn_input_format)
9494
{
9595
be_config_.tdn_input_format = tdn_input_format;
96-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_INPUT; // TDN input address will always be written
96+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_INPUT; // TDN input address will always be written
9797
finalise_tiling_ = true;
9898
}
9999

100100
void BackEnd::SetTdnDecompress(pisp_decompress_config const &tdn_decompress)
101101
{
102102
be_config_.tdn_decompress = tdn_decompress;
103-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_DECOMPRESS;
103+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_DECOMPRESS;
104104
}
105105

106106
void BackEnd::SetTdn(pisp_be_tdn_config const &tdn)
107107
{
108108
be_config_.tdn = tdn;
109109
be_config_.tdn.pad = 0;
110-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN;
110+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN;
111111
}
112112

113113
void BackEnd::GetTdn(pisp_be_tdn_config &tdn) const
@@ -118,13 +118,13 @@ void BackEnd::GetTdn(pisp_be_tdn_config &tdn) const
118118
void BackEnd::SetTdnCompress(pisp_compress_config const &tdn_compress)
119119
{
120120
be_config_.tdn_compress = tdn_compress;
121-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_COMPRESS;
121+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_COMPRESS;
122122
}
123123

124124
void BackEnd::SetTdnOutputFormat(pisp_image_format_config const &tdn_output_format)
125125
{
126126
be_config_.tdn_output_format = tdn_output_format;
127-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_OUTPUT; // TDN output address will always be written
127+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TDN_OUTPUT; // TDN output address will always be written
128128
finalise_tiling_ = true;
129129
}
130130

@@ -137,14 +137,14 @@ void BackEnd::SetSdn(pisp_be_sdn_config const &sdn)
137137
{
138138
be_config_.sdn = sdn;
139139
be_config_.sdn.pad = 0;
140-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_SDN;
140+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_SDN;
141141
}
142142

143143
void BackEnd::SetBlc(pisp_bla_config const &blc)
144144
{
145145
be_config_.blc = blc;
146146
be_config_.blc.pad[0] = be_config_.blc.pad[1] = 0;
147-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_BLC;
147+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_BLC;
148148
}
149149

150150
void BackEnd::GetBlc(pisp_bla_config &blc) const
@@ -156,7 +156,7 @@ void BackEnd::SetStitchInputFormat(pisp_image_format_config const &stitch_input_
156156
{
157157
be_config_.stitch_input_format = stitch_input_format;
158158
be_config_.stitch.pad = 0;
159-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_INPUT;
159+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_INPUT;
160160
finalise_tiling_ = true;
161161
}
162162

@@ -168,25 +168,25 @@ void BackEnd::GetStitchInputFormat(pisp_image_format_config &stitch_input_format
168168
void BackEnd::SetStitchDecompress(pisp_decompress_config const &stitch_decompress)
169169
{
170170
be_config_.stitch_decompress = stitch_decompress;
171-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_DECOMPRESS;
171+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_DECOMPRESS;
172172
}
173173

174174
void BackEnd::SetStitch(pisp_be_stitch_config const &stitch)
175175
{
176176
be_config_.stitch = stitch;
177-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH;
177+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH;
178178
}
179179

180180
void BackEnd::SetStitchCompress(pisp_compress_config const &stitch_compress)
181181
{
182182
be_config_.stitch_compress = stitch_compress;
183-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_COMPRESS;
183+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_COMPRESS;
184184
}
185185

186186
void BackEnd::SetStitchOutputFormat(pisp_image_format_config const &stitch_output_format)
187187
{
188188
be_config_.stitch_output_format = stitch_output_format;
189-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_OUTPUT;
189+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_STITCH_OUTPUT;
190190
finalise_tiling_ = true;
191191
}
192192

@@ -198,14 +198,14 @@ void BackEnd::GetStitchOutputFormat(pisp_image_format_config &stitch_output_form
198198
void BackEnd::SetCdn(pisp_be_cdn_config const &cdn)
199199
{
200200
be_config_.cdn = cdn;
201-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_CDN;
201+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_CDN;
202202
}
203203

204204
void BackEnd::SetWbg(pisp_wbg_config const &wbg)
205205
{
206206
be_config_.wbg = wbg;
207207
be_config_.wbg.pad[0] = be_config_.wbg.pad[1] = 0;
208-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_WBG;
208+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_WBG;
209209
}
210210

211211
void BackEnd::GetWbg(pisp_wbg_config &wbg)
@@ -218,23 +218,23 @@ void BackEnd::SetLsc(pisp_be_lsc_config const &lsc, pisp_be_lsc_extra lsc_extra)
218218
// Should not need a finalise_tile if only the cell coefficients have changed.
219219
finalise_tiling_ |= be_config_.lsc.grid_step_x != lsc.grid_step_x || be_config_.lsc.grid_step_y != lsc.grid_step_y;
220220
be_config_.lsc = lsc;
221-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_LSC;
222-
be_config_.lsc_extra = lsc_extra;
221+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_LSC;
222+
be_config_extra_.lsc = lsc_extra;
223223
}
224224

225225
void BackEnd::SetCac(pisp_be_cac_config const &cac, pisp_be_cac_extra cac_extra)
226226
{
227227
finalise_tiling_ |= be_config_.cac.grid_step_x != cac.grid_step_x || be_config_.cac.grid_step_y != cac.grid_step_y;
228228
be_config_.cac = cac;
229-
be_config_.cac_extra = cac_extra;
230-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_CAC;
229+
be_config_extra_.cac = cac_extra;
230+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_CAC;
231231
}
232232

233233
void BackEnd::SetDebin(pisp_be_debin_config const &debin)
234234
{
235235
be_config_.debin = debin;
236236
be_config_.debin.pad[0] = be_config_.debin.pad[1] = 0;
237-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DEBIN;
237+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DEBIN;
238238
}
239239

240240
void BackEnd::GetDebin(pisp_be_debin_config &debin)
@@ -245,14 +245,14 @@ void BackEnd::GetDebin(pisp_be_debin_config &debin)
245245
void BackEnd::SetTonemap(pisp_be_tonemap_config const &tonemap)
246246
{
247247
be_config_.tonemap = tonemap;
248-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TONEMAP;
248+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_TONEMAP;
249249
}
250250

251251
void BackEnd::SetDemosaic(pisp_be_demosaic_config const &demosaic)
252252
{
253253
be_config_.demosaic = demosaic;
254254
be_config_.demosaic.pad[0] = be_config_.demosaic.pad[1] = 0;
255-
be_config_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DEMOSAIC;
255+
be_config_extra_.dirty_flags_bayer |= PISP_BE_BAYER_ENABLE_DEMOSAIC;
256256
}
257257

258258
void BackEnd::GetDemosaic(pisp_be_demosaic_config &demosaic) const
@@ -264,21 +264,21 @@ void BackEnd::SetCcm(pisp_be_ccm_config const &ccm)
264264
{
265265
be_config_.ccm = ccm;
266266
be_config_.ccm.pad[0] = be_config_.ccm.pad[1] = 0;
267-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_CCM;
267+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_CCM;
268268
}
269269

270270
void BackEnd::SetSatControl(pisp_be_sat_control_config const &sat_control)
271271
{
272272
be_config_.sat_control = sat_control;
273273
be_config_.sat_control.pad = 0;
274-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_SAT_CONTROL;
274+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_SAT_CONTROL;
275275
}
276276

277277
void BackEnd::SetYcbcr(pisp_be_ccm_config const &ycbcr)
278278
{
279279
be_config_.ycbcr = ycbcr;
280280
be_config_.ycbcr.pad[0] = be_config_.ycbcr.pad[1] = 0;
281-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_YCBCR;
281+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_YCBCR;
282282
}
283283

284284
void BackEnd::GetYcbcr(pisp_be_ccm_config &ycbcr)
@@ -290,7 +290,7 @@ void BackEnd::SetFalseColour(pisp_be_false_colour_config const &false_colour)
290290
{
291291
be_config_.false_colour = false_colour;
292292
be_config_.false_colour.pad[0] = be_config_.false_colour.pad[1] = be_config_.false_colour.pad[2] = 0;
293-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_FALSE_COLOUR;
293+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_FALSE_COLOUR;
294294
}
295295

296296
void BackEnd::SetSharpen(pisp_be_sharpen_config const &sharpen)
@@ -303,7 +303,7 @@ void BackEnd::SetSharpen(pisp_be_sharpen_config const &sharpen)
303303
be_config_.sharpen.pad4[0] = be_config_.sharpen.pad4[1] = be_config_.sharpen.pad4[2] = 0;
304304
be_config_.sharpen.pad5 = be_config_.sharpen.pad6 = be_config_.sharpen.pad7 = be_config_.sharpen.pad8 =
305305
be_config_.sharpen.pad9 = 0;
306-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_SHARPEN;
306+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_SHARPEN;
307307
}
308308

309309
void BackEnd::GetSharpen(pisp_be_sharpen_config &sharpen)
@@ -315,20 +315,20 @@ void BackEnd::SetShFcCombine(pisp_be_sh_fc_combine_config const &sh_fc_combine)
315315
{
316316
be_config_.sh_fc_combine = sh_fc_combine;
317317
be_config_.sh_fc_combine.pad = 0;
318-
be_config_.dirty_flags_extra |= PISP_BE_DIRTY_SH_FC_COMBINE;
318+
be_config_extra_.dirty_flags_extra |= PISP_BE_DIRTY_SH_FC_COMBINE;
319319
}
320320

321321
void BackEnd::SetYcbcrInverse(pisp_be_ccm_config const &ycbcr_inverse)
322322
{
323323
be_config_.ycbcr_inverse = ycbcr_inverse;
324324
be_config_.ycbcr_inverse.pad[0] = be_config_.ycbcr_inverse.pad[1] = 0;
325-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_YCBCR_INVERSE;
325+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_YCBCR_INVERSE;
326326
}
327327

328328
void BackEnd::SetGamma(pisp_be_gamma_config const &gamma)
329329
{
330330
be_config_.gamma = gamma;
331-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_GAMMA;
331+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_GAMMA;
332332
}
333333

334334
void BackEnd::GetGamma(pisp_be_gamma_config &gamma)
@@ -338,15 +338,15 @@ void BackEnd::GetGamma(pisp_be_gamma_config &gamma)
338338

339339
void BackEnd::SetCrop(pisp_be_crop_config const &crop)
340340
{
341-
be_config_.crop = crop;
342-
be_config_.dirty_flags_extra |= PISP_BE_DIRTY_CROP;
341+
be_config_extra_.crop = crop;
342+
be_config_extra_.dirty_flags_extra |= PISP_BE_DIRTY_CROP;
343343
retile_ = true;
344344
}
345345

346346
void BackEnd::SetCsc(unsigned int i, pisp_be_ccm_config const &csc)
347347
{
348348
be_config_.csc[i] = csc;
349-
be_config_.dirty_flags_bayer |= PISP_BE_RGB_ENABLE_CSC(i);
349+
be_config_extra_.dirty_flags_bayer |= PISP_BE_RGB_ENABLE_CSC(i);
350350
}
351351

352352
void BackEnd::GetCsc(unsigned int i, pisp_be_ccm_config &csc)
@@ -358,31 +358,31 @@ void BackEnd::SetDownscale(unsigned int i, pisp_be_downscale_config const &downs
358358
pisp_be_downscale_extra const &downscale_extra)
359359
{
360360
be_config_.downscale[i] = downscale;
361-
be_config_.downscale_extra[i] = downscale_extra;
362-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_DOWNSCALE(i);
361+
be_config_extra_.downscale[i] = downscale_extra;
362+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_DOWNSCALE(i);
363363
retile_ = true;
364364
}
365365

366366
void BackEnd::SetDownscale(unsigned int i, pisp_be_downscale_extra const &downscale_extra)
367367
{
368-
be_config_.downscale_extra[i] = downscale_extra;
369-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_DOWNSCALE(i);
368+
be_config_extra_.downscale[i] = downscale_extra;
369+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_DOWNSCALE(i);
370370
retile_ = true;
371371
}
372372

373373
void BackEnd::SetResample(unsigned int i, pisp_be_resample_config const &resample,
374374
pisp_be_resample_extra const &resample_extra)
375375
{
376376
be_config_.resample[i] = resample;
377-
be_config_.resample_extra[i] = resample_extra;
378-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_RESAMPLE(i);
377+
be_config_extra_.resample[i] = resample_extra;
378+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_RESAMPLE(i);
379379
retile_ = true;
380380
}
381381

382382
void BackEnd::SetResample(unsigned int i, pisp_be_resample_extra const &resample_extra)
383383
{
384-
be_config_.resample_extra[i] = resample_extra;
385-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_RESAMPLE(i);
384+
be_config_extra_.resample[i] = resample_extra;
385+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_RESAMPLE(i);
386386
retile_ = true;
387387
}
388388

@@ -391,7 +391,7 @@ void BackEnd::SetOutputFormat(unsigned int i, pisp_be_output_format_config const
391391
PISP_ASSERT(i < variant_.BackEndNumBranches(0));
392392
be_config_.output_format[i] = output_format;
393393
be_config_.output_format[i].pad[0] = be_config_.output_format[i].pad[1] = be_config_.output_format[i].pad[2] = 0;
394-
be_config_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_OUTPUT(i);
394+
be_config_extra_.dirty_flags_rgb |= PISP_BE_RGB_ENABLE_OUTPUT(i);
395395
// Should only need a retile if the transform has changed, othwise a finalise_tile will do.
396396
retile_ = true;
397397
}

src/libpisp/backend/backend.hpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,19 @@ class BackEnd final
148148
}
149149

150150
private:
151+
struct BeConfigExtra
152+
{
153+
// Non-register fields:
154+
pisp_be_lsc_extra lsc;
155+
pisp_be_cac_extra cac;
156+
pisp_be_downscale_extra downscale[PISP_BACK_END_NUM_OUTPUTS];
157+
pisp_be_resample_extra resample[PISP_BACK_END_NUM_OUTPUTS];
158+
pisp_be_crop_config crop;
159+
uint32_t dirty_flags_bayer; //these use pisp_be_bayer_enable
160+
uint32_t dirty_flags_rgb; //use pisp_be_rgb_enable
161+
uint32_t dirty_flags_extra; //these use pisp_be_dirty_t
162+
};
163+
151164
void finaliseConfig();
152165
void updateSmartResize();
153166
void updateTiles();
@@ -160,6 +173,7 @@ class BackEnd final
160173
Config config_;
161174
const PiSPVariant variant_;
162175
pisp_be_config be_config_;
176+
BeConfigExtra be_config_extra_;
163177
pisp_image_format_config max_input_;
164178
bool retile_;
165179
bool finalise_tiling_;

src/libpisp/backend/backend_debug.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ void BackEnd::SetJsonConfig(const std::string &json_str)
546546
}
547547

548548
// Clear any dirty flags so no reconfiguration happens on the next Prepare() call.
549-
be_config_.dirty_flags_bayer = be_config_.dirty_flags_rgb = be_config_.dirty_flags_extra = 0;
549+
be_config_extra_.dirty_flags_bayer = be_config_extra_.dirty_flags_rgb = be_config_extra_.dirty_flags_extra = 0;
550550
// But do retile the pipeline to get the tile structures setup correctly.
551551
retile_ = true;
552552
}

0 commit comments

Comments
 (0)