From 2f3444dc1410a43627a67fc8275244358b4225cc Mon Sep 17 00:00:00 2001 From: Shunyong Yang Date: Tue, 9 Jun 2026 16:56:22 +0800 Subject: [PATCH] IPU7 release for iot on 2026-06-09 Signed-off-by: Shunyong Yang --- config/linux/ipu8/gcss/OV13B10_09B13.IPU8.bin | Bin 386996 -> 387632 bytes .../linux/ipu8/gcss/OV13B10_09B13_2M.IPU8.bin | Bin 245476 -> 245884 bytes .../ipu75xa/FragmentsConfigurator.cpp | 146 +- .../ipu_desc/ipu75xa/FragmentsConfigurator.h | 28 +- .../ipu75xa/GraphResolutionConfigurator.cpp | 645 +- .../ipu75xa/GraphResolutionConfigurator.h | 65 +- .../GraphResolutionConfiguratorInclude.h | 3 + .../ipu75xa/GraphTuningModeConfigurator.cpp | 30 + .../ipu75xa/GraphTuningModeConfigurator.h | 49 + ...75xaGraphResolutionConfiguratorAutogen.cpp | 4 +- ...pu75xaGraphResolutionConfiguratorAutogen.h | 2 +- .../ipu75xa/Ipu75xaStaticGraphAutogen.cpp | 1294 +- .../ipu75xa/Ipu75xaStaticGraphAutogen.h | 256 +- .../ipu75xa/Ipu75xaStaticGraphBinaryAutogen.h | 3 +- .../Ipu75xaStaticGraphDataPreloadAutogen.h | 82 +- .../Ipu75xaStaticGraphReaderAutogen.cpp | 87 +- .../ipu75xa/Ipu75xaStaticGraphReaderAutogen.h | 1 + .../ipu75xa/Ipu75xaStaticGraphTypesAutogen.h | 35 +- .../Ipu75xaTerminalDescriptorAutogen.cpp | 4 +- .../ipu_desc/ipu7x/FragmentsConfigurator.cpp | 146 +- .../ipu_desc/ipu7x/FragmentsConfigurator.h | 28 +- .../ipu7x/GraphResolutionConfigurator.cpp | 645 +- .../ipu7x/GraphResolutionConfigurator.h | 65 +- .../GraphResolutionConfiguratorInclude.h | 3 + .../ipu7x/GraphTuningModeConfigurator.cpp | 30 + .../ipu7x/GraphTuningModeConfigurator.h | 49 + ...pu7xGraphResolutionConfiguratorAutogen.cpp | 4 +- .../Ipu7xGraphResolutionConfiguratorAutogen.h | 2 +- .../ipu7x/Ipu7xStaticGraphAutogen.cpp | 1116 +- .../ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.h | 195 +- .../ipu7x/Ipu7xStaticGraphBinaryAutogen.h | 1 + .../Ipu7xStaticGraphDataPreloadAutogen.h | 62 +- .../ipu7x/Ipu7xStaticGraphReaderAutogen.cpp | 67 +- .../ipu7x/Ipu7xStaticGraphReaderAutogen.h | 1 + .../ipu7x/Ipu7xStaticGraphTypesAutogen.h | 32 +- .../ipu_desc/ipu8/FragmentsConfigurator.cpp | 146 +- modules/ipu_desc/ipu8/FragmentsConfigurator.h | 28 +- .../ipu8/GraphResolutionConfigurator.cpp | 645 +- .../ipu8/GraphResolutionConfigurator.h | 65 +- .../ipu8/GraphResolutionConfiguratorInclude.h | 7 + .../ipu8/GraphTuningModeConfigurator.cpp | 30 + .../ipu8/GraphTuningModeConfigurator.h | 49 + ...Ipu8GraphResolutionConfiguratorAutogen.cpp | 980 +- .../Ipu8GraphResolutionConfiguratorAutogen.h | 6 +- .../ipu_desc/ipu8/Ipu8StaticGraphAutogen.cpp | 63349 +++++++++++----- .../ipu_desc/ipu8/Ipu8StaticGraphAutogen.h | 7798 +- .../ipu8/Ipu8StaticGraphBinaryAutogen.h | 15 + .../ipu8/Ipu8StaticGraphDataPreloadAutogen.h | 339 +- .../ipu8/Ipu8StaticGraphReaderAutogen.cpp | 739 +- .../ipu8/Ipu8StaticGraphReaderAutogen.h | 3 +- .../ipu8/Ipu8StaticGraphTypesAutogen.h | 185 +- .../ipu8/Ipu8TerminalDescriptorAutogen.cpp | 103 +- .../ipu8/Ipu8TerminalDescriptorAutogen.h | 33 + 53 files changed, 54897 insertions(+), 24803 deletions(-) create mode 100644 modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.cpp create mode 100644 modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.h create mode 100644 modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.cpp create mode 100644 modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.h create mode 100644 modules/ipu_desc/ipu8/GraphTuningModeConfigurator.cpp create mode 100644 modules/ipu_desc/ipu8/GraphTuningModeConfigurator.h diff --git a/config/linux/ipu8/gcss/OV13B10_09B13.IPU8.bin b/config/linux/ipu8/gcss/OV13B10_09B13.IPU8.bin index b605b475335eb4b976fdaee2a2bbf9183094d5b2..243c6b8d678f52110ccf90097654862fa5c115d8 100644 GIT binary patch delta 3763 zcma);e{2-h7RNiYGxpX_%TTuMZoATHX-SQsLtZO2R9y_DBSM_G+XPIJzPMo!PiI z(fy<8`JT@?_ulV4GrMnnR-c)vSIX$;ih3>e2Kq=)KHd4@!|yyTl)dz2YzER5A=rOq z_lT%Kx2Q@a2c~GDzDQYFA?U9Rfm%s`;4MvMWe0H~`Al@te5NrB=N7Ia4fX{T6zrwC z*%XG&T0vJN1tqspU6U*{J>;h4OOuY=}#3jLXMO)t2C=`xlX9aPEJzO0q2erHd{jjn~ zh9}BbAv5kOkS({+(PUBDK6W>*vQP&?!^Lvdb}Z+yoH*jkt6;&33h1wBN7*UQZ42%H zfOaR=N3M*c%jcS1HU2OS*+4Mm9%QT^e@N1f}{t10J0vq9s zU5cbe8FKhh+~w-GN|D?oL)!Xqmq&A@h<1u04-I1E>>d}>?0 zM(~|+veg2kh&A@V+62<+PZX|U6miF%T+O5UdpwF5WLMn9qcV4U6!FO3^dAoOcFKc@ zOZJhy9LO>EdlWIs{^d;`H8$Z<#4G#O&v?}Qj7Jshdj4DC9&E(kIUym4_CJxh2)a5o zd-t5sRWdu#WiKM<_^-n2Ro;*}B~U&gNzOoxxW2}Pj<|Jg3^uv6LuwQ+gKqPd>D|nQ@G_=8NR}8+9#jLkz2WS?UqsdJ z=CJ9dt@DZ1f_-kgxCN3YB-`9B20^_Re=%Hpng|XS4lQ!af84_=%+f zc0jCkj*W_T&@EZ}CZ{BM3GXvGcI)^rKRpt#XMPqmNdG$IT*!JJ?D>>amNxKxbe{7d zJhQyhV52Vn;2G6f9w>$MA-sY7Z3fIgN$#WDX|D`M^SkxGT&Qq-1J7__e%;|p-ls$6@HR(2>n(BoYfklF z3|RlA02?s*3aRwGoB=yoC9whPZQ+zqi;VHhKVb*sx@58k;3f{O4`H9yZjhKyKiN{`(2X2CH;GSCyIy9OHnoWZxzE-~!*g*WAu|_i zALbMk1}Az#+B+m_&R|MrMs6M9z}hLi1^Gp93&&sMK!sy%7{&Jzn)KSqpKwXs?(i9} J9sa)B@_)m#a|Zwb delta 3664 zcmb_fe{56N70!F_zW63Q$4=r9n>dL}%nzvuUW5@;teR8UNN8DKYonFXtnQkQGCjIP z%TTD8$fl09Rn`&Tq?btpITNfuL^TsKP>Kd&OPTl-#O<#k)5a?J6n&-;BW7>>rWilPD|SR>piL8?U%}0Kl}V5 zDM;Oj0VL%Q61_Z1{BktV)?8NhOYmTSM!2lZcF5F+$W8xxaL~wdMZ=kO!Vqr=ky{J6 z;TK>iCWRrZm^j`e4*tdvxfdn82Y$){7Q2Z&j@Pn`EhND_g7#ljY?rK!_ljtkiJyV_{%D8LCXWK(W%qy)~pgF4|tOTn5?LNhe^T_BB-iv8M4 zXWHa@$cOjsvt6=ZQQM^4l@4DW8Kd`*HIH$a-9+rgY^SM}vQ9HMr1O^EDtF5ies!8( zE%!jQ3*{uf+h?s@FUM4PwS1&|&_nt=-(x5Rbc9Z~$=hk?S*01wm_#l9~uiG z-y1fC_yiikxz1k!wV_YZHu`#tI>*}rjw6^%#r~8lT&yj(R&7-`IN5T=Kle!#J*sY_ zjl*;AL6$bj+VX_@FPRRUklHPO2JKPkp&jZf`lauvJtE>Ija5#6-ls$jJc{&tD9kGop&E-5bME_e8CWog}gC5s#6|E}-?P`LU7G><~y=c#YTA>4dn$-d-<)34`jambn8{wS^rt;^;vOUPAT^0 zTd?`BEuf&>WioyO(WlQS=jUvDg8mUJT+03`1z1f)6=%?fGZyw#_W;(pyKY=Mqg z5D@mmexN@bcCtGUgmaI*&Zn#0r+Ce%aL!M|SbTIpe2K&`_bS#WZ=(nKFwdn1Dg!n6 zig0Rtv9jk7P&k_`BsTdgs&0bMCc`y|AQH{$!TVXV(r}TM6DYZ$?yEN v1Qcr15!8&>rFirfD|v{@St6&MxyXXyH&VA z3b`@6u*@6y+gbZC-=M(iofzg(BK(-kKT&W2@g59SA&K9*>JoEDh}hBqZ*u$Lc!P+m z8}*`rdw1%Gq^W+11jzD<@Dr{J-rI|;gtUX~1q{VqN&MF#OEmLSs0R+qK~NeKSkvp{ zGVpza_H%T0n~gf29hEE3^^ zs}`}a$Eg2itDD)QmASQQOi+{;<1b5ablO`0R*Lov9? zJpwZ!5sN9CqAlfG1W1Q8N6d!|JgVD-+8P6;S#yL{F$#kn{g9DF{6)^DNN=FF2_Q?F zBjzLn$7gMVzGvH#j*p+e?P`}miKS2)@~tBN=}P^2!#U)nD16sCfRh`yU8_5S6pq1C zn}+BAtKVYa%{zE&Ce=s`@?p&pXnZN69f@Y&G|E6Q`K%Wxb~9k# zK`sL$ninVyvHJC8VsPH@*2~(f47mInzpwiM^S?5Hh3Njr2dM5afTl3tZAV_BqQnqGXb$t|gMP?l%0g%o^WMXL z$f|B3G>iHAQS>4mxLG}lUO*gOLK_U<6E|NoP|CZBZ0BiQIrRp**kmp26Aw}v5`;>6 z0X^ADh?9%Rk5C0D#?!Dotk7%K%FIPH+(K{?-HVs=bHwrH*Oudfb$^6ds{1A^yR~o7 zMyL|{8y(|_DVc=Vv^3O*KDxp+M+opkg!2OBVmC=T-o>$`WNBW6B~A2lEa}+OJ_LF1 zNMG|0r9m2JQF|++BV2|?B`fqglBk5w9qFnh#<@+3wY=kp)e3!rd4DI@55*5{U%X)X zlBIfmOG6|}L&?f=>2n{#8uHRtRv5JAkC5iHku>=qX76qLH;(P?nJpilj<|Aa$C~l! zFz;=PjED5~=zgBf_)oRXK%`ZGd@JQRv;!n7A=#h&-my62MSg30ssI2 delta 2204 zcmb7FZ){Ul6yJUKwY`kje{3DC7HHy7Ob9-p1jxYDWQIyW961lnAU+!Xt#3&Y&R}wI48Q46r)<9Jur6E1xMlh;qHfm%V(5)Ghtv{!fr6IavfCt3*MOGE9rt z)tP}xI0i3z9)TihhHH|-3ajiyp&QJtms*oRys1|zhMbsw_> z36ILF`v`-aoMdCCooEuqG;Tx59yXg&jO?SE+$0Bv98jV7HcE$~q zSqx4E*TDuwVa+$Ks-933WF_OA(IcI`{=jaLRpL-pG3Ttkl64qJ&)oD{@$j;H+plDv1lVNwqYLnxTZqS@F6dH8aI%&5kG{iw|)Yyp_ zwUp3k48HfTgIkS?8&m@^h(y}h_zJr!7t!5=xH5^^V?Wsur#qa>EXMF$*?%V#NuAwH%MAgfCPW~2-)V`lo82VX^lWK!?pDRv=(;4!M)7O1VUDnAGe0&WG2T8}8-gyTWS;FLU4m(v^6DEjZD_v{7O-q} z@f7}+u+)T-m8iWys)ynNX(d#u;-fu^$%+@kQjjkR(q8_1gl-j_9^;{1#NI?)Q^eS~ zT(U9ZJ|jjXiWp5ggPSBvJzTkz4C>nS#VyjcF#6Tb7wVF&j|IJahBOP2njO24M507Y z68ja7DitCB!!UpOFd}hp<8mU1gZ)!LAiMv3JPdq1dK4HtEAw+dN<)y{9^|8!iD}$c zzIt#9C^QZAUSsvD?NAMr`kiDcYdT@?h{eR5J+mI2*l&(CaO_cHdGg*!Z5(=nEbd0A zB_- #include -Ipu8FragmentsConfigurator::Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : - _staticGraph(staticGraph), _node(node), _numberOfFragments(numberOfFragments) +Gen2FragmentsConfigurator::Gen2FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + _staticGraph(staticGraph), _node(node), _numberOfFragments(numberOfFragments) { } -StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vector& smurfKernels) +StaticGraphStatus Gen2FragmentsConfigurator::configureFragments(std::vector& smurfKernels) { if (_staticGraph == nullptr || _node == nullptr || _numberOfFragments < 1) { @@ -61,7 +61,10 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vectornodeKernels.kernelList[j - 1].fragment_descs; uint32_t prevKernelUuid = j == 0 ? 0 : _node->nodeKernels.kernelList[j - 1].run_kernel.kernel_uuid; - uint32_t referenceKernel = GraphResolutionConfiguratorHelper::getReferenceKernel(runKernel->kernel_uuid); + int32_t additionalFeaturesBit = 0; + _staticGraph->getAdditionalFeaturesBit(&additionalFeaturesBit); + uint32_t referenceKernel = GraphResolutionConfiguratorHelper::getReferenceKernel(runKernel->kernel_uuid, additionalFeaturesBit); + if (referenceKernel != 0) { // Special reference kernel @@ -136,10 +139,12 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vector horizontal_offset_max) { - double s_factor = (fragment_input_width + 0.5 + static_cast(fragment_start_x)) / - (0.5 + fragment_output_width + 2.0 * ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) - (1.0 + 1.0 / 128)); + double s_factor_f = scaling_ratio_f; + + while (horizontal_offset_fxp > horizontal_offset_max) + { + s_factor_f = (fragment_input_width + 0.5 + static_cast(fragment_start_x)) / + (0.5 + fragment_output_width + 2.0 * ceil((static_cast(fragment_start_x) / s_factor_f / 2.0)) - (1.0 + 1.0 / 128)); - // floor the value of s_factor according to the precision of 2^16 - s_factor = floor(s_factor * ratio_prec) / ratio_prec; + // floor the value of s_factor according to the precision of 2^16 + s_factor_f = floor(s_factor_f * ratio_prec) / ratio_prec; - adjusted_scaling_ratio_f = std::min(adjusted_scaling_ratio_f, s_factor); + // Update horizontal_offset_fxp and horizontal_offset_max + double horizontal_offset_f = (s_factor_f - 1.0) / 2.0 + (2.0 * s_factor_f * ceil(static_cast(fragment_start_x / s_factor_f / 2.0)) - fragment_start_x); + double horizontal_offset_max_f = fragment_input_width - fragment_output_width * s_factor_f + s_factor_f * (1.0 + 1.0 / 128); + + horizontal_offset_fxp = static_cast(floor(horizontal_offset_f * ratio_prec)); + horizontal_offset_max = static_cast(floor(horizontal_offset_max_f * ratio_prec)); + } + + adjusted_scaling_ratio_f = std::min(adjusted_scaling_ratio_f, s_factor_f); } } - if (runKernel->enable == 0) + if (runKernel->enable == 1) { for (int32_t stripe = leftNonVanishedStripe; stripe <= rightNonVanishedStripe; stripe++) { @@ -263,6 +280,14 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsDownscaler(StaticGra } } + // Now update output start according to new scale factor + for (int32_t stripe = leftNonVanishedStripe; stripe <= rightNonVanishedStripe; stripe++) + { + // Start of output is rounded up since this is what b2i_ds does (Creates pixels starting from the pixel after) + double value = kernelFragments[stripe].fragmentStartX / adjusted_scaling_ratio_f / 2; + _outputStartX[runKernel->kernel_uuid][stripe] = static_cast(ceil(value)) * 2; + } + // Set the adjusted factor for PAL int32_t adjusted_scaling_ratio = static_cast(adjusted_scaling_ratio_f * ratio_prec); @@ -281,12 +306,9 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsDownscaler(StaticGra return StaticGraphStatus::SG_OK; } -bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmentDesc* stripe, int32_t stripeIndex, double scaleFactor, StaticGraphRunKernel* runKernel) +bool Gen2FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmentDesc* stripe, int32_t stripeIndex, double scaleFactor, StaticGraphRunKernel* runKernel) { - const double ratio_prec = 1U << GraphResolutionConfigurator::SCALE_PREC; - int scaling_ratio = (int)ceil((1 / scaleFactor) * (double)(1U << GraphResolutionConfigurator::SCALE_PREC)); - const double scaling_ratio_f = static_cast(scaling_ratio) / ratio_prec; int32_t offset_common = ((scaling_ratio - (static_cast(1U) << GraphResolutionConfigurator::SCALE_PREC)) >> 1); @@ -300,15 +322,18 @@ bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmen orig_horizontal_offset = offset_common; } - const uint16_t fragment_start_x = stripe->fragmentStartX; - const double calc = ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) * 2.0; //2 * ceil(x/2) means round up to a closest even number - double horizontal_offset = (static_cast(orig_horizontal_offset) / ratio_prec) + static_cast(scaling_ratio_f * calc - static_cast(fragment_start_x)); + // uncomment these lines in order to check if constraints are actually met. + // + // const double ratio_prec = 1U << GraphResolutionConfigurator::SCALE_PREC; + // const double scaling_ratio_f = static_cast(scaling_ratio) / ratio_prec; + // const uint16_t fragment_start_x = stripe->fragmentStartX; + // const double calc = ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) * 2.0; //2 * ceil(x/2) means round up to a closest even number + // double horizontal_offset = (static_cast(orig_horizontal_offset) / ratio_prec) + static_cast(scaling_ratio_f * calc - static_cast(fragment_start_x)); + // int32_t horizontal_offset_fxp = static_cast(floor(horizontal_offset * ratio_prec)); const int32_t fragment_input_width = stripe->fragmentInputWidth; const int32_t fragment_output_width = stripe->fragmentOutputWidth; - int32_t horizontal_offset_fxp = static_cast(floor(horizontal_offset * ratio_prec)); - //1 int32_t horizontal_offset_min = 0; int32_t horizontal_offset_max = ((5 * scaling_ratio) - (1U << GraphResolutionConfigurator::SCALE_PREC)) / 2; @@ -320,17 +345,20 @@ bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmen //3 horizontal_offset_max = std::min(fragment_input_width * (1 << GraphResolutionConfigurator::SCALE_PREC) + (int32_t)(scaling_ratio * (1 + 1.0 / 128) - fragment_output_width * scaling_ratio), horizontal_offset_max); - return (horizontal_offset_fxp >= horizontal_offset_min && horizontal_offset_fxp <= horizontal_offset_max); + //return (horizontal_offset_fxp >= horizontal_offset_min && horizontal_offset_fxp <= horizontal_offset_max); + + // return true if constraints can be met. (PAL will chomp) + return (horizontal_offset_min <= horizontal_offset_max); } -void Ipu8FragmentsConfigurator::vanishStripe(uint8_t stripe, uint32_t runKerenlUuid, StaticGraphFragmentDesc* kernelFragments, VanishOption vanishOption) +void Gen2FragmentsConfigurator::vanishStripe(uint8_t stripe, uint32_t runKerenlUuid, StaticGraphFragmentDesc* kernelFragments, VanishOption vanishOption) { _node->fragmentVanishStatus[stripe] = vanishOption; kernelFragments[stripe] = {}; _outputStartX[runKerenlUuid][stripe] = 0; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -467,7 +495,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsCropper(StaticGraphR return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr) @@ -496,14 +524,20 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph auto scaleFactorH = static_cast(resInfo->input_height - resInfo->input_crop.top - resInfo->input_crop.bottom) / resInfo->output_height; auto scaleFactor = std::max(scaleFactorW, scaleFactorH); - int32_t croppedInputWidth = resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right; - int32_t outputWidth = resInfo->output_width; + uint32_t upscalerWidthGranularity = 2; + uint16_t inputUnits = 1; - // We would like to keep upscalerWidthGranularity as large as possible in order to minimize the number of pixels that cannot be used for upscaling - // (upscalerWidthGranularity is divided to stripes, so the larger it is the more accurately we can divide) - // Find the largest granularity that divides both - uint32_t upscalerWidthGranularity = calculateGcd(static_cast(croppedInputWidth), static_cast(outputWidth)); - uint16_t inputUnits = static_cast(croppedInputWidth / upscalerWidthGranularity); + if (enforceUpscalerAspectRatioConstraints()) + { + int32_t croppedInputWidth = resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right; + int32_t outputWidth = resInfo->output_width; + + // We would like to keep upscalerWidthGranularity as large as possible in order to minimize the number of pixels that cannot be used for upscaling + // (upscalerWidthGranularity is divided to stripes, so the larger it is the more accurately we can divide) + // Find the largest granularity that divides both + upscalerWidthGranularity = calculateGcd(static_cast(croppedInputWidth), static_cast(outputWidth)); + inputUnits = static_cast(croppedInputWidth / upscalerWidthGranularity); + } int32_t leftPixel = runKernel->resolution_info->input_crop.left; int32_t rightPixel = static_cast(runKernel->resolution_info->input_width - runKernel->resolution_info->input_crop.right); @@ -568,8 +602,13 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph inputWidthAfterZoomCrop = maxInputWidth; } - uint16_t stripeStepW = GRA_ROUND_DOWN(static_cast(static_cast(inputWidthAfterZoomCrop) / (resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right) * upscalerWidthGranularity), 2); - uint16_t inputWidthAfterTotalCrop = stripeStepW * inputUnits; + uint16_t inputWidthAfterTotalCrop = inputWidthAfterZoomCrop; + + if (enforceUpscalerAspectRatioConstraints()) + { + uint16_t stripeStepW = GRA_ROUND_DOWN(static_cast(static_cast(inputWidthAfterZoomCrop) / (resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right) * upscalerWidthGranularity), 2); + inputWidthAfterTotalCrop = stripeStepW * inputUnits; + } if (inputWidthAfterTotalCrop < 16) { @@ -580,10 +619,11 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph pixelsToCrop += (inputWidthAfterZoomCrop - inputWidthAfterTotalCrop); - kernelFragments[stripe].fragmentOutputWidth = static_cast(GRA_ROUND(static_cast(inputWidthAfterTotalCrop) / scaleFactor)); + kernelFragments[stripe].fragmentOutputWidth = static_cast(2 * GRA_ROUND(static_cast(inputWidthAfterTotalCrop) / scaleFactor / 2.0)); // Validate output width - if (static_cast(inputWidthAfterTotalCrop) / kernelFragments[stripe].fragmentOutputWidth != + if (enforceUpscalerAspectRatioConstraints() && + static_cast(inputWidthAfterTotalCrop) / kernelFragments[stripe].fragmentOutputWidth != static_cast(resInfo->input_height - resInfo->input_crop.top - resInfo->input_crop.bottom) / resInfo->output_height) { // Output width is not valid, return error @@ -632,7 +672,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsOutput(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsOutput(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments, bool isTnr) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -768,7 +808,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsOutput(StaticGraphRu return StaticGraphStatus::SG_OK; } -uint32_t Ipu8FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidths, FormatType formatType, uint8_t plane) +uint32_t Gen2FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidths, FormatType formatType, uint8_t plane) { // Calculate according to format BPP. uint32_t bitsPerElement = 8; @@ -829,7 +869,7 @@ uint32_t Ipu8FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidth return wholeCacheLines * 64 + (remainingPixels * bitsPerElement) / 8; } -uint16_t Ipu8FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, FormatType bufferFormat) +uint16_t Gen2FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, FormatType bufferFormat) { if (bufferFormat != FormatType::YUV420_10_SP_P) { @@ -844,7 +884,7 @@ uint16_t Ipu8FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, For return size - pixelsToRemove; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrScaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsTnrScaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -878,7 +918,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrScaler(StaticGrap return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, GraphResolutionConfiguratorKernelRole kernelRole) +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsTnrFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, GraphResolutionConfiguratorKernelRole kernelRole) { if (kernelFragments == nullptr || _tnrScalerFragments == nullptr || _tnrScalerRunKernel == nullptr) { @@ -943,7 +983,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrFeeder(StaticGrap return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurf(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsSmurf(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, StaticGraphFragmentDesc* prevKernelFragments, std::vector& smurfKernels) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -1051,7 +1091,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurf(StaticGraphRun return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments) +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments) { if (runKernel == nullptr || kernelFragments == nullptr) { @@ -1068,7 +1108,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGr return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::copyFragments(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* prevKernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* kernelFragments) +StaticGraphStatus Gen2FragmentsConfigurator::copyFragments(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* prevKernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* kernelFragments) { if (prevKernelFragments == nullptr || kernelFragments == nullptr) { @@ -1098,7 +1138,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::copyFragments(StaticGraphRunKernel* } // Find the greatest common divisor, curtesy of CoPilot -uint32_t Ipu8FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) +uint32_t Gen2FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) { while (b != 0) { @@ -1107,4 +1147,20 @@ uint32_t Ipu8FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) a = t; } return a; -} \ No newline at end of file +} + +#if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 + +Ipu8FragmentsConfigurator::Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + Gen2FragmentsConfigurator(staticGraph, node, numberOfFragments) +{ +} + +#else + +Ipu9FragmentsConfigurator::Ipu9FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + Gen2FragmentsConfigurator(staticGraph, node, numberOfFragments) +{ +} + +#endif diff --git a/modules/ipu_desc/ipu75xa/FragmentsConfigurator.h b/modules/ipu_desc/ipu75xa/FragmentsConfigurator.h index 2c323c0..f866619 100644 --- a/modules/ipu_desc/ipu75xa/FragmentsConfigurator.h +++ b/modules/ipu_desc/ipu75xa/FragmentsConfigurator.h @@ -28,18 +28,21 @@ #include "GraphResolutionConfiguratorInclude.h" #include -class Ipu8FragmentsConfigurator +class Gen2FragmentsConfigurator { public: static const int32_t MIN_STRIPE_WIDTH_BEFORE_TNR = 128; static const int32_t MIN_STRIPE_WIDTH_AFTER_TNR = 64; static const int32_t UPSCALER_MAX_OUTPUT_WIDTH = 4672; - Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + + Gen2FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + virtual ~Gen2FragmentsConfigurator() = default; StaticGraphStatus configureFragments(std::vector& smurfKernels); -private: - // Stripe Actions - each filter will perform one action according to its role +protected: + virtual bool enforceUpscalerAspectRatioConstraints() const { return true; } + StaticGraphStatus configFragmentsDownscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); StaticGraphStatus configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); StaticGraphStatus configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); @@ -61,10 +64,23 @@ class Ipu8FragmentsConfigurator IStaticGraphConfig* _staticGraph = nullptr; uint8_t _numberOfFragments = 0; - // Fragments binaries do not contain output start x, so we keep them here std::map> _outputStartX; - // Save TNR resolutions for feeder configurations StaticGraphFragmentDesc* _tnrScalerFragments = nullptr; StaticGraphRunKernel* _tnrScalerRunKernel = nullptr; }; + +class Ipu8FragmentsConfigurator : public Gen2FragmentsConfigurator +{ +public: + Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); +}; + +class Ipu9FragmentsConfigurator : public Gen2FragmentsConfigurator +{ +public: + Ipu9FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + +protected: + bool enforceUpscalerAspectRatioConstraints() const override { return false; } +}; diff --git a/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.cpp b/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.cpp index ef9fdb0..d7bb2fc 100644 --- a/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.cpp +++ b/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.cpp @@ -293,7 +293,7 @@ StaticGraphStatus GraphResolutionConfigurator::updateStaticGraphConfig(const Reg return updateRunKernelOfScalers(roi.fromInput,sensorRoi); } -#endif +#endif // if SUPPORT_KEY_RESOLUTIONS == 1 // This function translates ROI from factors (as given by user) to sensor resolution (as required by resolution Configurator) // There are 2 modes of work - // if userRoi.fromInput is true it means zoomFactor panFactor and tiltFactor are relative to sensor FOV @@ -942,7 +942,7 @@ StaticGraphStatus GraphResolutionConfigurator::initOutputRunKernelCoord(RunKerne } // Find output device - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); return findRunKernel(kernelUuid, coord); } @@ -979,7 +979,7 @@ StaticGraphStatus GraphResolutionConfigurator::getInputRoiForOutput(const Resolu GraphLink** links = graphTopology->links; - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); RunKernelCoords coord; if (findRunKernel(kernelUuid, coord) != StaticGraphStatus::SG_OK) { @@ -1051,7 +1051,7 @@ StaticGraphStatus GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const Se GraphLink** links = graphTopology->links; RunKernelCoords coord; - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink::AeOutSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink::AeOutSink, graphId, links, graphTopology->numOfLinks); if (findRunKernel(kernelUuid, coord) != StaticGraphStatus::SG_OK) { @@ -1118,10 +1118,10 @@ StaticGraphStatus GraphResolutionConfigurator::sensorCropOrScaleExist(bool& sens #if SUPPORT_KEY_RESOLUTIONS == 0 // -// IPU 8 +// Gen2 (shared by IPU8 and IPU9) // -Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : GraphResolutionConfigurator(staticGraph) +Gen2GraphResolutionConfigurator::Gen2GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : GraphResolutionConfigurator(staticGraph) { _staticGraph = staticGraph; if (_staticGraph == nullptr) @@ -1140,33 +1140,6 @@ Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphCon return; } - // Find crop steps for zoom using upscaler - uint32_t outputWidth = _upscalerRunKernel->resolution_info->output_width; - uint32_t outputHeight = _upscalerRunKernel->resolution_info->output_height; - - for (_upscalerStepH = 1; _upscalerStepH < outputHeight / 2; _upscalerStepH++) - { - double horStep = static_cast(_upscalerStepH) * outputWidth / 2 / outputHeight; - if (floor((horStep)) == horStep) - { - _upscalerStepW = static_cast(horStep) * 2; - break; - } - } - - _upscalerStepW *= 2; - _upscalerStepH *= 2; - - // Due to upscaler constraints, we should avoid having too many units. - // Number of pixels that cannot be used when upscaling a stripe may be up to ~ 2*units - // For details: https://hsdes.intel.com/appstore/article-one/#/article/15018342122 - // This affects the number of possible zoom steps, but for large resolutions it is OK to enlarge the step - while (outputWidth / _upscalerStepW > 70) - { - _upscalerStepW *= 2; - _upscalerStepH *= 2; - } - // Save original values for kernels that are being updated _originalCropOfDownScaler = _downscalerRunKernel->resolution_info->input_crop; @@ -1204,17 +1177,44 @@ Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphCon // We configure the fragments that were provided even if the required number of fragments is 0. // This is done since some configuration decisions are made according to these theoretical fragments, // in order to have bit-match results when fragments are disabled. - uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + // Fragment configurator is created by derived class constructors. - if (_node != nullptr && numberOfFragmentsProvided > 1) +#endif +} + +Gen2GraphResolutionConfigurator::~Gen2GraphResolutionConfigurator() +{ + _kernelsForUpdateAfterCropper.clear(); + _kernelsForUpdateAfterUpscaler.clear(); + +#if SUPPORT_FRAGMENTS == 1 + if (_fragmentsConfigurator != nullptr) { - _fragmentsConfigurator = new Ipu8FragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + delete _fragmentsConfigurator; + _fragmentsConfigurator = nullptr; } + for (auto& smurfInfo : _smurfKernels) + { + delete smurfInfo; + } + _smurfKernels.clear(); + #endif } -uint8_t Ipu8GraphResolutionConfigurator::GetNumberOfProvidedFragments() +StaticGraphStatus Gen2GraphResolutionConfigurator::doFragmentsUpdate(bool& isFragmentsChanged) +{ + if (_fragmentsConfigurator != nullptr) + { + StaticGraphStatus ret = _fragmentsConfigurator->configureFragments(_smurfKernels); + isFragmentsChanged = true; + return ret; + } + return StaticGraphStatus::SG_OK; +} + +uint8_t Gen2GraphResolutionConfigurator::GetNumberOfProvidedFragments() { if (_node == nullptr || _node->nodeKernels.kernelCount == 0) { @@ -1248,34 +1248,13 @@ uint8_t Ipu8GraphResolutionConfigurator::GetNumberOfProvidedFragments() return fragmentCount; } -Ipu8GraphResolutionConfigurator::~Ipu8GraphResolutionConfigurator() -{ - _kernelsForUpdateAfterCropper.clear(); - _kernelsForUpdateAfterUpscaler.clear(); - -#if SUPPORT_FRAGMENTS == 1 - if (_fragmentsConfigurator != nullptr) - { - delete _fragmentsConfigurator; - _fragmentsConfigurator = nullptr; - } - - for (auto& smurfInfo : _smurfKernels) - { - delete smurfInfo; - } - _smurfKernels.clear(); - -#endif -} - -StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel) +StaticGraphStatus Gen2GraphResolutionConfigurator::initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel) { uint32_t kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuid(role); return initRunKernel(kernelUuid, runKernel); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel) +StaticGraphStatus Gen2GraphResolutionConfigurator::initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel) { GraphTopology* graphTopology = nullptr; StaticGraphStatus status = _staticGraph->getGraphTopology(&graphTopology); @@ -1307,7 +1286,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(uint32_t kernel return StaticGraphStatus::SG_ERROR; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initOutputRunKernel() +StaticGraphStatus Gen2GraphResolutionConfigurator::initOutputRunKernel() { GraphTopology* graphTopology = nullptr; StaticGraphStatus status = _staticGraph->getGraphTopology(&graphTopology); @@ -1345,15 +1324,16 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initOutputRunKernel() } // Find output device - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); return initRunKernel(kernelUuid, _outputRunKernel); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() +StaticGraphStatus Gen2GraphResolutionConfigurator::initKernelsForUpdate() { std::vector kernelUuids; - - GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _cropperRunKernel->kernel_uuid); + int32_t additionalFeaturesBit = 0; + _staticGraph->getAdditionalFeaturesBit(&additionalFeaturesBit); + GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _cropperRunKernel->kernel_uuid, additionalFeaturesBit); for (auto& kernelUuid : kernelUuids) { @@ -1364,7 +1344,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() } } - GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _upscalerRunKernel->kernel_uuid); + GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _upscalerRunKernel->kernel_uuid, additionalFeaturesBit); for (auto& kernelUuid : kernelUuids) { @@ -1402,7 +1382,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initIsFragments() +StaticGraphStatus Gen2GraphResolutionConfigurator::initIsFragments() { _isFragments = false; @@ -1433,13 +1413,13 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initIsFragments() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom) { bool isFragmentsChanged; return updateStaticGraphConfig(roi, isCenteredZoom, isFragmentsChanged); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged) { if (_staticGraph == nullptr) { @@ -1469,7 +1449,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const return updateRunKernelOfScalers(downscalerInputRoi, isFragmentsChanged); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getDownscalerInputRoi(const RegionOfInterest& userRoi, ResolutionRoi& downscalerInputRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getDownscalerInputRoi(const RegionOfInterest& userRoi, ResolutionRoi& downscalerInputRoi) { if (_staticGraph == nullptr) { @@ -1526,7 +1506,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getDownscalerInputRoi(const R return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1589,6 +1569,8 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(Reso ret = StaticGraphStatus::SG_ERROR; } + postScalerUpdate(); + // Update resolution history for relevant kernels for (auto& runKernelForUpdate : _kernelsForUpdateAfterCropper) { @@ -1623,19 +1605,15 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(Reso ret = SanityCheck(); } - if (ret == StaticGraphStatus::SG_OK && _fragmentsConfigurator != nullptr) + if (ret == StaticGraphStatus::SG_OK) { - // Configure fragments according to the new zoomed run kernels information - ret = _fragmentsConfigurator->configureFragments(_smurfKernels); - - // Caller must re-take system APIs that were updated by the fragments configurator - isFragmentsChanged = true; + ret = doFragmentsUpdate(isFragmentsChanged); } return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, uint32_t& outputWidth, uint32_t& outputHeight) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1676,7 +1654,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelDownScaler(Sta return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphRunKernel* downscalerRunKernel, uint32_t outputWidth, uint32_t outputHeight) { @@ -1692,100 +1670,118 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(Static // Configure to crop the required amount. int32_t totalHorizontalCrop = runKernel->resolution_info->input_width - outputWidth; - // Now crop to TNR size if any more cropping is required, according to the required ROI - uint32_t cropLeft = roi.left; - uint32_t cropRight = roi.right; + if (totalHorizontalCrop > 0) + { + // Now crop to TNR size if any more cropping is required, according to the required ROI + uint32_t cropLeft = roi.left; + uint32_t cropRight = roi.right; - double scale = static_cast(downscalerResInfo->output_width) / - (downscalerResInfo->input_width - downscalerResInfo->input_crop.left - downscalerResInfo->input_crop.right); + double scale = static_cast(downscalerResInfo->output_width) / + (downscalerResInfo->input_width - downscalerResInfo->input_crop.left - downscalerResInfo->input_crop.right); - if (downscalerResInfo->input_crop.right > 0) - { - cropRight -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.right * scale), 2); - } + if (downscalerResInfo->input_crop.right > 0) + { + cropRight -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.right * scale), 2); + } - // Check if we have more padding on the right that was originally removed by DS but now it is not removed - uint32_t paddingToRemove = 0; - if (downscalerResHist->input_crop.right < 0 && - downscalerResInfo->input_crop.right < -downscalerResHist->input_crop.right && - _originalCropOfDownScaler.right > 0) - { - paddingToRemove = -downscalerResHist->input_crop.right - downscalerResInfo->input_crop.right; - paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); - totalHorizontalCrop -= paddingToRemove; - } + // Check if we have more padding on the right that was originally removed by DS but now it is not removed + uint32_t paddingToRemove = 0; + int32_t histPadRight = static_cast(-downscalerResHist->input_crop.right * _sensorHorizontalScaling); + if (downscalerResHist->input_crop.right < 0 && + downscalerResInfo->input_crop.right < histPadRight && + _originalCropOfDownScaler.right > 0) + { + paddingToRemove = histPadRight - downscalerResInfo->input_crop.right; + paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); + totalHorizontalCrop -= paddingToRemove; + } - // Remove origianl ESPA cropping from left and right, in order to calulate the proportions. - // (The original ESPA cropping is inside the roi.left right so we expect it to always be larger) - cropLeft -= _originalCropOfCropper.left; - cropRight -= _originalCropOfCropper.right; - totalHorizontalCrop -= (_originalCropOfCropper.left + _originalCropOfCropper.right); + // Remove origianl ESPA cropping from left and right, in order to calulate the proportions. + // (The original ESPA cropping is inside the roi.left right so we expect it to always be larger) + cropLeft -= _originalCropOfCropper.left; + cropRight -= _originalCropOfCropper.right; + totalHorizontalCrop -= (_originalCropOfCropper.left + _originalCropOfCropper.right); - // Calculate the crop after downscale, relatively to the desired crop before the downscale - cropLeft = (cropLeft + cropRight) == 0 ? 0 : - GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropLeft) / (cropLeft + cropRight) * (totalHorizontalCrop))), 2); + // Calculate the crop after downscale, relatively to the desired crop before the downscale + cropLeft = (cropLeft + cropRight) == 0 ? 0 : + GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropLeft) / (cropLeft + cropRight) * (totalHorizontalCrop))), 2); - runKernel->resolution_info->input_crop.left = _originalCropOfCropper.left + cropLeft; - runKernel->resolution_info->input_crop.right = _originalCropOfCropper.right + (totalHorizontalCrop - cropLeft) + paddingToRemove; + runKernel->resolution_info->input_crop.left = _originalCropOfCropper.left + cropLeft; + runKernel->resolution_info->input_crop.right = _originalCropOfCropper.right + (totalHorizontalCrop - cropLeft) + paddingToRemove; - if (roi.left < static_cast(runKernel->resolution_info->input_crop.left)) - { - runKernel->resolution_info->input_crop.right += (runKernel->resolution_info->input_crop.left - roi.left); - runKernel->resolution_info->input_crop.left = roi.left; + if (roi.left < static_cast(runKernel->resolution_info->input_crop.left)) + { + runKernel->resolution_info->input_crop.right += (runKernel->resolution_info->input_crop.left - roi.left); + runKernel->resolution_info->input_crop.left = roi.left; + } + if (roi.right < static_cast(runKernel->resolution_info->input_crop.right)) + { + runKernel->resolution_info->input_crop.left += (runKernel->resolution_info->input_crop.right - roi.right); + runKernel->resolution_info->input_crop.right = roi.right; + } } - if (roi.right < static_cast(runKernel->resolution_info->input_crop.right)) + else { - runKernel->resolution_info->input_crop.left += (runKernel->resolution_info->input_crop.right - roi.right); - runKernel->resolution_info->input_crop.right = roi.right; + runKernel->resolution_info->input_crop.left = 0; + runKernel->resolution_info->input_crop.right = 0; } int32_t totalVerticalCrop = runKernel->resolution_info->input_height - outputHeight; - // Now crop to TNR size if any more cropping is required, according to the required ROI - uint32_t cropTop = roi.top; - uint32_t cropBottom = roi.bottom; + if (totalVerticalCrop > 0) + { + // Now crop to TNR size if any more cropping is required, according to the required ROI + uint32_t cropTop = roi.top; + uint32_t cropBottom = roi.bottom; - scale = static_cast(downscalerResInfo->output_height) / - (downscalerResInfo->input_height - downscalerResInfo->input_crop.top - downscalerResInfo->input_crop.bottom); + double scale = static_cast(downscalerResInfo->output_height) / + (downscalerResInfo->input_height - downscalerResInfo->input_crop.top - downscalerResInfo->input_crop.bottom); - if (downscalerResInfo->input_crop.bottom > 0) - { - cropBottom -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.bottom * scale), 2); - } + if (downscalerResInfo->input_crop.bottom > 0) + { + cropBottom -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.bottom * scale), 2); + } - // Check if we have more padding on the bottom that was not removed by DS - paddingToRemove = 0; - if (downscalerResHist->input_crop.bottom < 0 && - downscalerResInfo->input_crop.bottom < -downscalerResHist->input_crop.bottom && - _originalCropOfDownScaler.bottom > 0) - { - paddingToRemove = -downscalerResHist->input_crop.bottom - downscalerResInfo->input_crop.bottom; - paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); - totalVerticalCrop -= paddingToRemove; - } + // Check if we have more padding on the bottom that was not removed by DS + uint32_t paddingToRemove = 0; + int32_t histPadBottom = static_cast(-downscalerResHist->input_crop.bottom * _sensorVerticalScaling); + if (downscalerResHist->input_crop.bottom < 0 && + downscalerResInfo->input_crop.bottom < histPadBottom && + _originalCropOfDownScaler.bottom > 0) + { + paddingToRemove = histPadBottom - downscalerResInfo->input_crop.bottom; + paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); + totalVerticalCrop -= paddingToRemove; + } - // Remove origianl ESPA cropping from top and bottom, in order to calulate the proportions. - // (The original ESPA cropping is inside the roi.top and bottom so we expect it to always be larger) - cropTop -= _originalCropOfCropper.top; - cropBottom -= _originalCropOfCropper.bottom; - totalVerticalCrop -= (_originalCropOfCropper.top + _originalCropOfCropper.bottom); + // Remove origianl ESPA cropping from top and bottom, in order to calulate the proportions. + // (The original ESPA cropping is inside the roi.top and bottom so we expect it to always be larger) + cropTop -= _originalCropOfCropper.top; + cropBottom -= _originalCropOfCropper.bottom; + totalVerticalCrop -= (_originalCropOfCropper.top + _originalCropOfCropper.bottom); - // Calculate the crop after downscale, relatively to the desired crop before the downscale - cropTop = (cropTop + cropBottom) == 0 ? 0 : - GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropTop) / (cropTop + cropBottom) * (totalVerticalCrop))), 2); + // Calculate the crop after downscale, relatively to the desired crop before the downscale + cropTop = (cropTop + cropBottom) == 0 ? 0 : + GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropTop) / (cropTop + cropBottom) * (totalVerticalCrop))), 2); - runKernel->resolution_info->input_crop.top = _originalCropOfCropper.top + cropTop; - runKernel->resolution_info->input_crop.bottom = _originalCropOfCropper.bottom + (totalVerticalCrop - cropTop) + paddingToRemove; + runKernel->resolution_info->input_crop.top = _originalCropOfCropper.top + cropTop; + runKernel->resolution_info->input_crop.bottom = _originalCropOfCropper.bottom + (totalVerticalCrop - cropTop) + paddingToRemove; - if (roi.top < static_cast(runKernel->resolution_info->input_crop.top)) - { - runKernel->resolution_info->input_crop.bottom += (runKernel->resolution_info->input_crop.top - roi.top); - runKernel->resolution_info->input_crop.top = roi.top; + if (roi.top < static_cast(runKernel->resolution_info->input_crop.top)) + { + runKernel->resolution_info->input_crop.bottom += (runKernel->resolution_info->input_crop.top - roi.top); + runKernel->resolution_info->input_crop.top = roi.top; + } + if (roi.bottom < static_cast(runKernel->resolution_info->input_crop.bottom)) + { + runKernel->resolution_info->input_crop.top += (runKernel->resolution_info->input_crop.bottom - roi.bottom); + runKernel->resolution_info->input_crop.bottom = roi.bottom; + } } - if (roi.bottom < static_cast(runKernel->resolution_info->input_crop.bottom)) + else { - runKernel->resolution_info->input_crop.top += (runKernel->resolution_info->input_crop.bottom - roi.bottom); - runKernel->resolution_info->input_crop.bottom = roi.bottom; + runKernel->resolution_info->input_crop.top = 0; + runKernel->resolution_info->input_crop.bottom = 0; } #ifdef STATIC_GRAPH_USE_IA_LEGACY_TYPES @@ -1814,65 +1810,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(Static return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, - uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) -{ - StaticGraphStatus ret = StaticGraphStatus::SG_OK; - - runKernel->resolution_info->input_width = inputWidth; - runKernel->resolution_info->input_height = inputHeight; - runKernel->resolution_info->output_width = outputWidth; - runKernel->resolution_info->output_height = outputHeight; - - // How much cropping is left for the upscaler to do after the cropper? - uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; - uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; - - // Cropping must be done in units of stepW x stepH. - // How many units of stepW x stepH should we crop? - uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; - uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; - - uint32_t units = unitsW < unitsH ? unitsW : unitsH; - - uint32_t actualCropW = units * _upscalerStepW; - uint32_t actualCropH = units * _upscalerStepH; - - uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); - uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; - uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); - uint32_t deltaBottom = totalCropH - actualCropH - deltaTop; - - runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; - runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; - runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; - runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; - - if (runKernel->resolution_info->input_crop.left < 0) - { - runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; - runKernel->resolution_info->input_crop.left = 0; - } - if (runKernel->resolution_info->input_crop.right < 0) - { - runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; - runKernel->resolution_info->input_crop.right = 0; - } - if (runKernel->resolution_info->input_crop.top < 0) - { - runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; - runKernel->resolution_info->input_crop.top = 0; - } - if (runKernel->resolution_info->input_crop.bottom < 0) - { - runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; - runKernel->resolution_info->input_crop.bottom = 0; - } - - return ret; -} - -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKernelInfo* smurfInfo) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKernelInfo* smurfInfo) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1921,7 +1859,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKer return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() +StaticGraphStatus Gen2GraphResolutionConfigurator::SanityCheck() { // Resolution hist output must be same as info input if (_downscalerRunKernel->resolution_info->input_width != _downscalerRunKernel->resolution_history->output_width || @@ -1978,7 +1916,8 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() } // Validate upscaler scale ratio constraints - if (static_cast(widthAfterCrop) / _upscalerRunKernel->resolution_info->output_width != + if (enforceUpscalerAspectRatioConstraints() && + static_cast(widthAfterCrop) / _upscalerRunKernel->resolution_info->output_width != static_cast(heightAfterCrop) / _upscalerRunKernel->resolution_info->output_height) { return StaticGraphStatus::SG_ERROR; @@ -1997,7 +1936,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKernelResCrop* crop) +StaticGraphStatus Gen2GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKernelResCrop* crop) { if (crop->top < 0 || crop->bottom < 0 || crop->left < 0 || crop->right < 0 || crop->top & 1 || crop->bottom & 1 || crop->left & 1 || crop->right & 1) @@ -2008,7 +1947,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKe return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getInputRoiForOutput(const ResolutionRoi& roi, HwSink hwSink, SensorRoi& sensorRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getInputRoiForOutput(const ResolutionRoi& roi, HwSink hwSink, SensorRoi& sensorRoi) { if (_staticGraph == nullptr) { @@ -2083,7 +2022,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getInputRoiForOutput(const Re return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi) { int32_t graphId; _staticGraph->getGraphId(&graphId); @@ -2120,4 +2059,278 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getStatsRoiFromSensorRoi(cons return StaticGraphStatus::SG_OK; } -#endif \ No newline at end of file +#if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 +// +// IPU 8 (unique methods only) +// + +Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : Gen2GraphResolutionConfigurator(staticGraph) +{ + if (_staticGraph == nullptr) + { + return; + } + + // Find crop steps for zoom using upscaler + uint32_t outputWidth = _upscalerRunKernel->resolution_info->output_width; + uint32_t outputHeight = _upscalerRunKernel->resolution_info->output_height; + + for (_upscalerStepH = 1; _upscalerStepH < outputHeight / 2; _upscalerStepH++) + { + double horStep = static_cast(_upscalerStepH) * outputWidth / 2 / outputHeight; + if (floor((horStep)) == horStep) + { + _upscalerStepW = static_cast(horStep) * 2; + break; + } + } + + _upscalerStepW *= 2; + _upscalerStepH *= 2; + + if (_isFragments == true) + { + // Due to upscaler constraints, we should avoid having too many units. + // Number of pixels that cannot be used when upscaling a stripe may be up to ~ 2*units + // For details: https://hsdes.intel.com/appstore/article-one/#/article/15018342122 + // This affects the number of possible zoom steps, but for large resolutions it is OK to enlarge the step + while (outputWidth / _upscalerStepW > 70) + { + _upscalerStepW *= 2; + _upscalerStepH *= 2; + } + } + + // We configure the fragments that were provided even if the required number of fragments is 0. + // This is done since some configuration decisions are made according to these theoretical fragments, + // in order to have bit-match results when fragments are disabled. + uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + + if (_node != nullptr && numberOfFragmentsProvided > 1) + { + _fragmentsConfigurator = createFragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + } +} + +Ipu8GraphResolutionConfigurator::~Ipu8GraphResolutionConfigurator() +{ +} + +#if SUPPORT_FRAGMENTS == 1 +Gen2FragmentsConfigurator* Ipu8GraphResolutionConfigurator::createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) +{ + return new Ipu8FragmentsConfigurator(staticGraph, node, numberOfFragments); +} +#endif + +StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) +{ + StaticGraphStatus ret = StaticGraphStatus::SG_OK; + + runKernel->resolution_info->input_width = inputWidth; + runKernel->resolution_info->input_height = inputHeight; + runKernel->resolution_info->output_width = outputWidth; + runKernel->resolution_info->output_height = outputHeight; + + // How much cropping is left for the upscaler to do after the cropper? + uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; + uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; + + // Cropping must be done in units of stepW x stepH. + // How many units of stepW x stepH should we crop? + uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; + uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; + + uint32_t units = unitsW < unitsH ? unitsW : unitsH; + + uint32_t actualCropW = units * _upscalerStepW; + uint32_t actualCropH = units * _upscalerStepH; + + uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); + uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - actualCropH - deltaTop; + + runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; + runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; + runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; + runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; + + if (runKernel->resolution_info->input_crop.left < 0) + { + runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; + runKernel->resolution_info->input_crop.left = 0; + } + if (runKernel->resolution_info->input_crop.right < 0) + { + runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; + runKernel->resolution_info->input_crop.right = 0; + } + if (runKernel->resolution_info->input_crop.top < 0) + { + runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; + runKernel->resolution_info->input_crop.top = 0; + } + if (runKernel->resolution_info->input_crop.bottom < 0) + { + runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; + runKernel->resolution_info->input_crop.bottom = 0; + } + + return ret; +} + +// IPU9 +#else // if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 + +void copyRunKernel(StaticGraphRunKernel* runKernel, StaticGraphRunKernel* runKernelOther) +{ + if (runKernelOther == nullptr) + { + return; + } + // No fragments, crop to ROI and downscale to output resolution + runKernelOther->resolution_info->input_width = runKernel->resolution_info->input_width; + runKernelOther->resolution_info->input_height = runKernel->resolution_info->input_height; + runKernelOther->resolution_info->output_width = runKernel->resolution_info->output_width; + runKernelOther->resolution_info->output_height = runKernel->resolution_info->output_height; + + runKernelOther->resolution_info->input_crop.left = runKernel->resolution_info->input_crop.left; + runKernelOther->resolution_info->input_crop.right = runKernel->resolution_info->input_crop.right; + runKernelOther->resolution_info->input_crop.top = runKernel->resolution_info->input_crop.top; + runKernelOther->resolution_info->input_crop.bottom = runKernel->resolution_info->input_crop.bottom; + + runKernelOther->resolution_history->input_width = runKernel->resolution_history->input_width; + runKernelOther->resolution_history->input_height = runKernel->resolution_history->input_height; + runKernelOther->resolution_history->output_width = runKernel->resolution_history->output_width; + runKernelOther->resolution_history->output_height = runKernel->resolution_history->output_height; + + runKernelOther->resolution_history->input_crop.left = runKernel->resolution_history->input_crop.left; + runKernelOther->resolution_history->input_crop.right = runKernel->resolution_history->input_crop.right; + runKernelOther->resolution_history->input_crop.top = runKernel->resolution_history->input_crop.top; + runKernelOther->resolution_history->input_crop.bottom = runKernel->resolution_history->input_crop.bottom; +} + +Ipu9GraphResolutionConfigurator::Ipu9GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : Gen2GraphResolutionConfigurator(staticGraph) +{ + if (_staticGraph == nullptr) + { + return; + } + + _downscalerSmallRunKernel = nullptr; + _cropperSmallRunKernel = nullptr; + initRunKernel(GraphResolutionConfiguratorKernelRole::DownScalerSmall, _downscalerSmallRunKernel); + initRunKernel(GraphResolutionConfiguratorKernelRole::EspaCropperSmall, _cropperSmallRunKernel); + +#if SUPPORT_FRAGMENTS == 1 + + // We configure the fragments that were provided even if the required number of fragments is 0. + // This is done since some configuration decisions are made according to these theoretical fragments, + // in order to have bit-match results when fragments are disabled. + uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + + if (_node != nullptr && numberOfFragmentsProvided > 1) + { + _fragmentsConfigurator = createFragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + } + +#endif +} + +Ipu9GraphResolutionConfigurator::~Ipu9GraphResolutionConfigurator() +{ +} + +#if SUPPORT_FRAGMENTS == 1 +Gen2FragmentsConfigurator* Ipu9GraphResolutionConfigurator::createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) +{ + return new Ipu9FragmentsConfigurator(staticGraph, node, numberOfFragments); +} +#endif + +StaticGraphStatus Ipu9GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) +{ + StaticGraphStatus ret = StaticGraphStatus::SG_OK; + + runKernel->resolution_info->input_width = inputWidth; + runKernel->resolution_info->input_height = inputHeight; + runKernel->resolution_info->output_width = outputWidth; + runKernel->resolution_info->output_height = outputHeight; + + // How much cropping is left for the upscaler to do after the cropper? + uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; + uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; + + // Cropping must be done in units of stepW x stepH. + // How many units of stepW x stepH should we crop? + /*uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; + uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; + + uint32_t units = unitsW < unitsH ? unitsW : unitsH; + + uint32_t actualCropW = units * _upscalerStepW; + uint32_t actualCropH = units * _upscalerStepH;*/ + + /*uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); + uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - actualCropH - deltaTop;*/ + + // we must make sure that the scale facotr of width and height are matching. So we recalculate the extra crop to get this. + uint32_t widthAfterCrop = runKernel->resolution_info->input_width - totalCropW; + uint32_t heightAfterCrop = runKernel->resolution_info->input_height - totalCropH; + auto scaleFactorW = static_cast(widthAfterCrop) / outputWidth; + auto scaleFactorH = static_cast(heightAfterCrop) / outputHeight; + auto scaleFactor = std::max(scaleFactorW, scaleFactorH); + + widthAfterCrop = std::min(inputWidth, + GRA_ROUND_DOWN(static_cast(floor(static_cast(outputWidth * scaleFactor))), 2)); + heightAfterCrop = std::min(inputHeight, + GRA_ROUND_DOWN(static_cast(floor(static_cast(outputHeight * scaleFactor))), 2)); + totalCropW = (inputWidth - widthAfterCrop)-(roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right); + totalCropH = (inputHeight - heightAfterCrop)-(roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom); + + uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW) / 2, 2); + uint32_t deltaRight = totalCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - deltaTop; + + runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; + runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; + runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; + runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; + + if (runKernel->resolution_info->input_crop.left < 0) + { + runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; + runKernel->resolution_info->input_crop.left = 0; + } + if (runKernel->resolution_info->input_crop.right < 0) + { + runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; + runKernel->resolution_info->input_crop.right = 0; + } + if (runKernel->resolution_info->input_crop.top < 0) + { + runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; + runKernel->resolution_info->input_crop.top = 0; + } + if (runKernel->resolution_info->input_crop.bottom < 0) + { + runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; + runKernel->resolution_info->input_crop.bottom = 0; + } + + return ret; +} + +void Ipu9GraphResolutionConfigurator::postScalerUpdate() +{ + copyRunKernel(_downscalerRunKernel, _downscalerSmallRunKernel); + copyRunKernel(_cropperRunKernel, _cropperSmallRunKernel); +} +#endif // if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 +#endif // if SUPPORT_KEY_RESOLUTIONS == 0 diff --git a/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.h b/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.h index 4f049f2..7d5e109 100644 --- a/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.h +++ b/modules/ipu_desc/ipu75xa/GraphResolutionConfigurator.h @@ -76,7 +76,10 @@ enum class GraphResolutionConfiguratorKernelRole : uint8_t { UpScaler, DownScaler, + DownScalerSmall, EspaCropper, + CasEspaCropper, + EspaCropperSmall, NonRcb, Output, TnrOutput, @@ -88,6 +91,8 @@ enum class GraphResolutionConfiguratorKernelRole : uint8_t None }; +class Gen2FragmentsConfigurator; + class RunKernelCoords { public: @@ -177,6 +182,7 @@ class GraphResolutionConfigurator }; class Ipu8FragmentsConfigurator; +class Ipu9FragmentsConfigurator; class SmurfKernelInfo { @@ -188,11 +194,11 @@ class SmurfKernelInfo StaticGraphKernelResCrop _originalSmurfOutputCrop = { 0,0,0,0 }; }; -class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator +class Gen2GraphResolutionConfigurator : public GraphResolutionConfigurator { public: - Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); - ~Ipu8GraphResolutionConfigurator(); + Gen2GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + virtual ~Gen2GraphResolutionConfigurator(); StaticGraphStatus updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom); // Use only if 1-stripe processing is not needed StaticGraphStatus updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged); @@ -203,7 +209,7 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator // This function is used for statistics output only virtual StaticGraphStatus getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi); -private: +protected: StaticGraphStatus initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel); StaticGraphStatus initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel); StaticGraphStatus initOutputRunKernel(); @@ -217,15 +223,22 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator StaticGraphStatus updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged); StaticGraphStatus updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, uint32_t& outputWidth, uint32_t& outputHeight); - StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight); + virtual StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) = 0; StaticGraphStatus updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphRunKernel* downscalerRunKernel, uint32_t outputWidth, uint32_t outputHeight); StaticGraphStatus updateRunKernelSmurf(SmurfKernelInfo* smurfInfo); StaticGraphStatus SanityCheck(); StaticGraphStatus SanityCheckCrop(StaticGraphKernelResCrop* crop); - uint32_t _upscalerStepW = 1; - uint32_t _upscalerStepH = 1; + // Virtual hooks for derived class differences + virtual bool enforceUpscalerAspectRatioConstraints() const { return true; } + virtual void postScalerUpdate() {} +#if SUPPORT_FRAGMENTS == 1 + virtual Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) = 0; + StaticGraphStatus doFragmentsUpdate(bool& isFragmentsChanged); + Gen2FragmentsConfigurator* _fragmentsConfigurator = nullptr; +#endif StaticGraphKernelResCrop _originalCropOfDownScaler = { 0,0,0,0 }; StaticGraphKernelResCrop _originalCropOfUpscaler = { 0,0,0,0 }; @@ -243,6 +256,42 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator // For striping OuterNode* _node = nullptr; - Ipu8FragmentsConfigurator* _fragmentsConfigurator = nullptr; bool _isFragments = false; }; + +class Ipu8GraphResolutionConfigurator : public Gen2GraphResolutionConfigurator +{ +public: + Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + ~Ipu8GraphResolutionConfigurator(); + +private: + StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) override; +#if SUPPORT_FRAGMENTS == 1 + Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) override; +#endif + + uint32_t _upscalerStepW = 1; + uint32_t _upscalerStepH = 1; +}; + +class Ipu9GraphResolutionConfigurator : public Gen2GraphResolutionConfigurator +{ +public: + Ipu9GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + ~Ipu9GraphResolutionConfigurator(); + +private: + StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) override; + void postScalerUpdate() override; + bool enforceUpscalerAspectRatioConstraints() const override { return false; } + + StaticGraphRunKernel* _downscalerSmallRunKernel; + StaticGraphRunKernel* _cropperSmallRunKernel; + +#if SUPPORT_FRAGMENTS == 1 + Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) override; +#endif +}; diff --git a/modules/ipu_desc/ipu75xa/GraphResolutionConfiguratorInclude.h b/modules/ipu_desc/ipu75xa/GraphResolutionConfiguratorInclude.h index 417aa23..78ddbbc 100644 --- a/modules/ipu_desc/ipu75xa/GraphResolutionConfiguratorInclude.h +++ b/modules/ipu_desc/ipu75xa/GraphResolutionConfiguratorInclude.h @@ -31,6 +31,9 @@ #include "Ipu7xStaticGraphAutogen.h" #include "Ipu7xStaticGraphTypesAutogen.h" #include "Ipu7xGraphResolutionConfiguratorAutogen.h" +#elif defined(GRC_IPU7) +#include "Ipu7StaticGraphAutogen.h" +#include "Ipu7StaticGraphTypesAutogen.h" #elif defined(GRC_IPU75XA) #include "Ipu75xaStaticGraphAutogen.h" #include "Ipu75xaStaticGraphTypesAutogen.h" diff --git a/modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.cpp b/modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.cpp new file mode 100644 index 0000000..d8ab95f --- /dev/null +++ b/modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.cpp @@ -0,0 +1,30 @@ +#include "GraphResolutionConfiguratorInclude.h" +#include "GraphTuningModeConfigurator.h" + +#if SUPPORT_TM_SWITCH == 1 +bool GraphTuningModeConfigurator::SwitchTuningModeBasedOnKey(uint8_t tuningModeKey) +{ + GraphTopology* graphTopology = nullptr; + _staticGraph->getGraphTopology(&graphTopology); + SubGraphInnerNodeConfiguration innerNodeConfig = {}; + bool modeSwitched = false; + for (int i = 0; i < graphTopology->numOfLinks; i++) + { + auto& link = graphTopology->links[i]; + for (int j = 0; j < 2; ++j) + { + if (link->srcNode != nullptr && link->srcNode->nodeTuningModes[j].key == tuningModeKey && link->srcNode->nodeKernels.operationMode != link->srcNode->nodeTuningModes[j].id) + { + link->srcNode->nodeKernels.operationMode = link->srcNode->nodeTuningModes[j].id; + modeSwitched = true; + } + if (link->destNode != nullptr && link->destNode->nodeTuningModes[j].key == tuningModeKey && link->destNode->nodeKernels.operationMode != link->destNode->nodeTuningModes[j].id) + { + link->destNode->nodeKernels.operationMode = link->destNode->nodeTuningModes[j].id; + modeSwitched = true; + } + } + } + return modeSwitched; +} +#endif \ No newline at end of file diff --git a/modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.h b/modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.h new file mode 100644 index 0000000..c05dd4d --- /dev/null +++ b/modules/ipu_desc/ipu75xa/GraphTuningModeConfigurator.h @@ -0,0 +1,49 @@ +/* +* INTEL CONFIDENTIAL +* Copyright (c) 2026 Intel Corporation +* All Rights Reserved. +* +* The source code contained or described herein and all documents related to +* the source code ("Material") are owned by Intel Corporation or its +* suppliers or licensors. Title to the Material remains with Intel +* Corporation or its suppliers and licensors. The Material may contain trade +* secrets and proprietary and confidential information of Intel Corporation +* and its suppliers and licensors, and is protected by worldwide copyright +* and trade secret laws and treaty provisions. No part of the Material may be +* used, copied, reproduced, modified, published, uploaded, posted, +* transmitted, distributed, or disclosed in any way without Intel's prior +* express written permission. +* +* No license under any patent, copyright, trade secret or other intellectual +* property right is granted to or conferred upon you by disclosure or +* delivery of the Materials, either expressly, by implication, inducement, +* estoppel or otherwise. Any license under such intellectual property rights +* must be express and approved by Intel in writing. +* +* Unless otherwise agreed by Intel in writing, you may not remove or alter +* this notice or any other notice embedded in Materials by Intel or Intels +* suppliers or licensors in any way. +*/ +#pragma once +#include +#include +#include +#if SUPPORT_TM_SWITCH == 1 +class GraphTuningModeConfigurator +{ +public: + GraphTuningModeConfigurator(IStaticGraphConfig* staticGraph) + { + _staticGraph = staticGraph; + + if (_staticGraph == nullptr) + { + return; + } + } + ~GraphTuningModeConfigurator(){} + bool SwitchTuningModeBasedOnKey(uint8_t tuningModeKey); +protected: + IStaticGraphConfig* _staticGraph; +}; +#endif \ No newline at end of file diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.cpp b/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.cpp index fa89192..b8392c5 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.cpp +++ b/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.cpp @@ -39,10 +39,11 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuid(GraphResolutionConf return 0; } -uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links) +uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links, int numberOfLinks) { (void)graphId; (void)links; + (void)numberOfLinks; switch (hwSink) { @@ -86,7 +87,6 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSi return 0; } - StaticGraphStatus GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids) { kernelUuids.clear(); diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.h b/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.h index 992678c..b8d354a 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.h +++ b/modules/ipu_desc/ipu75xa/Ipu75xaGraphResolutionConfiguratorAutogen.h @@ -35,7 +35,7 @@ class GraphResolutionConfiguratorHelper public: static uint32_t getRunKernelUuid(GraphResolutionConfiguratorKernelRole role); - static uint32_t getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links); + static uint32_t getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links, int numberOfLinks = 0); static StaticGraphStatus getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids); static uint32_t getRunKernelIoBufferSystemApiUuid(); static uint32_t getRunKernelDownscalerSystemApiUuid(); diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.cpp b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.cpp index aacf57a..6d107e7 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.cpp +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.cpp @@ -24,15 +24,15 @@ * this notice or any other notice embedded in Materials by Intel or Intels * suppliers or licensors in any way. */ - +#include #include "Ipu75xaStaticGraphAutogen.h" #define CHECK_BITMAP64_BIT(bitmap, index) ((bitmap) & ((uint64_t)1 << (index))) /* * External Interfaces */ -IStaticGraphConfig::IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t settingsId, ZoomKeyResolutions* zoomKeyResolutions ) : -_selectedSensorMode(selectedSensorMode), _graphId(graphId), _settingsId(settingsId) +IStaticGraphConfig::IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t settingsId, int32_t additonalFeaturesBit, ZoomKeyResolutions* zoomKeyResolutions ) : +_selectedSensorMode(selectedSensorMode), _graphId(graphId), _settingsId(settingsId),_additonalFeaturesBit(additonalFeaturesBit) { memcpy(_sinkMappingConfiguration, sinkMappingConfiguration, sizeof(VirtualSinkMapping)); // Copy zoom key resolutions @@ -100,6 +100,17 @@ StaticGraphStatus IStaticGraphConfig::getSettingsId(int32_t* settingsId) return StaticGraphStatus::SG_OK; }; +StaticGraphStatus IStaticGraphConfig::getAdditionalFeaturesBit(int32_t* featuresBit) +{ + if (featuresBit == nullptr) + { + return StaticGraphStatus::SG_ERROR; + } + + *featuresBit = _additonalFeaturesBit; + return StaticGraphStatus::SG_OK; +}; + StaticGraphStatus IStaticGraphConfig::getVirtualSinkConnection(VirtualSink& virtualSink, HwSink* hwSink) { switch (virtualSink) @@ -209,6 +220,7 @@ void OuterNode::Init(uint8_t nodeResourceId, nodeKernels.operationMode = operationMode; nodeKernels.streamId = streamId; } + OuterNode::~OuterNode() { for (uint32_t i = 0; i < kernelConfigurationsOptionsCount; i++) @@ -939,16 +951,16 @@ void SwB2bOuterNode::Init(SwB2bOuterNodeConfiguration** selectedGraphConfigurati { OuterNode::Init(7, NodeTypes::Sw, 1, nodeKernelConfigurationsOptionsCount, selectedGraphConfiguration[0]->tuningMode, selectedGraphConfiguration[0]->streamId, 0); - uint16_t kernelsUuids[1] = {45372 /*b2b*/}; + uint16_t kernelsUuids[1] = {61733 /*b2b*/}; uint64_t kernelsRcbBitmap = 0x0; // { } uint64_t kernelsResolutionHistoryGroupBitmap = 0x0; // {{b2b}[0] } - uint8_t systemApisSizes[1] = {0 /*b2b*/}; + uint8_t systemApisSizes[1] = {20 /*b2b*/}; for (uint32_t i = 0; i < kernelConfigurationsOptionsCount; ++i) { nodeKernels.kernelList = kernelListOptions[i]; - InitRunKernels(kernelsUuids, kernelsRcbBitmap, nullptr, kernelsResolutionHistoryGroupBitmap, selectedGraphConfiguration[i]->resolutionHistories, selectedGraphConfiguration[i]->bppInfos, systemApisSizes, nullptr); + InitRunKernels(kernelsUuids, kernelsRcbBitmap, nullptr, kernelsResolutionHistoryGroupBitmap, selectedGraphConfiguration[i]->resolutionHistories, selectedGraphConfiguration[i]->bppInfos, systemApisSizes, selectedGraphConfiguration[i]->systemApiConfiguration); } // set default inner Node @@ -10206,8 +10218,8 @@ void LbffDol2InputsWithGmvBayerStatOuterNode::setInnerNode(InnerNodeOptionsFlags /* * Graph 100000 */ -StaticGraph100000::StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100000, selectedSettingsId, zoomKeyResolutions), +StaticGraph100000::StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100000, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -10329,12 +10341,11 @@ StaticGraph100000::StaticGraph100000(GraphConfiguration100000** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -10401,13 +10412,13 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -10428,11 +10439,17 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -10457,8 +10474,8 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod /* * Graph 100001 */ -StaticGraph100001::StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100001, selectedSettingsId, zoomKeyResolutions), +StaticGraph100001::StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100001, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -10694,14 +10711,13 @@ StaticGraph100001::StaticGraph100001(GraphConfiguration100001** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvOuterNode = &_lbffBayerWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -10778,15 +10794,25 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -10808,15 +10834,25 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv:terminal_connect_gmv_input + subGraphLinks[8]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -10851,8 +10887,8 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod /* * Graph 100002 */ -StaticGraph100002::StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100002, selectedSettingsId, zoomKeyResolutions), +StaticGraph100002::StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100002, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -11022,12 +11058,11 @@ StaticGraph100002::StaticGraph100002(GraphConfiguration100002** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -11092,13 +11127,13 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -11120,11 +11155,17 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -11158,8 +11199,8 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod /* * Graph 100003 */ -StaticGraph100003::StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100003, selectedSettingsId, zoomKeyResolutions), +StaticGraph100003::StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100003, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -11375,13 +11416,12 @@ StaticGraph100003::StaticGraph100003(GraphConfiguration100003** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvOuterNode = &_lbffBayerWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -11452,15 +11492,25 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -11482,15 +11532,25 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv:terminal_connect_gmv_input + subGraphLinks[8]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -11525,8 +11585,8 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod /* * Graph 100005 */ -StaticGraph100005::StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100005, selectedSettingsId, zoomKeyResolutions), +StaticGraph100005::StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100005, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -11745,14 +11805,13 @@ StaticGraph100005::StaticGraph100005(GraphConfiguration100005** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -11829,15 +11888,25 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -11859,13 +11928,21 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -11899,8 +11976,8 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod /* * Graph 100006 */ -StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100006, selectedSettingsId, zoomKeyResolutions), +StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100006, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) @@ -11946,6 +12023,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_isysOuterNode; link->destTerminalId = 0; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -11956,6 +12034,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 8; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -11966,6 +12045,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 8; link->type = LinkType::Source2Node; + _irSubGraph.links[2] = link; _image_irSubGraph.links[16] = link; @@ -11977,6 +12057,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 5; link->type = LinkType::Node2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[2] = link; @@ -11987,6 +12068,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 10; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[3] = link; @@ -11997,6 +12079,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 11; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[4] = link; @@ -12007,6 +12090,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 12; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[5] = link; @@ -12017,6 +12101,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 21; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[6] = link; @@ -12027,6 +12112,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 13; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[7] = link; @@ -12039,6 +12125,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -12050,6 +12137,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _imageSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -12062,6 +12150,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -12074,6 +12163,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -12085,6 +12175,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _imageSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -12097,6 +12188,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -12106,6 +12198,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -12115,6 +12208,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 15; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -12126,6 +12220,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 5; link->type = LinkType::Node2Node; + _irSubGraph.links[9] = link; _image_irSubGraph.links[17] = link; @@ -12135,6 +12230,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 10; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[10] = link; _image_irSubGraph.links[18] = link; @@ -12144,6 +12240,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 11; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[11] = link; _image_irSubGraph.links[19] = link; @@ -12153,6 +12250,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[20] = link; @@ -12162,6 +12260,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 13; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[21] = link; @@ -12173,6 +12272,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _irSubGraph.links[14] = link; _image_irSubGraph.links[22] = link; @@ -12184,6 +12284,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _irSubGraph.links[15] = link; _image_irSubGraph.links[23] = link; @@ -12196,6 +12297,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[16] = link; _image_irSubGraph.links[24] = link; @@ -12208,6 +12310,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[17] = link; _image_irSubGraph.links[25] = link; @@ -12219,6 +12322,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _irSubGraph.links[18] = link; _image_irSubGraph.links[26] = link; @@ -12231,6 +12335,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[19] = link; _image_irSubGraph.links[27] = link; @@ -12240,6 +12345,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[28] = link; @@ -12259,7 +12365,6 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon _graphLinks[i].linkConfiguration = &_graphConfigurations[selectedLinkConfig].linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrOuterNode = &_lbffRgbIrOuterNode; @@ -12273,7 +12378,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon _image_irSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _image_irSubGraph.lbffIrNoGmvIrStreamOuterNode = &_lbffIrNoGmvIrStreamOuterNode; _image_irSubGraph.bbpsIrWithTnrOuterNode = &_bbpsIrWithTnrOuterNode; - + // choose the selected sub graph if ( // image sink group @@ -12417,13 +12522,13 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -12445,12 +12550,19 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -12515,7 +12627,7 @@ StaticGraphStatus irSubGraphTopology100006::configInnerNodes(SubGraphInnerNodeCo bbpsIrWithTnrInnerOptions |= (noDp); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -12539,15 +12651,25 @@ StaticGraphStatus irSubGraphTopology100006::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[11]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[12]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[13]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[20]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -12602,13 +12724,13 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -12630,7 +12752,7 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner bbpsIrWithTnrInnerOptions |= (noDp); // active public options according to sink mapping if ( - subGraphLinks[28]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[28]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -12657,17 +12779,29 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[18]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[19]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[20]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[21]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[28]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -12708,8 +12842,8 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner /* * Graph 100007 */ -StaticGraph100007::StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100007, selectedSettingsId, zoomKeyResolutions), +StaticGraph100007::StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100007, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -12776,11 +12910,10 @@ StaticGraph100007::StaticGraph100007(GraphConfiguration100007** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerBurstOutNo3AOuterNode = &_lbffBayerBurstOutNo3AOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -12836,7 +12969,7 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod lbffBayerBurstOutNo3AInnerOptions |= (noLbOutputPs | noLbOutputMe | noPdaf); // active private inner options according to links if ( - subGraphLinks[2]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 2 && subGraphLinks[2]->linkConfiguration->bufferSize == 0) && true) { lbffBayerBurstOutNo3AInnerOptions |= noBurstCapture; @@ -12870,8 +13003,8 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod /* * Graph 100008 */ -StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100008, selectedSettingsId, zoomKeyResolutions), +StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100008, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) @@ -12917,6 +13050,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_isysOuterNode; link->destTerminalId = 0; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -12927,6 +13061,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 8; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -12937,6 +13072,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 8; link->type = LinkType::Source2Node; + _irSubGraph.links[2] = link; _image_irSubGraph.links[11] = link; @@ -12948,6 +13084,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 5; link->type = LinkType::Node2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[2] = link; @@ -12958,6 +13095,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 10; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[3] = link; @@ -12968,6 +13106,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 11; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[4] = link; @@ -12978,6 +13117,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 12; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[5] = link; @@ -12988,6 +13128,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 21; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[6] = link; @@ -12998,6 +13139,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 13; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[7] = link; @@ -13010,6 +13152,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_bbpsNoTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -13019,6 +13162,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -13028,6 +13172,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 15; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -13039,6 +13184,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 5; link->type = LinkType::Node2Node; + _irSubGraph.links[9] = link; _image_irSubGraph.links[12] = link; @@ -13048,6 +13194,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 10; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[10] = link; _image_irSubGraph.links[13] = link; @@ -13057,6 +13204,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 11; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[11] = link; _image_irSubGraph.links[14] = link; @@ -13066,6 +13214,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[15] = link; @@ -13075,6 +13224,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 13; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[16] = link; @@ -13086,6 +13236,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_bbpsIrNoTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _irSubGraph.links[14] = link; _image_irSubGraph.links[17] = link; @@ -13095,6 +13246,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[18] = link; @@ -13114,7 +13266,6 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon _graphLinks[i].linkConfiguration = &_graphConfigurations[selectedLinkConfig].linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrOuterNode = &_lbffRgbIrOuterNode; @@ -13128,7 +13279,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon _image_irSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; _image_irSubGraph.lbffIrNoGmvIrStreamOuterNode = &_lbffIrNoGmvIrStreamOuterNode; _image_irSubGraph.bbpsIrNoTnrOuterNode = &_bbpsIrNoTnrOuterNode; - + // choose the selected sub graph if ( // image sink group @@ -13272,13 +13423,13 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -13299,12 +13450,19 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -13362,7 +13520,7 @@ StaticGraphStatus irSubGraphTopology100008::configInnerNodes(SubGraphInnerNodeCo bbpsIrNoTnrInnerOptions |= (noDp); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsIrNoTnrInnerOptions |= noMp; @@ -13385,15 +13543,25 @@ StaticGraphStatus irSubGraphTopology100008::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[11]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[12]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[13]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[15]->isActive = !(bbpsIrNoTnrInnerOptions & noMp); // bbps_Ir_NoTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -13441,13 +13609,13 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -13471,7 +13639,7 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner bbpsIrNoTnrInnerOptions |= (noDp); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { bbpsIrNoTnrInnerOptions |= noMp; @@ -13496,17 +13664,29 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[13]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[14]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[15]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[16]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[18]->isActive = !(bbpsIrNoTnrInnerOptions & noMp); // bbps_Ir_NoTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -13533,8 +13713,8 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner /* * Graph 100015 */ -StaticGraph100015::StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100015, selectedSettingsId, zoomKeyResolutions), +StaticGraph100015::StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100015, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -13643,11 +13823,10 @@ StaticGraph100015::StaticGraph100015(GraphConfiguration100015** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -13701,13 +13880,13 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod // active public options according to sink mapping // active private inner options according to links if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 7 && subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { lbffBayerInnerOptions |= noLbOutputPs; } if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 8 && subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffBayerInnerOptions |= noLbOutputMe; @@ -13722,9 +13901,13 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + /* * Link enablement by private inner options @@ -13750,8 +13933,8 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod /* * Graph 100016 */ -StaticGraph100016::StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100016, selectedSettingsId, zoomKeyResolutions), +StaticGraph100016::StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100016, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -13812,10 +13995,9 @@ StaticGraph100016::StaticGraph100016(GraphConfiguration100016** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -13860,13 +14042,13 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[1]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[1]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[2]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[2]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -13881,7 +14063,9 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[1]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[2]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Disable links with zero buffer size @@ -13901,8 +14085,8 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod /* * Graph 100025 */ -StaticGraph100025::StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100025, selectedSettingsId, zoomKeyResolutions), +StaticGraph100025::StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100025, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14024,12 +14208,11 @@ StaticGraph100025::StaticGraph100025(GraphConfiguration100025** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrNoGmvOuterNode = &_lbffIrNoGmvOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -14096,13 +14279,13 @@ StaticGraphStatus imageSubGraphTopology100025::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -14123,11 +14306,17 @@ StaticGraphStatus imageSubGraphTopology100025::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -14152,8 +14341,8 @@ StaticGraphStatus imageSubGraphTopology100025::configInnerNodes(SubGraphInnerNod /* * Graph 100026 */ -StaticGraph100026::StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100026, selectedSettingsId, zoomKeyResolutions), +StaticGraph100026::StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100026, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _rawSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14207,10 +14396,9 @@ StaticGraph100026::StaticGraph100026(GraphConfiguration100026** selectedGraphCon // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _rawSubGraph.isysOuterNode = &_isysOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -14237,8 +14425,8 @@ StaticGraph100026::~StaticGraph100026() /* * Graph 100027 */ -StaticGraph100027::StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100027, selectedSettingsId, zoomKeyResolutions), +StaticGraph100027::StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100027, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14383,12 +14571,11 @@ StaticGraph100027::StaticGraph100027(GraphConfiguration100027** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2OuterNode = &_lbffBayerPdaf2OuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -14455,13 +14642,13 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -14482,11 +14669,17 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[12]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -14512,8 +14705,8 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod /* * Graph 100028 */ -StaticGraph100028::StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100028, selectedSettingsId, zoomKeyResolutions), +StaticGraph100028::StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100028, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14642,12 +14835,11 @@ StaticGraph100028::StaticGraph100028(GraphConfiguration100028** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3OuterNode = &_lbffBayerPdaf3OuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -14714,13 +14906,13 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -14741,11 +14933,17 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -14771,8 +14969,8 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod /* * Graph 100029 */ -StaticGraph100029::StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100029, selectedSettingsId, zoomKeyResolutions), +StaticGraph100029::StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100029, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14965,12 +15163,11 @@ StaticGraph100029::StaticGraph100029(GraphConfiguration100029** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2OuterNode = &_lbffBayerPdaf2OuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -15035,13 +15232,13 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -15063,11 +15260,17 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -15102,8 +15305,8 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod /* * Graph 100030 */ -StaticGraph100030::StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100030, selectedSettingsId, zoomKeyResolutions), +StaticGraph100030::StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100030, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -15280,12 +15483,11 @@ StaticGraph100030::StaticGraph100030(GraphConfiguration100030** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3OuterNode = &_lbffBayerPdaf3OuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -15350,13 +15552,13 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -15378,11 +15580,17 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -15417,8 +15625,8 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod /* * Graph 100031 */ -StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100031, selectedSettingsId, zoomKeyResolutions), +StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100031, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -15612,14 +15820,13 @@ StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsOuterNode = &_lbffDol2InputsOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -15698,15 +15905,25 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -15727,14 +15944,23 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[13]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[12]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[14]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -15759,8 +15985,8 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod /* * Graph 100032 */ -StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100032, selectedSettingsId, zoomKeyResolutions), +StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100032, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -16002,14 +16228,13 @@ StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsOuterNode = &_lbffDol2InputsOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -16086,15 +16311,25 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -16116,14 +16351,23 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffDol2InputsInnerOptions & no3A); // lbff_Dol2Inputs:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -16157,8 +16401,8 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod /* * Graph 100033 */ -StaticGraph100033::StaticGraph100033(GraphConfiguration100033** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100033, selectedSettingsId, zoomKeyResolutions), +StaticGraph100033::StaticGraph100033(GraphConfiguration100033** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100033, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -16374,7 +16618,6 @@ StaticGraph100033::StaticGraph100033(GraphConfiguration100033** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; @@ -16382,7 +16625,7 @@ StaticGraph100033::StaticGraph100033(GraphConfiguration100033** selectedGraphCon _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -16467,15 +16710,25 @@ StaticGraphStatus imageSubGraphTopology100033::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -16496,14 +16749,23 @@ StaticGraphStatus imageSubGraphTopology100033::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[13]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -16528,8 +16790,8 @@ StaticGraphStatus imageSubGraphTopology100033::configInnerNodes(SubGraphInnerNod /* * Graph 100034 */ -StaticGraph100034::StaticGraph100034(GraphConfiguration100034** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100034, selectedSettingsId, zoomKeyResolutions), +StaticGraph100034::StaticGraph100034(GraphConfiguration100034** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100034, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -16793,7 +17055,6 @@ StaticGraph100034::StaticGraph100034(GraphConfiguration100034** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; @@ -16801,7 +17062,7 @@ StaticGraph100034::StaticGraph100034(GraphConfiguration100034** selectedGraphCon _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -16884,15 +17145,25 @@ StaticGraphStatus imageSubGraphTopology100034::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -16914,14 +17185,23 @@ StaticGraphStatus imageSubGraphTopology100034::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffDol3InputsInnerOptions & no3A); // lbff_Dol3Inputs:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -16955,8 +17235,8 @@ StaticGraphStatus imageSubGraphTopology100034::configInnerNodes(SubGraphInnerNod /* * Graph 100035 */ -StaticGraph100035::StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100035, selectedSettingsId, zoomKeyResolutions), +StaticGraph100035::StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100035, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _rawSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -17024,10 +17304,9 @@ StaticGraph100035::StaticGraph100035(GraphConfiguration100035** selectedGraphCon // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _rawSubGraph.isysDolOuterNode = &_isysDolOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -17054,8 +17333,8 @@ StaticGraph100035::~StaticGraph100035() /* * Graph 100036 */ -StaticGraph100036::StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100036, selectedSettingsId, zoomKeyResolutions), +StaticGraph100036::StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100036, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _rawSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -17123,10 +17402,9 @@ StaticGraph100036::StaticGraph100036(GraphConfiguration100036** selectedGraphCon // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _rawSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -17153,8 +17431,8 @@ StaticGraph100036::~StaticGraph100036() /* * Graph 100037 */ -StaticGraph100037::StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100037, selectedSettingsId, zoomKeyResolutions), +StaticGraph100037::StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100037, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -17393,13 +17671,12 @@ StaticGraph100037::StaticGraph100037(GraphConfiguration100037** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvOuterNode = &_lbffBayerPdaf2WithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -17470,15 +17747,25 @@ StaticGraphStatus imageSubGraphTopology100037::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -17500,15 +17787,25 @@ StaticGraphStatus imageSubGraphTopology100037::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf2_WithGmv:terminal_connect_gmv_input + subGraphLinks[11]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -17544,8 +17841,8 @@ StaticGraphStatus imageSubGraphTopology100037::configInnerNodes(SubGraphInnerNod /* * Graph 100038 */ -StaticGraph100038::StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100038, selectedSettingsId, zoomKeyResolutions), +StaticGraph100038::StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100038, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -17768,13 +18065,12 @@ StaticGraph100038::StaticGraph100038(GraphConfiguration100038** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvOuterNode = &_lbffBayerPdaf3WithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -17845,15 +18141,25 @@ StaticGraphStatus imageSubGraphTopology100038::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -17875,15 +18181,25 @@ StaticGraphStatus imageSubGraphTopology100038::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3_WithGmv:terminal_connect_gmv_input + subGraphLinks[9]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -17919,8 +18235,8 @@ StaticGraphStatus imageSubGraphTopology100038::configInnerNodes(SubGraphInnerNod /* * Graph 100039 */ -StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100039, selectedSettingsId, zoomKeyResolutions), +StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100039, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) @@ -17970,6 +18286,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_isysOuterNode; link->destTerminalId = 0; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -17980,6 +18297,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffRgbIrWithGmvOuterNode; link->destTerminalId = 8; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -17990,6 +18308,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffIrWithGmvIrStreamOuterNode; link->destTerminalId = 8; link->type = LinkType::Source2Node; + _irSubGraph.links[2] = link; _image_irSubGraph.links[21] = link; @@ -18001,6 +18320,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffRgbIrWithGmvOuterNode; link->destTerminalId = 5; link->type = LinkType::Node2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[2] = link; @@ -18011,6 +18331,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 10; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[3] = link; @@ -18021,6 +18342,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 11; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[4] = link; @@ -18031,6 +18353,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 12; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[5] = link; @@ -18041,6 +18364,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 13; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[6] = link; @@ -18051,6 +18375,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 21; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[7] = link; @@ -18064,6 +18389,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 20; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[8] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[8] = link; @@ -18074,6 +18400,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 23; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[9] = link; @@ -18086,6 +18413,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _imageSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -18097,6 +18425,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _imageSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -18109,6 +18438,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -18121,6 +18451,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -18132,6 +18463,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _imageSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -18144,6 +18476,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -18153,6 +18486,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -18162,6 +18496,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 15; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -18173,6 +18508,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffIrWithGmvIrStreamOuterNode; link->destTerminalId = 5; link->type = LinkType::Node2Node; + _irSubGraph.links[11] = link; _image_irSubGraph.links[22] = link; @@ -18182,6 +18518,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 10; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[23] = link; @@ -18191,6 +18528,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 11; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[24] = link; @@ -18200,6 +18538,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[14] = link; _image_irSubGraph.links[25] = link; @@ -18209,6 +18548,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 13; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[26] = link; @@ -18220,6 +18560,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _irSubGraph.links[16] = link; _image_irSubGraph.links[27] = link; @@ -18231,6 +18572,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _irSubGraph.links[17] = link; _image_irSubGraph.links[28] = link; @@ -18243,6 +18585,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[18] = link; _image_irSubGraph.links[29] = link; @@ -18255,6 +18598,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[19] = link; _image_irSubGraph.links[30] = link; @@ -18266,6 +18610,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _irSubGraph.links[20] = link; _image_irSubGraph.links[31] = link; @@ -18278,6 +18623,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[21] = link; _image_irSubGraph.links[32] = link; @@ -18287,6 +18633,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[22] = link; _image_irSubGraph.links[33] = link; @@ -18298,6 +18645,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -18309,6 +18657,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -18318,6 +18667,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -18337,7 +18687,6 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon _graphLinks[i].linkConfiguration = &_graphConfigurations[selectedLinkConfig].linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrWithGmvOuterNode = &_lbffRgbIrWithGmvOuterNode; @@ -18353,7 +18702,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffIrWithGmvIrStreamOuterNode = &_lbffIrWithGmvIrStreamOuterNode; _image_irSubGraph.bbpsIrWithTnrOuterNode = &_bbpsIrWithTnrOuterNode; - + // choose the selected sub graph if ( // image sink group @@ -18504,15 +18853,25 @@ StaticGraphStatus imageSubGraphTopology100039::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -18534,16 +18893,27 @@ StaticGraphStatus imageSubGraphTopology100039::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_feature_output -> lbff_RgbIr_WithGmv:terminal_connect_gmv_input + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -18609,7 +18979,7 @@ StaticGraphStatus irSubGraphTopology100039::configInnerNodes(SubGraphInnerNodeCo bbpsIrWithTnrInnerOptions |= (noDp); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -18633,17 +19003,29 @@ StaticGraphStatus irSubGraphTopology100039::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_feature_output -> lbff_RgbIr_WithGmv:terminal_connect_gmv_input + subGraphLinks[10]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[12]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[13]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[14]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[15]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[22]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -18699,15 +19081,25 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -18729,7 +19121,7 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner bbpsIrWithTnrInnerOptions |= (noDp); // active public options according to sink mapping if ( - subGraphLinks[33]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[33]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -18756,21 +19148,37 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_feature_output -> lbff_RgbIr_WithGmv:terminal_connect_gmv_input + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[23]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[24]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[25]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[26]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[33]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -18812,8 +19220,8 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner /* * Graph 100040 */ -StaticGraph100040::StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100040, selectedSettingsId, zoomKeyResolutions), +StaticGraph100040::StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100040, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -19052,13 +19460,12 @@ StaticGraph100040::StaticGraph100040(GraphConfiguration100040** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsWithGmvOuterNode = &_lbffDol2InputsWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -19129,15 +19536,25 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -19159,16 +19576,27 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsWithGmvInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffDol2InputsWithGmvInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[10]->isActive = !(lbffDol2InputsWithGmvInnerOptions & noGmv); // lbff_Dol2Inputs_WithGmv:terminal_connect_gmv_feature_output -> lbff_Dol2Inputs_WithGmv:terminal_connect_gmv_input + subGraphLinks[11]->isActive = !(lbffDol2InputsWithGmvInnerOptions & noGmv); // lbff_Dol2Inputs_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -19203,8 +19631,8 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod /* * Graph 100041 */ -StaticGraph100041::StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100041, selectedSettingsId, zoomKeyResolutions), +StaticGraph100041::StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100041, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -19465,14 +19893,13 @@ StaticGraph100041::StaticGraph100041(GraphConfiguration100041** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvOuterNode = &_lbffDol3InputsWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -19549,15 +19976,25 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -19579,16 +20016,27 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffDol3InputsWithGmvInnerOptions & noGmv); // lbff_Dol3Inputs_WithGmv:terminal_connect_gmv_feature_output -> lbff_Dol3Inputs_WithGmv:terminal_connect_gmv_input + subGraphLinks[13]->isActive = !(lbffDol3InputsWithGmvInnerOptions & noGmv); // lbff_Dol3Inputs_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[22]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[23]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -19623,8 +20071,8 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod /* * Graph 100042 */ -StaticGraph100042::StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100042, selectedSettingsId, zoomKeyResolutions), +StaticGraph100042::StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100042, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -19850,14 +20298,13 @@ StaticGraph100042::StaticGraph100042(GraphConfiguration100042** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3OuterNode = &_lbffBayerPdaf3OuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -19934,15 +20381,25 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -19964,13 +20421,21 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -20005,8 +20470,8 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod /* * Graph 100044 */ -StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100044, selectedSettingsId, zoomKeyResolutions), +StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100044, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -20247,7 +20712,6 @@ StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; @@ -20255,7 +20719,7 @@ StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphCon _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swImvOuterNode = &_swImvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -20338,15 +20802,25 @@ StaticGraphStatus imageSubGraphTopology100044::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -20368,13 +20842,21 @@ StaticGraphStatus imageSubGraphTopology100044::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -20408,8 +20890,8 @@ StaticGraphStatus imageSubGraphTopology100044::configInnerNodes(SubGraphInnerNod /* * Graph 100050 */ -StaticGraph100050::StaticGraph100050(GraphConfiguration100050** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100050, selectedSettingsId, zoomKeyResolutions), +StaticGraph100050::StaticGraph100050(GraphConfiguration100050** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100050, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -20628,21 +21110,20 @@ StaticGraph100050::StaticGraph100050(GraphConfiguration100050** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swImvOuterNode = &_swImvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; // logical node IDs _imageSubGraph.isysOuterNode->contextId = 0; - _imageSubGraph.lbffBayerOuterNode->contextId = 1; - _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 1; + _imageSubGraph.lbffBayerOuterNode->contextId = 2; _imageSubGraph.bbpsWithTnrOuterNode->contextId = 3; _imageSubGraph.swImvOuterNode->contextId = 4; // Apply a default inner nodes configuration for the selected sub graph @@ -20712,15 +21193,25 @@ StaticGraphStatus imageSubGraphTopology100050::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -20742,13 +21233,21 @@ StaticGraphStatus imageSubGraphTopology100050::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_imv:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_imv:terminal_connect_input + /* * Link enablement by private inner options @@ -20782,8 +21281,8 @@ StaticGraphStatus imageSubGraphTopology100050::configInnerNodes(SubGraphInnerNod /* * Graph 100051 */ -StaticGraph100051::StaticGraph100051(GraphConfiguration100051** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100051, selectedSettingsId, zoomKeyResolutions), +StaticGraph100051::StaticGraph100051(GraphConfiguration100051** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100051, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -21015,7 +21514,6 @@ StaticGraph100051::StaticGraph100051(GraphConfiguration100051** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; @@ -21023,14 +21521,14 @@ StaticGraph100051::StaticGraph100051(GraphConfiguration100051** selectedGraphCon _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swImvOuterNode = &_swImvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; // logical node IDs _imageSubGraph.isysOuterNode->contextId = 0; - _imageSubGraph.lbffBayerOuterNode->contextId = 1; - _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.lbffBayerOuterNode->contextId = 2; _imageSubGraph.bbpsWithTnrOuterNode->contextId = 3; _imageSubGraph.swNntmOuterNode->contextId = 4; _imageSubGraph.swImvOuterNode->contextId = 5; @@ -21106,15 +21604,25 @@ StaticGraphStatus imageSubGraphTopology100051::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -21136,13 +21644,21 @@ StaticGraphStatus imageSubGraphTopology100051::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -21176,8 +21692,8 @@ StaticGraphStatus imageSubGraphTopology100051::configInnerNodes(SubGraphInnerNod /* * Graph 100058 */ -StaticGraph100058::StaticGraph100058(GraphConfiguration100058** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100058, selectedSettingsId, zoomKeyResolutions), +StaticGraph100058::StaticGraph100058(GraphConfiguration100058** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100058, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -21360,13 +21876,12 @@ StaticGraph100058::StaticGraph100058(GraphConfiguration100058** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -21437,13 +21952,13 @@ StaticGraphStatus imageSubGraphTopology100058::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -21465,11 +21980,17 @@ StaticGraphStatus imageSubGraphTopology100058::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -21503,8 +22024,8 @@ StaticGraphStatus imageSubGraphTopology100058::configInnerNodes(SubGraphInnerNod /* * Graph 100059 */ -StaticGraph100059::StaticGraph100059(GraphConfiguration100059** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100059, selectedSettingsId, zoomKeyResolutions), +StaticGraph100059::StaticGraph100059(GraphConfiguration100059** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100059, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -21736,7 +22257,6 @@ StaticGraph100059::StaticGraph100059(GraphConfiguration100059** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; @@ -21744,7 +22264,7 @@ StaticGraph100059::StaticGraph100059(GraphConfiguration100059** selectedGraphCon _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -21827,15 +22347,25 @@ StaticGraphStatus imageSubGraphTopology100059::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -21857,13 +22387,21 @@ StaticGraphStatus imageSubGraphTopology100059::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -21897,8 +22435,8 @@ StaticGraphStatus imageSubGraphTopology100059::configInnerNodes(SubGraphInnerNod /* * Graph 100060 */ -StaticGraph100060::StaticGraph100060(GraphConfiguration100060** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100060, selectedSettingsId, zoomKeyResolutions), +StaticGraph100060::StaticGraph100060(GraphConfiguration100060** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100060, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -22081,13 +22619,12 @@ StaticGraph100060::StaticGraph100060(GraphConfiguration100060** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -22158,13 +22695,13 @@ StaticGraphStatus imageSubGraphTopology100060::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -22186,11 +22723,17 @@ StaticGraphStatus imageSubGraphTopology100060::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + /* * Link enablement by private inner options @@ -22224,8 +22767,8 @@ StaticGraphStatus imageSubGraphTopology100060::configInnerNodes(SubGraphInnerNod /* * Graph 100061 */ -StaticGraph100061::StaticGraph100061(GraphConfiguration100061** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100061, selectedSettingsId, zoomKeyResolutions), +StaticGraph100061::StaticGraph100061(GraphConfiguration100061** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100061, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -22457,7 +23000,6 @@ StaticGraph100061::StaticGraph100061(GraphConfiguration100061** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; @@ -22465,7 +23007,7 @@ StaticGraph100061::StaticGraph100061(GraphConfiguration100061** selectedGraphCon _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -22548,15 +23090,25 @@ StaticGraphStatus imageSubGraphTopology100061::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -22578,13 +23130,21 @@ StaticGraphStatus imageSubGraphTopology100061::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -22618,8 +23178,8 @@ StaticGraphStatus imageSubGraphTopology100061::configInnerNodes(SubGraphInnerNod /* * Graph 100052 */ -StaticGraph100052::StaticGraph100052(GraphConfiguration100052** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100052, selectedSettingsId, zoomKeyResolutions), +StaticGraph100052::StaticGraph100052(GraphConfiguration100052** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100052, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -22813,14 +23373,13 @@ StaticGraph100052::StaticGraph100052(GraphConfiguration100052** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsBayerStatOuterNode = &_lbffDol2InputsBayerStatOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -22899,15 +23458,25 @@ StaticGraphStatus imageSubGraphTopology100052::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -22928,14 +23497,23 @@ StaticGraphStatus imageSubGraphTopology100052::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[13]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[12]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[14]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -22960,8 +23538,8 @@ StaticGraphStatus imageSubGraphTopology100052::configInnerNodes(SubGraphInnerNod /* * Graph 100053 */ -StaticGraph100053::StaticGraph100053(GraphConfiguration100053** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100053, selectedSettingsId, zoomKeyResolutions), +StaticGraph100053::StaticGraph100053(GraphConfiguration100053** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100053, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -23203,14 +23781,13 @@ StaticGraph100053::StaticGraph100053(GraphConfiguration100053** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsBayerStatOuterNode = &_lbffDol2InputsBayerStatOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -23287,15 +23864,25 @@ StaticGraphStatus imageSubGraphTopology100053::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -23317,14 +23904,23 @@ StaticGraphStatus imageSubGraphTopology100053::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffDol2InputsBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_BayerStat:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -23358,8 +23954,8 @@ StaticGraphStatus imageSubGraphTopology100053::configInnerNodes(SubGraphInnerNod /* * Graph 100054 */ -StaticGraph100054::StaticGraph100054(GraphConfiguration100054** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100054, selectedSettingsId, zoomKeyResolutions), +StaticGraph100054::StaticGraph100054(GraphConfiguration100054** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100054, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -23575,7 +24171,6 @@ StaticGraph100054::StaticGraph100054(GraphConfiguration100054** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; @@ -23583,7 +24178,7 @@ StaticGraph100054::StaticGraph100054(GraphConfiguration100054** selectedGraphCon _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -23668,15 +24263,25 @@ StaticGraphStatus imageSubGraphTopology100054::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noDp; @@ -23697,14 +24302,23 @@ StaticGraphStatus imageSubGraphTopology100054::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[13]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -23729,8 +24343,8 @@ StaticGraphStatus imageSubGraphTopology100054::configInnerNodes(SubGraphInnerNod /* * Graph 100055 */ -StaticGraph100055::StaticGraph100055(GraphConfiguration100055** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100055, selectedSettingsId, zoomKeyResolutions), +StaticGraph100055::StaticGraph100055(GraphConfiguration100055** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100055, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -23994,7 +24608,6 @@ StaticGraph100055::StaticGraph100055(GraphConfiguration100055** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; @@ -24002,7 +24615,7 @@ StaticGraph100055::StaticGraph100055(GraphConfiguration100055** selectedGraphCon _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -24085,15 +24698,25 @@ StaticGraphStatus imageSubGraphTopology100055::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -24115,14 +24738,23 @@ StaticGraphStatus imageSubGraphTopology100055::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffDol3InputsBayerStatInnerOptions & no3A); // lbff_Dol3Inputs_BayerStat:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -24156,8 +24788,8 @@ StaticGraphStatus imageSubGraphTopology100055::configInnerNodes(SubGraphInnerNod /* * Graph 100056 */ -StaticGraph100056::StaticGraph100056(GraphConfiguration100056** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100056, selectedSettingsId, zoomKeyResolutions), +StaticGraph100056::StaticGraph100056(GraphConfiguration100056** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100056, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -24396,13 +25028,12 @@ StaticGraph100056::StaticGraph100056(GraphConfiguration100056** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsWithGmvBayerStatOuterNode = &_lbffDol2InputsWithGmvBayerStatOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -24473,15 +25104,25 @@ StaticGraphStatus imageSubGraphTopology100056::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -24503,16 +25144,27 @@ StaticGraphStatus imageSubGraphTopology100056::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[10]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & noGmv); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_gmv_feature_output -> lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_gmv_input + subGraphLinks[11]->isActive = !(lbffDol2InputsWithGmvBayerStatInnerOptions & noGmv); // lbff_Dol2Inputs_WithGmv_BayerStat:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -24547,8 +25199,8 @@ StaticGraphStatus imageSubGraphTopology100056::configInnerNodes(SubGraphInnerNod /* * Graph 100057 */ -StaticGraph100057::StaticGraph100057(GraphConfiguration100057** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100057, selectedSettingsId, zoomKeyResolutions), +StaticGraph100057::StaticGraph100057(GraphConfiguration100057** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100057, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -24809,14 +25461,13 @@ StaticGraph100057::StaticGraph100057(GraphConfiguration100057** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvOuterNode = &_lbffDol3InputsWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -24893,15 +25544,25 @@ StaticGraphStatus imageSubGraphTopology100057::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -24923,16 +25584,27 @@ StaticGraphStatus imageSubGraphTopology100057::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffDol3InputsWithGmvInnerOptions & noGmv); // lbff_Dol3Inputs_WithGmv:terminal_connect_gmv_feature_output -> lbff_Dol3Inputs_WithGmv:terminal_connect_gmv_input + subGraphLinks[13]->isActive = !(lbffDol3InputsWithGmvInnerOptions & noGmv); // lbff_Dol3Inputs_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[22]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[23]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.h b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.h index 85a251b..4897a3d 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.h +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphAutogen.h @@ -34,10 +34,14 @@ #include "Ipu75xaStaticGraphTypesAutogen.h" #include "Ipu75xaStaticGraphBinaryAutogen.h" +#define SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH 0 + #define SUPPORT_KEY_RESOLUTIONS 1 #define SUPPORT_FRAGMENTS 0 +#define SUPPORT_TM_SWITCH 0 + enum InnerNodeOption { None = 0, @@ -77,6 +81,7 @@ class OuterNode { StaticGraphNodeKernels nodeKernels = {}; uint8_t numberOfFragments = 0; + OuterNode() {} ~OuterNode(); @@ -144,12 +149,13 @@ class GraphTopology { class IStaticGraphConfig { public: - IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t selectedSettingsId, ZoomKeyResolutions* zoomKeyResolutions); + IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t selectedSettingsId, int32_t additonalFeaturesBit, ZoomKeyResolutions* zoomKeyResolutions); virtual ~IStaticGraphConfig(){} StaticGraphStatus getGraphTopology(GraphTopology** topology); StaticGraphStatus getSensorMode(SensorMode** sensorMode); StaticGraphStatus getGraphId(int32_t* id); StaticGraphStatus getSettingsId(int32_t* id); + StaticGraphStatus getAdditionalFeaturesBit(int32_t* featuresBit); StaticGraphStatus getVirtualSinkConnection(VirtualSink& virtualSink, HwSink* hwSink); StaticGraphStatus getZoomKeyResolutions(ZoomKeyResolutions** zoomKeyResolutions); virtual StaticGraphStatus updateConfiguration(uint32_t selectedIndex = 0) = 0; @@ -162,6 +168,7 @@ class IStaticGraphConfig private: int32_t _graphId; int32_t _settingsId; + int32_t _additonalFeaturesBit; VirtualSinkMapping _selectedSinkMappingConfiguration; }; @@ -438,6 +445,7 @@ struct SwB2bOuterNodeConfiguration uint8_t tuningMode = 0; StaticGraphKernelRes resolutionHistories[1]; StaticGraphKernelBppConfiguration bppInfos[1]; + uint8_t systemApiConfiguration[20]; }; struct SwImvOuterNodeConfiguration @@ -500,6 +508,7 @@ struct GraphConfiguration100000 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[10]; }; @@ -511,6 +520,7 @@ struct GraphConfiguration100001 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[22]; }; @@ -520,6 +530,7 @@ struct GraphConfiguration100002 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[15]; }; @@ -530,6 +541,7 @@ struct GraphConfiguration100003 LbffBayerWithGmvOuterNodeConfiguration lbffBayerWithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[20]; }; @@ -541,6 +553,7 @@ struct GraphConfiguration100005 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[20]; }; @@ -552,6 +565,7 @@ struct GraphConfiguration100006 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; LbffIrNoGmvIrStreamOuterNodeConfiguration lbffIrNoGmvIrStreamOuterNodeConfiguration; BbpsIrWithTnrOuterNodeConfiguration bbpsIrWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[29]; }; @@ -560,6 +574,7 @@ struct GraphConfiguration100007 VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerBurstOutNo3AOuterNodeConfiguration lbffBayerBurstOutNo3AOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[3]; }; @@ -571,6 +586,7 @@ struct GraphConfiguration100008 BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; LbffIrNoGmvIrStreamOuterNodeConfiguration lbffIrNoGmvIrStreamOuterNodeConfiguration; BbpsIrNoTnrOuterNodeConfiguration bbpsIrNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[19]; }; @@ -579,6 +595,7 @@ struct GraphConfiguration100015 VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[9]; }; @@ -586,6 +603,7 @@ struct GraphConfiguration100016 { VirtualSinkMapping sinkMappingConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[3]; }; @@ -595,6 +613,7 @@ struct GraphConfiguration100025 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffIrNoGmvOuterNodeConfiguration lbffIrNoGmvOuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[10]; }; @@ -602,6 +621,7 @@ struct GraphConfiguration100026 { VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[2]; }; @@ -611,6 +631,7 @@ struct GraphConfiguration100027 IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; LbffBayerPdaf2OuterNodeConfiguration lbffBayerPdaf2OuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[13]; }; @@ -620,6 +641,7 @@ struct GraphConfiguration100028 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3OuterNodeConfiguration lbffBayerPdaf3OuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[11]; }; @@ -629,6 +651,7 @@ struct GraphConfiguration100029 IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; LbffBayerPdaf2OuterNodeConfiguration lbffBayerPdaf2OuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[18]; }; @@ -638,6 +661,7 @@ struct GraphConfiguration100030 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3OuterNodeConfiguration lbffBayerPdaf3OuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[16]; }; @@ -649,6 +673,7 @@ struct GraphConfiguration100031 BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[18]; }; @@ -660,6 +685,7 @@ struct GraphConfiguration100032 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -672,6 +698,7 @@ struct GraphConfiguration100033 BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[20]; }; @@ -684,6 +711,7 @@ struct GraphConfiguration100034 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[25]; }; @@ -691,6 +719,7 @@ struct GraphConfiguration100035 { VirtualSinkMapping sinkMappingConfiguration; IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[4]; }; @@ -698,6 +727,7 @@ struct GraphConfiguration100036 { VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[4]; }; @@ -708,6 +738,7 @@ struct GraphConfiguration100037 LbffBayerPdaf2WithGmvOuterNodeConfiguration lbffBayerPdaf2WithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -718,6 +749,7 @@ struct GraphConfiguration100038 LbffBayerPdaf3WithGmvOuterNodeConfiguration lbffBayerPdaf3WithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -730,6 +762,7 @@ struct GraphConfiguration100039 LbffIrWithGmvIrStreamOuterNodeConfiguration lbffIrWithGmvIrStreamOuterNodeConfiguration; BbpsIrWithTnrOuterNodeConfiguration bbpsIrWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[34]; }; @@ -740,6 +773,7 @@ struct GraphConfiguration100040 LbffDol2InputsWithGmvOuterNodeConfiguration lbffDol2InputsWithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -751,6 +785,7 @@ struct GraphConfiguration100041 LbffDol3InputsWithGmvOuterNodeConfiguration lbffDol3InputsWithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[25]; }; @@ -762,6 +797,7 @@ struct GraphConfiguration100042 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -774,6 +810,7 @@ struct GraphConfiguration100044 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[22]; }; @@ -785,6 +822,7 @@ struct GraphConfiguration100050 LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[20]; }; @@ -797,6 +835,7 @@ struct GraphConfiguration100051 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -807,6 +846,7 @@ struct GraphConfiguration100058 SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[16]; }; @@ -819,6 +859,7 @@ struct GraphConfiguration100059 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -829,6 +870,7 @@ struct GraphConfiguration100060 SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[16]; }; @@ -841,6 +883,7 @@ struct GraphConfiguration100061 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -852,6 +895,7 @@ struct GraphConfiguration100052 BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[18]; }; @@ -863,6 +907,7 @@ struct GraphConfiguration100053 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -875,6 +920,7 @@ struct GraphConfiguration100054 BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[20]; }; @@ -887,6 +933,7 @@ struct GraphConfiguration100055 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[25]; }; @@ -897,6 +944,7 @@ struct GraphConfiguration100056 LbffDol2InputsWithGmvBayerStatOuterNodeConfiguration lbffDol2InputsWithGmvBayerStatOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -908,6 +956,7 @@ struct GraphConfiguration100057 LbffDol3InputsWithGmvOuterNodeConfiguration lbffDol3InputsWithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[25]; }; #pragma pack(pop) @@ -1235,10 +1284,10 @@ class imageSubGraphTopology100000 : public GraphTopology { class StaticGraph100000 : public IStaticGraphConfig { public: - StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100000(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1537479015; // autogenerated + static const uint32_t hashCode = 4244218498; // autogenerated private: // Configuration @@ -1256,6 +1305,7 @@ class StaticGraph100000 : public IStaticGraphConfig imageSubGraphTopology100000 _imageSubGraph; // All graph links + GraphLink _graphLinks[10]; }; @@ -1277,10 +1327,10 @@ class imageSubGraphTopology100001 : public GraphTopology { class StaticGraph100001 : public IStaticGraphConfig { public: - StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100001(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3707226909; // autogenerated + static const uint32_t hashCode = 1897089408; // autogenerated private: // Configuration @@ -1300,6 +1350,7 @@ class StaticGraph100001 : public IStaticGraphConfig imageSubGraphTopology100001 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -1319,10 +1370,10 @@ class imageSubGraphTopology100002 : public GraphTopology { class StaticGraph100002 : public IStaticGraphConfig { public: - StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100002(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1767951059; // autogenerated + static const uint32_t hashCode = 1658171226; // autogenerated private: // Configuration @@ -1340,6 +1391,7 @@ class StaticGraph100002 : public IStaticGraphConfig imageSubGraphTopology100002 _imageSubGraph; // All graph links + GraphLink _graphLinks[15]; }; @@ -1360,10 +1412,10 @@ class imageSubGraphTopology100003 : public GraphTopology { class StaticGraph100003 : public IStaticGraphConfig { public: - StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100003(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1525718357; // autogenerated + static const uint32_t hashCode = 2030627160; // autogenerated private: // Configuration @@ -1382,6 +1434,7 @@ class StaticGraph100003 : public IStaticGraphConfig imageSubGraphTopology100003 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -1403,10 +1456,10 @@ class imageSubGraphTopology100005 : public GraphTopology { class StaticGraph100005 : public IStaticGraphConfig { public: - StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100005(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3534627337; // autogenerated + static const uint32_t hashCode = 1337755796; // autogenerated private: // Configuration @@ -1426,6 +1479,7 @@ class StaticGraph100005 : public IStaticGraphConfig imageSubGraphTopology100005 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -1474,10 +1528,10 @@ class image_irSubGraphTopology100006 : public GraphTopology { class StaticGraph100006 : public IStaticGraphConfig { public: - StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100006(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3777757539; // autogenerated + static const uint32_t hashCode = 750181042; // autogenerated private: // Configuration @@ -1499,6 +1553,7 @@ class StaticGraph100006 : public IStaticGraphConfig image_irSubGraphTopology100006 _image_irSubGraph; // All graph links + GraphLink _graphLinks[29]; }; @@ -1517,10 +1572,10 @@ class imageSubGraphTopology100007 : public GraphTopology { class StaticGraph100007 : public IStaticGraphConfig { public: - StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100007(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4154986701; // autogenerated + static const uint32_t hashCode = 4124222724; // autogenerated private: // Configuration @@ -1537,6 +1592,7 @@ class StaticGraph100007 : public IStaticGraphConfig imageSubGraphTopology100007 _imageSubGraph; // All graph links + GraphLink _graphLinks[3]; }; @@ -1585,10 +1641,10 @@ class image_irSubGraphTopology100008 : public GraphTopology { class StaticGraph100008 : public IStaticGraphConfig { public: - StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100008(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2945925619; // autogenerated + static const uint32_t hashCode = 4153378682; // autogenerated private: // Configuration @@ -1610,6 +1666,7 @@ class StaticGraph100008 : public IStaticGraphConfig image_irSubGraphTopology100008 _image_irSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -1628,10 +1685,10 @@ class imageSubGraphTopology100015 : public GraphTopology { class StaticGraph100015 : public IStaticGraphConfig { public: - StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100015(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1157469161; // autogenerated + static const uint32_t hashCode = 1806099080; // autogenerated private: // Configuration @@ -1648,6 +1705,7 @@ class StaticGraph100015 : public IStaticGraphConfig imageSubGraphTopology100015 _imageSubGraph; // All graph links + GraphLink _graphLinks[9]; }; @@ -1665,10 +1723,10 @@ class imageSubGraphTopology100016 : public GraphTopology { class StaticGraph100016 : public IStaticGraphConfig { public: - StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100016(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3498640191; // autogenerated + static const uint32_t hashCode = 3551467222; // autogenerated private: // Configuration @@ -1684,6 +1742,7 @@ class StaticGraph100016 : public IStaticGraphConfig imageSubGraphTopology100016 _imageSubGraph; // All graph links + GraphLink _graphLinks[3]; }; @@ -1703,10 +1762,10 @@ class imageSubGraphTopology100025 : public GraphTopology { class StaticGraph100025 : public IStaticGraphConfig { public: - StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100025(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1537479015; // autogenerated + static const uint32_t hashCode = 4244218498; // autogenerated private: // Configuration @@ -1724,6 +1783,7 @@ class StaticGraph100025 : public IStaticGraphConfig imageSubGraphTopology100025 _imageSubGraph; // All graph links + GraphLink _graphLinks[10]; }; @@ -1739,10 +1799,10 @@ class rawSubGraphTopology100026 : public GraphTopology { class StaticGraph100026 : public IStaticGraphConfig { public: - StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100026(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4190204929; // autogenerated + static const uint32_t hashCode = 3485835604; // autogenerated private: // Configuration @@ -1758,6 +1818,7 @@ class StaticGraph100026 : public IStaticGraphConfig rawSubGraphTopology100026 _rawSubGraph; // All graph links + GraphLink _graphLinks[2]; }; @@ -1777,10 +1838,10 @@ class imageSubGraphTopology100027 : public GraphTopology { class StaticGraph100027 : public IStaticGraphConfig { public: - StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100027(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2120911163; // autogenerated + static const uint32_t hashCode = 1866576586; // autogenerated private: // Configuration @@ -1798,6 +1859,7 @@ class StaticGraph100027 : public IStaticGraphConfig imageSubGraphTopology100027 _imageSubGraph; // All graph links + GraphLink _graphLinks[13]; }; @@ -1817,10 +1879,10 @@ class imageSubGraphTopology100028 : public GraphTopology { class StaticGraph100028 : public IStaticGraphConfig { public: - StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100028(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3376369405; // autogenerated + static const uint32_t hashCode = 1320674156; // autogenerated private: // Configuration @@ -1838,6 +1900,7 @@ class StaticGraph100028 : public IStaticGraphConfig imageSubGraphTopology100028 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -1857,10 +1920,10 @@ class imageSubGraphTopology100029 : public GraphTopology { class StaticGraph100029 : public IStaticGraphConfig { public: - StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100029(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1591153839; // autogenerated + static const uint32_t hashCode = 2803825786; // autogenerated private: // Configuration @@ -1878,6 +1941,7 @@ class StaticGraph100029 : public IStaticGraphConfig imageSubGraphTopology100029 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -1897,10 +1961,10 @@ class imageSubGraphTopology100030 : public GraphTopology { class StaticGraph100030 : public IStaticGraphConfig { public: - StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100030(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1660498049; // autogenerated + static const uint32_t hashCode = 2919332860; // autogenerated private: // Configuration @@ -1918,6 +1982,7 @@ class StaticGraph100030 : public IStaticGraphConfig imageSubGraphTopology100030 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -1939,10 +2004,10 @@ class imageSubGraphTopology100031 : public GraphTopology { class StaticGraph100031 : public IStaticGraphConfig { public: - StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100031(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 118408815; // autogenerated + static const uint32_t hashCode = 1710861946; // autogenerated private: // Configuration @@ -1962,6 +2027,7 @@ class StaticGraph100031 : public IStaticGraphConfig imageSubGraphTopology100031 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -1983,10 +2049,10 @@ class imageSubGraphTopology100032 : public GraphTopology { class StaticGraph100032 : public IStaticGraphConfig { public: - StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100032(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 517995227; // autogenerated + static const uint32_t hashCode = 2196734322; // autogenerated private: // Configuration @@ -2006,6 +2072,7 @@ class StaticGraph100032 : public IStaticGraphConfig imageSubGraphTopology100032 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -2028,10 +2095,10 @@ class imageSubGraphTopology100033 : public GraphTopology { class StaticGraph100033 : public IStaticGraphConfig { public: - StaticGraph100033(GraphConfiguration100033** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100033(GraphConfiguration100033** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100033(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4097458217; // autogenerated + static const uint32_t hashCode = 2161047100; // autogenerated private: // Configuration @@ -2052,6 +2119,7 @@ class StaticGraph100033 : public IStaticGraphConfig imageSubGraphTopology100033 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -2074,10 +2142,10 @@ class imageSubGraphTopology100034 : public GraphTopology { class StaticGraph100034 : public IStaticGraphConfig { public: - StaticGraph100034(GraphConfiguration100034** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100034(GraphConfiguration100034** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100034(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1848457285; // autogenerated + static const uint32_t hashCode = 54836740; // autogenerated private: // Configuration @@ -2098,6 +2166,7 @@ class StaticGraph100034 : public IStaticGraphConfig imageSubGraphTopology100034 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -2113,10 +2182,10 @@ class rawSubGraphTopology100035 : public GraphTopology { class StaticGraph100035 : public IStaticGraphConfig { public: - StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100035(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1527132867; // autogenerated + static const uint32_t hashCode = 4232111942; // autogenerated private: // Configuration @@ -2132,6 +2201,7 @@ class StaticGraph100035 : public IStaticGraphConfig rawSubGraphTopology100035 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -2147,10 +2217,10 @@ class rawSubGraphTopology100036 : public GraphTopology { class StaticGraph100036 : public IStaticGraphConfig { public: - StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100036(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1527132867; // autogenerated + static const uint32_t hashCode = 4232111942; // autogenerated private: // Configuration @@ -2166,6 +2236,7 @@ class StaticGraph100036 : public IStaticGraphConfig rawSubGraphTopology100036 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -2186,10 +2257,10 @@ class imageSubGraphTopology100037 : public GraphTopology { class StaticGraph100037 : public IStaticGraphConfig { public: - StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100037(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1209514169; // autogenerated + static const uint32_t hashCode = 2852161456; // autogenerated private: // Configuration @@ -2208,6 +2279,7 @@ class StaticGraph100037 : public IStaticGraphConfig imageSubGraphTopology100037 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -2228,10 +2300,10 @@ class imageSubGraphTopology100038 : public GraphTopology { class StaticGraph100038 : public IStaticGraphConfig { public: - StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100038(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1758197495; // autogenerated + static const uint32_t hashCode = 2054649342; // autogenerated private: // Configuration @@ -2250,6 +2322,7 @@ class StaticGraph100038 : public IStaticGraphConfig imageSubGraphTopology100038 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2300,10 +2373,10 @@ class image_irSubGraphTopology100039 : public GraphTopology { class StaticGraph100039 : public IStaticGraphConfig { public: - StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100039(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3649390723; // autogenerated + static const uint32_t hashCode = 3356547238; // autogenerated private: // Configuration @@ -2326,6 +2399,7 @@ class StaticGraph100039 : public IStaticGraphConfig image_irSubGraphTopology100039 _image_irSubGraph; // All graph links + GraphLink _graphLinks[34]; }; @@ -2346,10 +2420,10 @@ class imageSubGraphTopology100040 : public GraphTopology { class StaticGraph100040 : public IStaticGraphConfig { public: - StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100040(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3235062615; // autogenerated + static const uint32_t hashCode = 4203331030; // autogenerated private: // Configuration @@ -2368,6 +2442,7 @@ class StaticGraph100040 : public IStaticGraphConfig imageSubGraphTopology100040 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -2389,10 +2464,10 @@ class imageSubGraphTopology100041 : public GraphTopology { class StaticGraph100041 : public IStaticGraphConfig { public: - StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100041(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 443279657; // autogenerated + static const uint32_t hashCode = 2642832256; // autogenerated private: // Configuration @@ -2412,6 +2487,7 @@ class StaticGraph100041 : public IStaticGraphConfig imageSubGraphTopology100041 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -2433,10 +2509,10 @@ class imageSubGraphTopology100042 : public GraphTopology { class StaticGraph100042 : public IStaticGraphConfig { public: - StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100042(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1964991195; // autogenerated + static const uint32_t hashCode = 4033237082; // autogenerated private: // Configuration @@ -2456,6 +2532,7 @@ class StaticGraph100042 : public IStaticGraphConfig imageSubGraphTopology100042 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2478,10 +2555,10 @@ class imageSubGraphTopology100044 : public GraphTopology { class StaticGraph100044 : public IStaticGraphConfig { public: - StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100044(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4250113189; // autogenerated + static const uint32_t hashCode = 3327220544; // autogenerated private: // Configuration @@ -2502,6 +2579,7 @@ class StaticGraph100044 : public IStaticGraphConfig imageSubGraphTopology100044 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -2523,10 +2601,10 @@ class imageSubGraphTopology100050 : public GraphTopology { class StaticGraph100050 : public IStaticGraphConfig { public: - StaticGraph100050(GraphConfiguration100050** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100050(GraphConfiguration100050** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100050(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1519370799; // autogenerated + static const uint32_t hashCode = 2331848626; // autogenerated private: // Configuration @@ -2546,6 +2624,7 @@ class StaticGraph100050 : public IStaticGraphConfig imageSubGraphTopology100050 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -2568,10 +2647,10 @@ class imageSubGraphTopology100051 : public GraphTopology { class StaticGraph100051 : public IStaticGraphConfig { public: - StaticGraph100051(GraphConfiguration100051** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100051(GraphConfiguration100051** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100051(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4035257637; // autogenerated + static const uint32_t hashCode = 1347102708; // autogenerated private: // Configuration @@ -2592,6 +2671,7 @@ class StaticGraph100051 : public IStaticGraphConfig imageSubGraphTopology100051 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2612,10 +2692,10 @@ class imageSubGraphTopology100058 : public GraphTopology { class StaticGraph100058 : public IStaticGraphConfig { public: - StaticGraph100058(GraphConfiguration100058** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100058(GraphConfiguration100058** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100058(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1275148261; // autogenerated + static const uint32_t hashCode = 3895006360; // autogenerated private: // Configuration @@ -2634,6 +2714,7 @@ class StaticGraph100058 : public IStaticGraphConfig imageSubGraphTopology100058 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -2656,10 +2737,10 @@ class imageSubGraphTopology100059 : public GraphTopology { class StaticGraph100059 : public IStaticGraphConfig { public: - StaticGraph100059(GraphConfiguration100059** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100059(GraphConfiguration100059** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100059(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 51122127; // autogenerated + static const uint32_t hashCode = 2590957174; // autogenerated private: // Configuration @@ -2680,6 +2761,7 @@ class StaticGraph100059 : public IStaticGraphConfig imageSubGraphTopology100059 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2700,10 +2782,10 @@ class imageSubGraphTopology100060 : public GraphTopology { class StaticGraph100060 : public IStaticGraphConfig { public: - StaticGraph100060(GraphConfiguration100060** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100060(GraphConfiguration100060** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100060(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1722786665; // autogenerated + static const uint32_t hashCode = 1341927388; // autogenerated private: // Configuration @@ -2722,6 +2804,7 @@ class StaticGraph100060 : public IStaticGraphConfig imageSubGraphTopology100060 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -2744,10 +2827,10 @@ class imageSubGraphTopology100061 : public GraphTopology { class StaticGraph100061 : public IStaticGraphConfig { public: - StaticGraph100061(GraphConfiguration100061** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100061(GraphConfiguration100061** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100061(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3199872211; // autogenerated + static const uint32_t hashCode = 3443427322; // autogenerated private: // Configuration @@ -2768,6 +2851,7 @@ class StaticGraph100061 : public IStaticGraphConfig imageSubGraphTopology100061 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2789,10 +2873,10 @@ class imageSubGraphTopology100052 : public GraphTopology { class StaticGraph100052 : public IStaticGraphConfig { public: - StaticGraph100052(GraphConfiguration100052** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100052(GraphConfiguration100052** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100052(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 118408815; // autogenerated + static const uint32_t hashCode = 1710861946; // autogenerated private: // Configuration @@ -2812,6 +2896,7 @@ class StaticGraph100052 : public IStaticGraphConfig imageSubGraphTopology100052 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -2833,10 +2918,10 @@ class imageSubGraphTopology100053 : public GraphTopology { class StaticGraph100053 : public IStaticGraphConfig { public: - StaticGraph100053(GraphConfiguration100053** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100053(GraphConfiguration100053** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100053(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 517995227; // autogenerated + static const uint32_t hashCode = 2196734322; // autogenerated private: // Configuration @@ -2856,6 +2941,7 @@ class StaticGraph100053 : public IStaticGraphConfig imageSubGraphTopology100053 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -2878,10 +2964,10 @@ class imageSubGraphTopology100054 : public GraphTopology { class StaticGraph100054 : public IStaticGraphConfig { public: - StaticGraph100054(GraphConfiguration100054** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100054(GraphConfiguration100054** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100054(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4097458217; // autogenerated + static const uint32_t hashCode = 2161047100; // autogenerated private: // Configuration @@ -2902,6 +2988,7 @@ class StaticGraph100054 : public IStaticGraphConfig imageSubGraphTopology100054 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -2924,10 +3011,10 @@ class imageSubGraphTopology100055 : public GraphTopology { class StaticGraph100055 : public IStaticGraphConfig { public: - StaticGraph100055(GraphConfiguration100055** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100055(GraphConfiguration100055** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100055(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1848457285; // autogenerated + static const uint32_t hashCode = 54836740; // autogenerated private: // Configuration @@ -2948,6 +3035,7 @@ class StaticGraph100055 : public IStaticGraphConfig imageSubGraphTopology100055 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -2968,10 +3056,10 @@ class imageSubGraphTopology100056 : public GraphTopology { class StaticGraph100056 : public IStaticGraphConfig { public: - StaticGraph100056(GraphConfiguration100056** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100056(GraphConfiguration100056** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100056(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3235062615; // autogenerated + static const uint32_t hashCode = 4203331030; // autogenerated private: // Configuration @@ -2990,6 +3078,7 @@ class StaticGraph100056 : public IStaticGraphConfig imageSubGraphTopology100056 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -3011,10 +3100,10 @@ class imageSubGraphTopology100057 : public GraphTopology { class StaticGraph100057 : public IStaticGraphConfig { public: - StaticGraph100057(GraphConfiguration100057** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100057(GraphConfiguration100057** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100057(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 443279657; // autogenerated + static const uint32_t hashCode = 2642832256; // autogenerated private: // Configuration @@ -3034,6 +3123,7 @@ class StaticGraph100057 : public IStaticGraphConfig imageSubGraphTopology100057 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphBinaryAutogen.h b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphBinaryAutogen.h index ebefcf8..eadaa73 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphBinaryAutogen.h +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphBinaryAutogen.h @@ -1,3 +1,4 @@ + /* * INTEL CONFIDENTIAL * Copyright (c) 2026 Intel Corporation @@ -70,7 +71,7 @@ enum class GraphConfigurationKeyAttributes : uint32_t DocScan = 0x00000400, StillsModeCpHdr = 0x00000800, B2bActive = 0x00001000, - AirActive = 0x00002000, + AinrActive = 0x00002000, }; struct GraphConfigurationKey { diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphDataPreloadAutogen.h b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphDataPreloadAutogen.h index d9cb52f..46597fb 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphDataPreloadAutogen.h +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphDataPreloadAutogen.h @@ -120,47 +120,47 @@ static int distinctGraphsCount = 41; static GraphHashCode hashCodeLookup[] = { {0, 0x63F6EE7C}, - {100000, 0x5BA41167}, - {100001, 0xDCF7CB1D}, - {100002, 0x6960CAD3}, - {100003, 0x5AF09D55}, - {100005, 0xD2AE2209}, - {100006, 0xE12C0163}, - {100007, 0xF7A810CD}, - {100008, 0xAF9741F3}, - {100015, 0x44FD93E9}, - {100016, 0xD089033F}, - {100025, 0x5BA41167}, - {100026, 0xF9C17401}, - {100027, 0x7E6A893B}, - {100028, 0xC93F4EFD}, - {100029, 0x5ED714AF}, - {100030, 0x62F93081}, - {100031, 0x70EC66F}, - {100032, 0x1EDFFADB}, - {100033, 0xF43A4029}, - {100034, 0x6E2D3845}, - {100035, 0x5B0632C3}, - {100036, 0x5B0632C3}, - {100037, 0x4817B8B9}, - {100038, 0x68CBF6F7}, - {100039, 0xD9854883}, - {100040, 0xC0D32357}, - {100041, 0x1A6BE929}, - {100042, 0x751F62DB}, - {100044, 0xFD5394A5}, - {100050, 0x5A8FC22F}, - {100051, 0xF0852525}, - {100052, 0x70EC66F}, - {100053, 0x1EDFFADB}, - {100054, 0xF43A4029}, - {100055, 0x6E2D3845}, - {100056, 0xC0D32357}, - {100057, 0x1A6BE929}, - {100058, 0x4C0137E5}, - {100059, 0x30C0FCF}, - {100060, 0x66AFA369}, - {100061, 0xBEBA2CD3} + {100000, 0xFCF9A282}, + {100001, 0x71134980}, + {100002, 0x62D5AF5A}, + {100003, 0x7908E958}, + {100005, 0x4FBC8894}, + {100006, 0x2CB6DAB2}, + {100007, 0xF5D2A504}, + {100008, 0xF78F877A}, + {100015, 0x6BA6E288}, + {100016, 0xD3AF16D6}, + {100025, 0xFCF9A282}, + {100026, 0xCFC5A154}, + {100027, 0x6F41B2CA}, + {100028, 0x4EB7E36C}, + {100029, 0xA71EFC7A}, + {100030, 0xAE017BFC}, + {100031, 0x65F9AE7A}, + {100032, 0x82EF8172}, + {100033, 0x80CEF63C}, + {100034, 0x344BE04}, + {100035, 0xFC40E746}, + {100036, 0xFC40E746}, + {100037, 0xAA0087B0}, + {100038, 0x7A7775FE}, + {100039, 0xC810D8A6}, + {100040, 0xFA89BDD6}, + {100041, 0x9D866B80}, + {100042, 0xF066505A}, + {100044, 0xC6515B40}, + {100050, 0x8AFD2FB2}, + {100051, 0x504B27F4}, + {100052, 0x65F9AE7A}, + {100053, 0x82EF8172}, + {100054, 0x80CEF63C}, + {100055, 0x344BE04}, + {100056, 0xFA89BDD6}, + {100057, 0x9D866B80}, + {100058, 0xE8291498}, + {100059, 0x9A6EDE76}, + {100060, 0x4FFC2FDC}, + {100061, 0xCD3E87FA} }; static FrameFormatDesc formatsDB[] = { diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.cpp b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.cpp index 3979988..7378d5d 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.cpp +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.cpp @@ -95,6 +95,11 @@ uint32_t StaticGraphReader::GetSAPAttribute() const return 0; } +uint32_t StaticGraphReader::GetGlobalAdditionalFeaturesBit() const +{ + return 0; +} + uint32_t StaticGraphReader::GetAdditionalFeaturesBit(const GraphConfigurationHeader* header) const { return header ? header->additonalFeaturesBit : 0; @@ -228,7 +233,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100000( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100001: if (StaticGraph100001::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -239,7 +244,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100001( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100002: if (StaticGraph100002::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -250,7 +255,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100002( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100003: if (StaticGraph100003::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -261,7 +266,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100003( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100005: if (StaticGraph100005::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -272,7 +277,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100005( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100006: if (StaticGraph100006::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -283,7 +288,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100006( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100007: if (StaticGraph100007::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -294,7 +299,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100007( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100008: if (StaticGraph100008::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -305,7 +310,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100008( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100015: if (StaticGraph100015::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -316,7 +321,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100015( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100016: if (StaticGraph100016::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -327,7 +332,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100016( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100025: if (StaticGraph100025::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -338,7 +343,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100025( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100026: if (StaticGraph100026::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -349,7 +354,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100026( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100027: if (StaticGraph100027::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -360,7 +365,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100027( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100028: if (StaticGraph100028::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -371,7 +376,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100028( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100029: if (StaticGraph100029::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -382,7 +387,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100029( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100030: if (StaticGraph100030::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -393,7 +398,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100030( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100031: if (StaticGraph100031::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -404,7 +409,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100031( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100032: if (StaticGraph100032::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -415,7 +420,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100032( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100033: if (StaticGraph100033::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -426,7 +431,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100033( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100034: if (StaticGraph100034::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -437,7 +442,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100034( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100035: if (StaticGraph100035::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -448,7 +453,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100035( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100036: if (StaticGraph100036::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -459,7 +464,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100036( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100037: if (StaticGraph100037::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -470,7 +475,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100037( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100038: if (StaticGraph100038::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -481,7 +486,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100038( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100039: if (StaticGraph100039::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -492,7 +497,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100039( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100040: if (StaticGraph100040::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -503,7 +508,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100040( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100041: if (StaticGraph100041::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -514,7 +519,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100041( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100042: if (StaticGraph100042::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -525,7 +530,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100042( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100044: if (StaticGraph100044::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -536,7 +541,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100044( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100050: if (StaticGraph100050::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -547,7 +552,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100050( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100051: if (StaticGraph100051::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -558,7 +563,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100051( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100058: if (StaticGraph100058::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -569,7 +574,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100058( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100059: if (StaticGraph100059::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -580,7 +585,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100059( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100060: if (StaticGraph100060::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -591,7 +596,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100060( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100061: if (StaticGraph100061::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -602,7 +607,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100061( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100052: if (StaticGraph100052::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -613,7 +618,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100052( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100053: if (StaticGraph100053::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -624,7 +629,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100053( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100054: if (StaticGraph100054::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -635,7 +640,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100054( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100055: if (StaticGraph100055::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -646,7 +651,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100055( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100056: if (StaticGraph100056::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -657,7 +662,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100056( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100057: if (StaticGraph100057::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -668,7 +673,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100057( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; default: delete[] selectedConfigurationData; diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.h b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.h index 685ab50..f99f8b8 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.h +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphReaderAutogen.h @@ -86,6 +86,7 @@ class StaticGraphReader GSFTimeStamp GetBinaryTimeStamp() const; SysToolVersion GetSysToolVersion() const; uint32_t GetSAPAttribute() const; + uint32_t GetGlobalAdditionalFeaturesBit() const; uint32_t GetAdditionalFeaturesBit(const GraphConfigurationHeader* header) const; static const uint32_t staticGraphCommonHashCode = 1677127292; // autogenerated private: diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphTypesAutogen.h b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphTypesAutogen.h index f842d94..0eaf323 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphTypesAutogen.h +++ b/modules/ipu_desc/ipu75xa/Ipu75xaStaticGraphTypesAutogen.h @@ -198,7 +198,6 @@ struct StaticGraphLinkConfiguration { uint32_t bufferSize = 0; uint8_t streamingMode = 0; }; - struct VirtualSinkMapping { uint8_t preview = 0; uint8_t video = 0; @@ -315,39 +314,73 @@ enum class GraphElementType : uint8_t { RawIsysDolLong, RawIsysPdaf, // Outer Nodes + Isys, + LbffBayer, + BbpsNoTnr, + LbffBayerWithGmv, + BbpsWithTnr, + SwGdc, + SwScaler, + SwNntm, + LbffRgbIr, + LbffIrNoGmvIrStream, + BbpsIrWithTnr, + LbffBayerBurstOutNo3A, + BbpsIrNoTnr, + LbffIrNoGmv, + IsysPdaf2, + LbffBayerPdaf2, + LbffBayerPdaf3, + IsysDol, + LbffDol2Inputs, + LbffDolSmooth, + LbffDol3Inputs, + LbffBayerPdaf2WithGmv, + LbffBayerPdaf3WithGmv, + LbffRgbIrWithGmv, + LbffIrWithGmvIrStream, + LbffDol2InputsWithGmv, + LbffDol3InputsWithGmv, + SwB2b, + SwImv, + SwRemosaic, + SwAinr, + LbffDol2InputsBayerStat, + LbffDol3InputsBayerStat, + LbffDol2InputsWithGmvBayerStat, }; diff --git a/modules/ipu_desc/ipu75xa/Ipu75xaTerminalDescriptorAutogen.cpp b/modules/ipu_desc/ipu75xa/Ipu75xaTerminalDescriptorAutogen.cpp index 125ac6e..6449dea 100644 --- a/modules/ipu_desc/ipu75xa/Ipu75xaTerminalDescriptorAutogen.cpp +++ b/modules/ipu_desc/ipu75xa/Ipu75xaTerminalDescriptorAutogen.cpp @@ -586,7 +586,7 @@ TerminalDescriptor SW_B2BTerminalDesc[] = PAC_BUFFER_TYPE_NONE, TERMINAL_BUFFER_TYPE_DATA, TERMINAL_DIR_IN, - 45372, // b2b + 61733, // b2b }, { SW_B2B_TERMINAL_CONNECT_OUTPUT, @@ -595,7 +595,7 @@ TerminalDescriptor SW_B2BTerminalDesc[] = PAC_BUFFER_TYPE_NONE, TERMINAL_BUFFER_TYPE_DATA, TERMINAL_DIR_OUT, - 45372, // b2b + 61733, // b2b }, }; diff --git a/modules/ipu_desc/ipu7x/FragmentsConfigurator.cpp b/modules/ipu_desc/ipu7x/FragmentsConfigurator.cpp index 9a8def2..9ca2cb8 100644 --- a/modules/ipu_desc/ipu7x/FragmentsConfigurator.cpp +++ b/modules/ipu_desc/ipu7x/FragmentsConfigurator.cpp @@ -29,12 +29,12 @@ #include #include -Ipu8FragmentsConfigurator::Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : - _staticGraph(staticGraph), _node(node), _numberOfFragments(numberOfFragments) +Gen2FragmentsConfigurator::Gen2FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + _staticGraph(staticGraph), _node(node), _numberOfFragments(numberOfFragments) { } -StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vector& smurfKernels) +StaticGraphStatus Gen2FragmentsConfigurator::configureFragments(std::vector& smurfKernels) { if (_staticGraph == nullptr || _node == nullptr || _numberOfFragments < 1) { @@ -61,7 +61,10 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vectornodeKernels.kernelList[j - 1].fragment_descs; uint32_t prevKernelUuid = j == 0 ? 0 : _node->nodeKernels.kernelList[j - 1].run_kernel.kernel_uuid; - uint32_t referenceKernel = GraphResolutionConfiguratorHelper::getReferenceKernel(runKernel->kernel_uuid); + int32_t additionalFeaturesBit = 0; + _staticGraph->getAdditionalFeaturesBit(&additionalFeaturesBit); + uint32_t referenceKernel = GraphResolutionConfiguratorHelper::getReferenceKernel(runKernel->kernel_uuid, additionalFeaturesBit); + if (referenceKernel != 0) { // Special reference kernel @@ -136,10 +139,12 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vector horizontal_offset_max) { - double s_factor = (fragment_input_width + 0.5 + static_cast(fragment_start_x)) / - (0.5 + fragment_output_width + 2.0 * ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) - (1.0 + 1.0 / 128)); + double s_factor_f = scaling_ratio_f; + + while (horizontal_offset_fxp > horizontal_offset_max) + { + s_factor_f = (fragment_input_width + 0.5 + static_cast(fragment_start_x)) / + (0.5 + fragment_output_width + 2.0 * ceil((static_cast(fragment_start_x) / s_factor_f / 2.0)) - (1.0 + 1.0 / 128)); - // floor the value of s_factor according to the precision of 2^16 - s_factor = floor(s_factor * ratio_prec) / ratio_prec; + // floor the value of s_factor according to the precision of 2^16 + s_factor_f = floor(s_factor_f * ratio_prec) / ratio_prec; - adjusted_scaling_ratio_f = std::min(adjusted_scaling_ratio_f, s_factor); + // Update horizontal_offset_fxp and horizontal_offset_max + double horizontal_offset_f = (s_factor_f - 1.0) / 2.0 + (2.0 * s_factor_f * ceil(static_cast(fragment_start_x / s_factor_f / 2.0)) - fragment_start_x); + double horizontal_offset_max_f = fragment_input_width - fragment_output_width * s_factor_f + s_factor_f * (1.0 + 1.0 / 128); + + horizontal_offset_fxp = static_cast(floor(horizontal_offset_f * ratio_prec)); + horizontal_offset_max = static_cast(floor(horizontal_offset_max_f * ratio_prec)); + } + + adjusted_scaling_ratio_f = std::min(adjusted_scaling_ratio_f, s_factor_f); } } - if (runKernel->enable == 0) + if (runKernel->enable == 1) { for (int32_t stripe = leftNonVanishedStripe; stripe <= rightNonVanishedStripe; stripe++) { @@ -263,6 +280,14 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsDownscaler(StaticGra } } + // Now update output start according to new scale factor + for (int32_t stripe = leftNonVanishedStripe; stripe <= rightNonVanishedStripe; stripe++) + { + // Start of output is rounded up since this is what b2i_ds does (Creates pixels starting from the pixel after) + double value = kernelFragments[stripe].fragmentStartX / adjusted_scaling_ratio_f / 2; + _outputStartX[runKernel->kernel_uuid][stripe] = static_cast(ceil(value)) * 2; + } + // Set the adjusted factor for PAL int32_t adjusted_scaling_ratio = static_cast(adjusted_scaling_ratio_f * ratio_prec); @@ -281,12 +306,9 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsDownscaler(StaticGra return StaticGraphStatus::SG_OK; } -bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmentDesc* stripe, int32_t stripeIndex, double scaleFactor, StaticGraphRunKernel* runKernel) +bool Gen2FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmentDesc* stripe, int32_t stripeIndex, double scaleFactor, StaticGraphRunKernel* runKernel) { - const double ratio_prec = 1U << GraphResolutionConfigurator::SCALE_PREC; - int scaling_ratio = (int)ceil((1 / scaleFactor) * (double)(1U << GraphResolutionConfigurator::SCALE_PREC)); - const double scaling_ratio_f = static_cast(scaling_ratio) / ratio_prec; int32_t offset_common = ((scaling_ratio - (static_cast(1U) << GraphResolutionConfigurator::SCALE_PREC)) >> 1); @@ -300,15 +322,18 @@ bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmen orig_horizontal_offset = offset_common; } - const uint16_t fragment_start_x = stripe->fragmentStartX; - const double calc = ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) * 2.0; //2 * ceil(x/2) means round up to a closest even number - double horizontal_offset = (static_cast(orig_horizontal_offset) / ratio_prec) + static_cast(scaling_ratio_f * calc - static_cast(fragment_start_x)); + // uncomment these lines in order to check if constraints are actually met. + // + // const double ratio_prec = 1U << GraphResolutionConfigurator::SCALE_PREC; + // const double scaling_ratio_f = static_cast(scaling_ratio) / ratio_prec; + // const uint16_t fragment_start_x = stripe->fragmentStartX; + // const double calc = ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) * 2.0; //2 * ceil(x/2) means round up to a closest even number + // double horizontal_offset = (static_cast(orig_horizontal_offset) / ratio_prec) + static_cast(scaling_ratio_f * calc - static_cast(fragment_start_x)); + // int32_t horizontal_offset_fxp = static_cast(floor(horizontal_offset * ratio_prec)); const int32_t fragment_input_width = stripe->fragmentInputWidth; const int32_t fragment_output_width = stripe->fragmentOutputWidth; - int32_t horizontal_offset_fxp = static_cast(floor(horizontal_offset * ratio_prec)); - //1 int32_t horizontal_offset_min = 0; int32_t horizontal_offset_max = ((5 * scaling_ratio) - (1U << GraphResolutionConfigurator::SCALE_PREC)) / 2; @@ -320,17 +345,20 @@ bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmen //3 horizontal_offset_max = std::min(fragment_input_width * (1 << GraphResolutionConfigurator::SCALE_PREC) + (int32_t)(scaling_ratio * (1 + 1.0 / 128) - fragment_output_width * scaling_ratio), horizontal_offset_max); - return (horizontal_offset_fxp >= horizontal_offset_min && horizontal_offset_fxp <= horizontal_offset_max); + //return (horizontal_offset_fxp >= horizontal_offset_min && horizontal_offset_fxp <= horizontal_offset_max); + + // return true if constraints can be met. (PAL will chomp) + return (horizontal_offset_min <= horizontal_offset_max); } -void Ipu8FragmentsConfigurator::vanishStripe(uint8_t stripe, uint32_t runKerenlUuid, StaticGraphFragmentDesc* kernelFragments, VanishOption vanishOption) +void Gen2FragmentsConfigurator::vanishStripe(uint8_t stripe, uint32_t runKerenlUuid, StaticGraphFragmentDesc* kernelFragments, VanishOption vanishOption) { _node->fragmentVanishStatus[stripe] = vanishOption; kernelFragments[stripe] = {}; _outputStartX[runKerenlUuid][stripe] = 0; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -467,7 +495,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsCropper(StaticGraphR return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr) @@ -496,14 +524,20 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph auto scaleFactorH = static_cast(resInfo->input_height - resInfo->input_crop.top - resInfo->input_crop.bottom) / resInfo->output_height; auto scaleFactor = std::max(scaleFactorW, scaleFactorH); - int32_t croppedInputWidth = resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right; - int32_t outputWidth = resInfo->output_width; + uint32_t upscalerWidthGranularity = 2; + uint16_t inputUnits = 1; - // We would like to keep upscalerWidthGranularity as large as possible in order to minimize the number of pixels that cannot be used for upscaling - // (upscalerWidthGranularity is divided to stripes, so the larger it is the more accurately we can divide) - // Find the largest granularity that divides both - uint32_t upscalerWidthGranularity = calculateGcd(static_cast(croppedInputWidth), static_cast(outputWidth)); - uint16_t inputUnits = static_cast(croppedInputWidth / upscalerWidthGranularity); + if (enforceUpscalerAspectRatioConstraints()) + { + int32_t croppedInputWidth = resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right; + int32_t outputWidth = resInfo->output_width; + + // We would like to keep upscalerWidthGranularity as large as possible in order to minimize the number of pixels that cannot be used for upscaling + // (upscalerWidthGranularity is divided to stripes, so the larger it is the more accurately we can divide) + // Find the largest granularity that divides both + upscalerWidthGranularity = calculateGcd(static_cast(croppedInputWidth), static_cast(outputWidth)); + inputUnits = static_cast(croppedInputWidth / upscalerWidthGranularity); + } int32_t leftPixel = runKernel->resolution_info->input_crop.left; int32_t rightPixel = static_cast(runKernel->resolution_info->input_width - runKernel->resolution_info->input_crop.right); @@ -568,8 +602,13 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph inputWidthAfterZoomCrop = maxInputWidth; } - uint16_t stripeStepW = GRA_ROUND_DOWN(static_cast(static_cast(inputWidthAfterZoomCrop) / (resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right) * upscalerWidthGranularity), 2); - uint16_t inputWidthAfterTotalCrop = stripeStepW * inputUnits; + uint16_t inputWidthAfterTotalCrop = inputWidthAfterZoomCrop; + + if (enforceUpscalerAspectRatioConstraints()) + { + uint16_t stripeStepW = GRA_ROUND_DOWN(static_cast(static_cast(inputWidthAfterZoomCrop) / (resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right) * upscalerWidthGranularity), 2); + inputWidthAfterTotalCrop = stripeStepW * inputUnits; + } if (inputWidthAfterTotalCrop < 16) { @@ -580,10 +619,11 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph pixelsToCrop += (inputWidthAfterZoomCrop - inputWidthAfterTotalCrop); - kernelFragments[stripe].fragmentOutputWidth = static_cast(GRA_ROUND(static_cast(inputWidthAfterTotalCrop) / scaleFactor)); + kernelFragments[stripe].fragmentOutputWidth = static_cast(2 * GRA_ROUND(static_cast(inputWidthAfterTotalCrop) / scaleFactor / 2.0)); // Validate output width - if (static_cast(inputWidthAfterTotalCrop) / kernelFragments[stripe].fragmentOutputWidth != + if (enforceUpscalerAspectRatioConstraints() && + static_cast(inputWidthAfterTotalCrop) / kernelFragments[stripe].fragmentOutputWidth != static_cast(resInfo->input_height - resInfo->input_crop.top - resInfo->input_crop.bottom) / resInfo->output_height) { // Output width is not valid, return error @@ -632,7 +672,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsOutput(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsOutput(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments, bool isTnr) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -768,7 +808,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsOutput(StaticGraphRu return StaticGraphStatus::SG_OK; } -uint32_t Ipu8FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidths, FormatType formatType, uint8_t plane) +uint32_t Gen2FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidths, FormatType formatType, uint8_t plane) { // Calculate according to format BPP. uint32_t bitsPerElement = 8; @@ -829,7 +869,7 @@ uint32_t Ipu8FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidth return wholeCacheLines * 64 + (remainingPixels * bitsPerElement) / 8; } -uint16_t Ipu8FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, FormatType bufferFormat) +uint16_t Gen2FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, FormatType bufferFormat) { if (bufferFormat != FormatType::YUV420_10_SP_P) { @@ -844,7 +884,7 @@ uint16_t Ipu8FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, For return size - pixelsToRemove; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrScaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsTnrScaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -878,7 +918,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrScaler(StaticGrap return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, GraphResolutionConfiguratorKernelRole kernelRole) +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsTnrFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, GraphResolutionConfiguratorKernelRole kernelRole) { if (kernelFragments == nullptr || _tnrScalerFragments == nullptr || _tnrScalerRunKernel == nullptr) { @@ -943,7 +983,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrFeeder(StaticGrap return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurf(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsSmurf(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, StaticGraphFragmentDesc* prevKernelFragments, std::vector& smurfKernels) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -1051,7 +1091,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurf(StaticGraphRun return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments) +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments) { if (runKernel == nullptr || kernelFragments == nullptr) { @@ -1068,7 +1108,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGr return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::copyFragments(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* prevKernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* kernelFragments) +StaticGraphStatus Gen2FragmentsConfigurator::copyFragments(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* prevKernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* kernelFragments) { if (prevKernelFragments == nullptr || kernelFragments == nullptr) { @@ -1098,7 +1138,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::copyFragments(StaticGraphRunKernel* } // Find the greatest common divisor, curtesy of CoPilot -uint32_t Ipu8FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) +uint32_t Gen2FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) { while (b != 0) { @@ -1107,4 +1147,20 @@ uint32_t Ipu8FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) a = t; } return a; -} \ No newline at end of file +} + +#if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 + +Ipu8FragmentsConfigurator::Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + Gen2FragmentsConfigurator(staticGraph, node, numberOfFragments) +{ +} + +#else + +Ipu9FragmentsConfigurator::Ipu9FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + Gen2FragmentsConfigurator(staticGraph, node, numberOfFragments) +{ +} + +#endif diff --git a/modules/ipu_desc/ipu7x/FragmentsConfigurator.h b/modules/ipu_desc/ipu7x/FragmentsConfigurator.h index 2c323c0..f866619 100644 --- a/modules/ipu_desc/ipu7x/FragmentsConfigurator.h +++ b/modules/ipu_desc/ipu7x/FragmentsConfigurator.h @@ -28,18 +28,21 @@ #include "GraphResolutionConfiguratorInclude.h" #include -class Ipu8FragmentsConfigurator +class Gen2FragmentsConfigurator { public: static const int32_t MIN_STRIPE_WIDTH_BEFORE_TNR = 128; static const int32_t MIN_STRIPE_WIDTH_AFTER_TNR = 64; static const int32_t UPSCALER_MAX_OUTPUT_WIDTH = 4672; - Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + + Gen2FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + virtual ~Gen2FragmentsConfigurator() = default; StaticGraphStatus configureFragments(std::vector& smurfKernels); -private: - // Stripe Actions - each filter will perform one action according to its role +protected: + virtual bool enforceUpscalerAspectRatioConstraints() const { return true; } + StaticGraphStatus configFragmentsDownscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); StaticGraphStatus configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); StaticGraphStatus configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); @@ -61,10 +64,23 @@ class Ipu8FragmentsConfigurator IStaticGraphConfig* _staticGraph = nullptr; uint8_t _numberOfFragments = 0; - // Fragments binaries do not contain output start x, so we keep them here std::map> _outputStartX; - // Save TNR resolutions for feeder configurations StaticGraphFragmentDesc* _tnrScalerFragments = nullptr; StaticGraphRunKernel* _tnrScalerRunKernel = nullptr; }; + +class Ipu8FragmentsConfigurator : public Gen2FragmentsConfigurator +{ +public: + Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); +}; + +class Ipu9FragmentsConfigurator : public Gen2FragmentsConfigurator +{ +public: + Ipu9FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + +protected: + bool enforceUpscalerAspectRatioConstraints() const override { return false; } +}; diff --git a/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.cpp b/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.cpp index ef9fdb0..d7bb2fc 100644 --- a/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.cpp +++ b/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.cpp @@ -293,7 +293,7 @@ StaticGraphStatus GraphResolutionConfigurator::updateStaticGraphConfig(const Reg return updateRunKernelOfScalers(roi.fromInput,sensorRoi); } -#endif +#endif // if SUPPORT_KEY_RESOLUTIONS == 1 // This function translates ROI from factors (as given by user) to sensor resolution (as required by resolution Configurator) // There are 2 modes of work - // if userRoi.fromInput is true it means zoomFactor panFactor and tiltFactor are relative to sensor FOV @@ -942,7 +942,7 @@ StaticGraphStatus GraphResolutionConfigurator::initOutputRunKernelCoord(RunKerne } // Find output device - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); return findRunKernel(kernelUuid, coord); } @@ -979,7 +979,7 @@ StaticGraphStatus GraphResolutionConfigurator::getInputRoiForOutput(const Resolu GraphLink** links = graphTopology->links; - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); RunKernelCoords coord; if (findRunKernel(kernelUuid, coord) != StaticGraphStatus::SG_OK) { @@ -1051,7 +1051,7 @@ StaticGraphStatus GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const Se GraphLink** links = graphTopology->links; RunKernelCoords coord; - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink::AeOutSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink::AeOutSink, graphId, links, graphTopology->numOfLinks); if (findRunKernel(kernelUuid, coord) != StaticGraphStatus::SG_OK) { @@ -1118,10 +1118,10 @@ StaticGraphStatus GraphResolutionConfigurator::sensorCropOrScaleExist(bool& sens #if SUPPORT_KEY_RESOLUTIONS == 0 // -// IPU 8 +// Gen2 (shared by IPU8 and IPU9) // -Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : GraphResolutionConfigurator(staticGraph) +Gen2GraphResolutionConfigurator::Gen2GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : GraphResolutionConfigurator(staticGraph) { _staticGraph = staticGraph; if (_staticGraph == nullptr) @@ -1140,33 +1140,6 @@ Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphCon return; } - // Find crop steps for zoom using upscaler - uint32_t outputWidth = _upscalerRunKernel->resolution_info->output_width; - uint32_t outputHeight = _upscalerRunKernel->resolution_info->output_height; - - for (_upscalerStepH = 1; _upscalerStepH < outputHeight / 2; _upscalerStepH++) - { - double horStep = static_cast(_upscalerStepH) * outputWidth / 2 / outputHeight; - if (floor((horStep)) == horStep) - { - _upscalerStepW = static_cast(horStep) * 2; - break; - } - } - - _upscalerStepW *= 2; - _upscalerStepH *= 2; - - // Due to upscaler constraints, we should avoid having too many units. - // Number of pixels that cannot be used when upscaling a stripe may be up to ~ 2*units - // For details: https://hsdes.intel.com/appstore/article-one/#/article/15018342122 - // This affects the number of possible zoom steps, but for large resolutions it is OK to enlarge the step - while (outputWidth / _upscalerStepW > 70) - { - _upscalerStepW *= 2; - _upscalerStepH *= 2; - } - // Save original values for kernels that are being updated _originalCropOfDownScaler = _downscalerRunKernel->resolution_info->input_crop; @@ -1204,17 +1177,44 @@ Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphCon // We configure the fragments that were provided even if the required number of fragments is 0. // This is done since some configuration decisions are made according to these theoretical fragments, // in order to have bit-match results when fragments are disabled. - uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + // Fragment configurator is created by derived class constructors. - if (_node != nullptr && numberOfFragmentsProvided > 1) +#endif +} + +Gen2GraphResolutionConfigurator::~Gen2GraphResolutionConfigurator() +{ + _kernelsForUpdateAfterCropper.clear(); + _kernelsForUpdateAfterUpscaler.clear(); + +#if SUPPORT_FRAGMENTS == 1 + if (_fragmentsConfigurator != nullptr) { - _fragmentsConfigurator = new Ipu8FragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + delete _fragmentsConfigurator; + _fragmentsConfigurator = nullptr; } + for (auto& smurfInfo : _smurfKernels) + { + delete smurfInfo; + } + _smurfKernels.clear(); + #endif } -uint8_t Ipu8GraphResolutionConfigurator::GetNumberOfProvidedFragments() +StaticGraphStatus Gen2GraphResolutionConfigurator::doFragmentsUpdate(bool& isFragmentsChanged) +{ + if (_fragmentsConfigurator != nullptr) + { + StaticGraphStatus ret = _fragmentsConfigurator->configureFragments(_smurfKernels); + isFragmentsChanged = true; + return ret; + } + return StaticGraphStatus::SG_OK; +} + +uint8_t Gen2GraphResolutionConfigurator::GetNumberOfProvidedFragments() { if (_node == nullptr || _node->nodeKernels.kernelCount == 0) { @@ -1248,34 +1248,13 @@ uint8_t Ipu8GraphResolutionConfigurator::GetNumberOfProvidedFragments() return fragmentCount; } -Ipu8GraphResolutionConfigurator::~Ipu8GraphResolutionConfigurator() -{ - _kernelsForUpdateAfterCropper.clear(); - _kernelsForUpdateAfterUpscaler.clear(); - -#if SUPPORT_FRAGMENTS == 1 - if (_fragmentsConfigurator != nullptr) - { - delete _fragmentsConfigurator; - _fragmentsConfigurator = nullptr; - } - - for (auto& smurfInfo : _smurfKernels) - { - delete smurfInfo; - } - _smurfKernels.clear(); - -#endif -} - -StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel) +StaticGraphStatus Gen2GraphResolutionConfigurator::initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel) { uint32_t kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuid(role); return initRunKernel(kernelUuid, runKernel); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel) +StaticGraphStatus Gen2GraphResolutionConfigurator::initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel) { GraphTopology* graphTopology = nullptr; StaticGraphStatus status = _staticGraph->getGraphTopology(&graphTopology); @@ -1307,7 +1286,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(uint32_t kernel return StaticGraphStatus::SG_ERROR; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initOutputRunKernel() +StaticGraphStatus Gen2GraphResolutionConfigurator::initOutputRunKernel() { GraphTopology* graphTopology = nullptr; StaticGraphStatus status = _staticGraph->getGraphTopology(&graphTopology); @@ -1345,15 +1324,16 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initOutputRunKernel() } // Find output device - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); return initRunKernel(kernelUuid, _outputRunKernel); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() +StaticGraphStatus Gen2GraphResolutionConfigurator::initKernelsForUpdate() { std::vector kernelUuids; - - GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _cropperRunKernel->kernel_uuid); + int32_t additionalFeaturesBit = 0; + _staticGraph->getAdditionalFeaturesBit(&additionalFeaturesBit); + GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _cropperRunKernel->kernel_uuid, additionalFeaturesBit); for (auto& kernelUuid : kernelUuids) { @@ -1364,7 +1344,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() } } - GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _upscalerRunKernel->kernel_uuid); + GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _upscalerRunKernel->kernel_uuid, additionalFeaturesBit); for (auto& kernelUuid : kernelUuids) { @@ -1402,7 +1382,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initIsFragments() +StaticGraphStatus Gen2GraphResolutionConfigurator::initIsFragments() { _isFragments = false; @@ -1433,13 +1413,13 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initIsFragments() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom) { bool isFragmentsChanged; return updateStaticGraphConfig(roi, isCenteredZoom, isFragmentsChanged); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged) { if (_staticGraph == nullptr) { @@ -1469,7 +1449,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const return updateRunKernelOfScalers(downscalerInputRoi, isFragmentsChanged); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getDownscalerInputRoi(const RegionOfInterest& userRoi, ResolutionRoi& downscalerInputRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getDownscalerInputRoi(const RegionOfInterest& userRoi, ResolutionRoi& downscalerInputRoi) { if (_staticGraph == nullptr) { @@ -1526,7 +1506,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getDownscalerInputRoi(const R return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1589,6 +1569,8 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(Reso ret = StaticGraphStatus::SG_ERROR; } + postScalerUpdate(); + // Update resolution history for relevant kernels for (auto& runKernelForUpdate : _kernelsForUpdateAfterCropper) { @@ -1623,19 +1605,15 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(Reso ret = SanityCheck(); } - if (ret == StaticGraphStatus::SG_OK && _fragmentsConfigurator != nullptr) + if (ret == StaticGraphStatus::SG_OK) { - // Configure fragments according to the new zoomed run kernels information - ret = _fragmentsConfigurator->configureFragments(_smurfKernels); - - // Caller must re-take system APIs that were updated by the fragments configurator - isFragmentsChanged = true; + ret = doFragmentsUpdate(isFragmentsChanged); } return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, uint32_t& outputWidth, uint32_t& outputHeight) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1676,7 +1654,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelDownScaler(Sta return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphRunKernel* downscalerRunKernel, uint32_t outputWidth, uint32_t outputHeight) { @@ -1692,100 +1670,118 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(Static // Configure to crop the required amount. int32_t totalHorizontalCrop = runKernel->resolution_info->input_width - outputWidth; - // Now crop to TNR size if any more cropping is required, according to the required ROI - uint32_t cropLeft = roi.left; - uint32_t cropRight = roi.right; + if (totalHorizontalCrop > 0) + { + // Now crop to TNR size if any more cropping is required, according to the required ROI + uint32_t cropLeft = roi.left; + uint32_t cropRight = roi.right; - double scale = static_cast(downscalerResInfo->output_width) / - (downscalerResInfo->input_width - downscalerResInfo->input_crop.left - downscalerResInfo->input_crop.right); + double scale = static_cast(downscalerResInfo->output_width) / + (downscalerResInfo->input_width - downscalerResInfo->input_crop.left - downscalerResInfo->input_crop.right); - if (downscalerResInfo->input_crop.right > 0) - { - cropRight -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.right * scale), 2); - } + if (downscalerResInfo->input_crop.right > 0) + { + cropRight -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.right * scale), 2); + } - // Check if we have more padding on the right that was originally removed by DS but now it is not removed - uint32_t paddingToRemove = 0; - if (downscalerResHist->input_crop.right < 0 && - downscalerResInfo->input_crop.right < -downscalerResHist->input_crop.right && - _originalCropOfDownScaler.right > 0) - { - paddingToRemove = -downscalerResHist->input_crop.right - downscalerResInfo->input_crop.right; - paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); - totalHorizontalCrop -= paddingToRemove; - } + // Check if we have more padding on the right that was originally removed by DS but now it is not removed + uint32_t paddingToRemove = 0; + int32_t histPadRight = static_cast(-downscalerResHist->input_crop.right * _sensorHorizontalScaling); + if (downscalerResHist->input_crop.right < 0 && + downscalerResInfo->input_crop.right < histPadRight && + _originalCropOfDownScaler.right > 0) + { + paddingToRemove = histPadRight - downscalerResInfo->input_crop.right; + paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); + totalHorizontalCrop -= paddingToRemove; + } - // Remove origianl ESPA cropping from left and right, in order to calulate the proportions. - // (The original ESPA cropping is inside the roi.left right so we expect it to always be larger) - cropLeft -= _originalCropOfCropper.left; - cropRight -= _originalCropOfCropper.right; - totalHorizontalCrop -= (_originalCropOfCropper.left + _originalCropOfCropper.right); + // Remove origianl ESPA cropping from left and right, in order to calulate the proportions. + // (The original ESPA cropping is inside the roi.left right so we expect it to always be larger) + cropLeft -= _originalCropOfCropper.left; + cropRight -= _originalCropOfCropper.right; + totalHorizontalCrop -= (_originalCropOfCropper.left + _originalCropOfCropper.right); - // Calculate the crop after downscale, relatively to the desired crop before the downscale - cropLeft = (cropLeft + cropRight) == 0 ? 0 : - GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropLeft) / (cropLeft + cropRight) * (totalHorizontalCrop))), 2); + // Calculate the crop after downscale, relatively to the desired crop before the downscale + cropLeft = (cropLeft + cropRight) == 0 ? 0 : + GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropLeft) / (cropLeft + cropRight) * (totalHorizontalCrop))), 2); - runKernel->resolution_info->input_crop.left = _originalCropOfCropper.left + cropLeft; - runKernel->resolution_info->input_crop.right = _originalCropOfCropper.right + (totalHorizontalCrop - cropLeft) + paddingToRemove; + runKernel->resolution_info->input_crop.left = _originalCropOfCropper.left + cropLeft; + runKernel->resolution_info->input_crop.right = _originalCropOfCropper.right + (totalHorizontalCrop - cropLeft) + paddingToRemove; - if (roi.left < static_cast(runKernel->resolution_info->input_crop.left)) - { - runKernel->resolution_info->input_crop.right += (runKernel->resolution_info->input_crop.left - roi.left); - runKernel->resolution_info->input_crop.left = roi.left; + if (roi.left < static_cast(runKernel->resolution_info->input_crop.left)) + { + runKernel->resolution_info->input_crop.right += (runKernel->resolution_info->input_crop.left - roi.left); + runKernel->resolution_info->input_crop.left = roi.left; + } + if (roi.right < static_cast(runKernel->resolution_info->input_crop.right)) + { + runKernel->resolution_info->input_crop.left += (runKernel->resolution_info->input_crop.right - roi.right); + runKernel->resolution_info->input_crop.right = roi.right; + } } - if (roi.right < static_cast(runKernel->resolution_info->input_crop.right)) + else { - runKernel->resolution_info->input_crop.left += (runKernel->resolution_info->input_crop.right - roi.right); - runKernel->resolution_info->input_crop.right = roi.right; + runKernel->resolution_info->input_crop.left = 0; + runKernel->resolution_info->input_crop.right = 0; } int32_t totalVerticalCrop = runKernel->resolution_info->input_height - outputHeight; - // Now crop to TNR size if any more cropping is required, according to the required ROI - uint32_t cropTop = roi.top; - uint32_t cropBottom = roi.bottom; + if (totalVerticalCrop > 0) + { + // Now crop to TNR size if any more cropping is required, according to the required ROI + uint32_t cropTop = roi.top; + uint32_t cropBottom = roi.bottom; - scale = static_cast(downscalerResInfo->output_height) / - (downscalerResInfo->input_height - downscalerResInfo->input_crop.top - downscalerResInfo->input_crop.bottom); + double scale = static_cast(downscalerResInfo->output_height) / + (downscalerResInfo->input_height - downscalerResInfo->input_crop.top - downscalerResInfo->input_crop.bottom); - if (downscalerResInfo->input_crop.bottom > 0) - { - cropBottom -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.bottom * scale), 2); - } + if (downscalerResInfo->input_crop.bottom > 0) + { + cropBottom -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.bottom * scale), 2); + } - // Check if we have more padding on the bottom that was not removed by DS - paddingToRemove = 0; - if (downscalerResHist->input_crop.bottom < 0 && - downscalerResInfo->input_crop.bottom < -downscalerResHist->input_crop.bottom && - _originalCropOfDownScaler.bottom > 0) - { - paddingToRemove = -downscalerResHist->input_crop.bottom - downscalerResInfo->input_crop.bottom; - paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); - totalVerticalCrop -= paddingToRemove; - } + // Check if we have more padding on the bottom that was not removed by DS + uint32_t paddingToRemove = 0; + int32_t histPadBottom = static_cast(-downscalerResHist->input_crop.bottom * _sensorVerticalScaling); + if (downscalerResHist->input_crop.bottom < 0 && + downscalerResInfo->input_crop.bottom < histPadBottom && + _originalCropOfDownScaler.bottom > 0) + { + paddingToRemove = histPadBottom - downscalerResInfo->input_crop.bottom; + paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); + totalVerticalCrop -= paddingToRemove; + } - // Remove origianl ESPA cropping from top and bottom, in order to calulate the proportions. - // (The original ESPA cropping is inside the roi.top and bottom so we expect it to always be larger) - cropTop -= _originalCropOfCropper.top; - cropBottom -= _originalCropOfCropper.bottom; - totalVerticalCrop -= (_originalCropOfCropper.top + _originalCropOfCropper.bottom); + // Remove origianl ESPA cropping from top and bottom, in order to calulate the proportions. + // (The original ESPA cropping is inside the roi.top and bottom so we expect it to always be larger) + cropTop -= _originalCropOfCropper.top; + cropBottom -= _originalCropOfCropper.bottom; + totalVerticalCrop -= (_originalCropOfCropper.top + _originalCropOfCropper.bottom); - // Calculate the crop after downscale, relatively to the desired crop before the downscale - cropTop = (cropTop + cropBottom) == 0 ? 0 : - GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropTop) / (cropTop + cropBottom) * (totalVerticalCrop))), 2); + // Calculate the crop after downscale, relatively to the desired crop before the downscale + cropTop = (cropTop + cropBottom) == 0 ? 0 : + GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropTop) / (cropTop + cropBottom) * (totalVerticalCrop))), 2); - runKernel->resolution_info->input_crop.top = _originalCropOfCropper.top + cropTop; - runKernel->resolution_info->input_crop.bottom = _originalCropOfCropper.bottom + (totalVerticalCrop - cropTop) + paddingToRemove; + runKernel->resolution_info->input_crop.top = _originalCropOfCropper.top + cropTop; + runKernel->resolution_info->input_crop.bottom = _originalCropOfCropper.bottom + (totalVerticalCrop - cropTop) + paddingToRemove; - if (roi.top < static_cast(runKernel->resolution_info->input_crop.top)) - { - runKernel->resolution_info->input_crop.bottom += (runKernel->resolution_info->input_crop.top - roi.top); - runKernel->resolution_info->input_crop.top = roi.top; + if (roi.top < static_cast(runKernel->resolution_info->input_crop.top)) + { + runKernel->resolution_info->input_crop.bottom += (runKernel->resolution_info->input_crop.top - roi.top); + runKernel->resolution_info->input_crop.top = roi.top; + } + if (roi.bottom < static_cast(runKernel->resolution_info->input_crop.bottom)) + { + runKernel->resolution_info->input_crop.top += (runKernel->resolution_info->input_crop.bottom - roi.bottom); + runKernel->resolution_info->input_crop.bottom = roi.bottom; + } } - if (roi.bottom < static_cast(runKernel->resolution_info->input_crop.bottom)) + else { - runKernel->resolution_info->input_crop.top += (runKernel->resolution_info->input_crop.bottom - roi.bottom); - runKernel->resolution_info->input_crop.bottom = roi.bottom; + runKernel->resolution_info->input_crop.top = 0; + runKernel->resolution_info->input_crop.bottom = 0; } #ifdef STATIC_GRAPH_USE_IA_LEGACY_TYPES @@ -1814,65 +1810,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(Static return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, - uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) -{ - StaticGraphStatus ret = StaticGraphStatus::SG_OK; - - runKernel->resolution_info->input_width = inputWidth; - runKernel->resolution_info->input_height = inputHeight; - runKernel->resolution_info->output_width = outputWidth; - runKernel->resolution_info->output_height = outputHeight; - - // How much cropping is left for the upscaler to do after the cropper? - uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; - uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; - - // Cropping must be done in units of stepW x stepH. - // How many units of stepW x stepH should we crop? - uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; - uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; - - uint32_t units = unitsW < unitsH ? unitsW : unitsH; - - uint32_t actualCropW = units * _upscalerStepW; - uint32_t actualCropH = units * _upscalerStepH; - - uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); - uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; - uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); - uint32_t deltaBottom = totalCropH - actualCropH - deltaTop; - - runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; - runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; - runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; - runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; - - if (runKernel->resolution_info->input_crop.left < 0) - { - runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; - runKernel->resolution_info->input_crop.left = 0; - } - if (runKernel->resolution_info->input_crop.right < 0) - { - runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; - runKernel->resolution_info->input_crop.right = 0; - } - if (runKernel->resolution_info->input_crop.top < 0) - { - runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; - runKernel->resolution_info->input_crop.top = 0; - } - if (runKernel->resolution_info->input_crop.bottom < 0) - { - runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; - runKernel->resolution_info->input_crop.bottom = 0; - } - - return ret; -} - -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKernelInfo* smurfInfo) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKernelInfo* smurfInfo) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1921,7 +1859,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKer return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() +StaticGraphStatus Gen2GraphResolutionConfigurator::SanityCheck() { // Resolution hist output must be same as info input if (_downscalerRunKernel->resolution_info->input_width != _downscalerRunKernel->resolution_history->output_width || @@ -1978,7 +1916,8 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() } // Validate upscaler scale ratio constraints - if (static_cast(widthAfterCrop) / _upscalerRunKernel->resolution_info->output_width != + if (enforceUpscalerAspectRatioConstraints() && + static_cast(widthAfterCrop) / _upscalerRunKernel->resolution_info->output_width != static_cast(heightAfterCrop) / _upscalerRunKernel->resolution_info->output_height) { return StaticGraphStatus::SG_ERROR; @@ -1997,7 +1936,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKernelResCrop* crop) +StaticGraphStatus Gen2GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKernelResCrop* crop) { if (crop->top < 0 || crop->bottom < 0 || crop->left < 0 || crop->right < 0 || crop->top & 1 || crop->bottom & 1 || crop->left & 1 || crop->right & 1) @@ -2008,7 +1947,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKe return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getInputRoiForOutput(const ResolutionRoi& roi, HwSink hwSink, SensorRoi& sensorRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getInputRoiForOutput(const ResolutionRoi& roi, HwSink hwSink, SensorRoi& sensorRoi) { if (_staticGraph == nullptr) { @@ -2083,7 +2022,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getInputRoiForOutput(const Re return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi) { int32_t graphId; _staticGraph->getGraphId(&graphId); @@ -2120,4 +2059,278 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getStatsRoiFromSensorRoi(cons return StaticGraphStatus::SG_OK; } -#endif \ No newline at end of file +#if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 +// +// IPU 8 (unique methods only) +// + +Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : Gen2GraphResolutionConfigurator(staticGraph) +{ + if (_staticGraph == nullptr) + { + return; + } + + // Find crop steps for zoom using upscaler + uint32_t outputWidth = _upscalerRunKernel->resolution_info->output_width; + uint32_t outputHeight = _upscalerRunKernel->resolution_info->output_height; + + for (_upscalerStepH = 1; _upscalerStepH < outputHeight / 2; _upscalerStepH++) + { + double horStep = static_cast(_upscalerStepH) * outputWidth / 2 / outputHeight; + if (floor((horStep)) == horStep) + { + _upscalerStepW = static_cast(horStep) * 2; + break; + } + } + + _upscalerStepW *= 2; + _upscalerStepH *= 2; + + if (_isFragments == true) + { + // Due to upscaler constraints, we should avoid having too many units. + // Number of pixels that cannot be used when upscaling a stripe may be up to ~ 2*units + // For details: https://hsdes.intel.com/appstore/article-one/#/article/15018342122 + // This affects the number of possible zoom steps, but for large resolutions it is OK to enlarge the step + while (outputWidth / _upscalerStepW > 70) + { + _upscalerStepW *= 2; + _upscalerStepH *= 2; + } + } + + // We configure the fragments that were provided even if the required number of fragments is 0. + // This is done since some configuration decisions are made according to these theoretical fragments, + // in order to have bit-match results when fragments are disabled. + uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + + if (_node != nullptr && numberOfFragmentsProvided > 1) + { + _fragmentsConfigurator = createFragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + } +} + +Ipu8GraphResolutionConfigurator::~Ipu8GraphResolutionConfigurator() +{ +} + +#if SUPPORT_FRAGMENTS == 1 +Gen2FragmentsConfigurator* Ipu8GraphResolutionConfigurator::createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) +{ + return new Ipu8FragmentsConfigurator(staticGraph, node, numberOfFragments); +} +#endif + +StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) +{ + StaticGraphStatus ret = StaticGraphStatus::SG_OK; + + runKernel->resolution_info->input_width = inputWidth; + runKernel->resolution_info->input_height = inputHeight; + runKernel->resolution_info->output_width = outputWidth; + runKernel->resolution_info->output_height = outputHeight; + + // How much cropping is left for the upscaler to do after the cropper? + uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; + uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; + + // Cropping must be done in units of stepW x stepH. + // How many units of stepW x stepH should we crop? + uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; + uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; + + uint32_t units = unitsW < unitsH ? unitsW : unitsH; + + uint32_t actualCropW = units * _upscalerStepW; + uint32_t actualCropH = units * _upscalerStepH; + + uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); + uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - actualCropH - deltaTop; + + runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; + runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; + runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; + runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; + + if (runKernel->resolution_info->input_crop.left < 0) + { + runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; + runKernel->resolution_info->input_crop.left = 0; + } + if (runKernel->resolution_info->input_crop.right < 0) + { + runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; + runKernel->resolution_info->input_crop.right = 0; + } + if (runKernel->resolution_info->input_crop.top < 0) + { + runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; + runKernel->resolution_info->input_crop.top = 0; + } + if (runKernel->resolution_info->input_crop.bottom < 0) + { + runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; + runKernel->resolution_info->input_crop.bottom = 0; + } + + return ret; +} + +// IPU9 +#else // if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 + +void copyRunKernel(StaticGraphRunKernel* runKernel, StaticGraphRunKernel* runKernelOther) +{ + if (runKernelOther == nullptr) + { + return; + } + // No fragments, crop to ROI and downscale to output resolution + runKernelOther->resolution_info->input_width = runKernel->resolution_info->input_width; + runKernelOther->resolution_info->input_height = runKernel->resolution_info->input_height; + runKernelOther->resolution_info->output_width = runKernel->resolution_info->output_width; + runKernelOther->resolution_info->output_height = runKernel->resolution_info->output_height; + + runKernelOther->resolution_info->input_crop.left = runKernel->resolution_info->input_crop.left; + runKernelOther->resolution_info->input_crop.right = runKernel->resolution_info->input_crop.right; + runKernelOther->resolution_info->input_crop.top = runKernel->resolution_info->input_crop.top; + runKernelOther->resolution_info->input_crop.bottom = runKernel->resolution_info->input_crop.bottom; + + runKernelOther->resolution_history->input_width = runKernel->resolution_history->input_width; + runKernelOther->resolution_history->input_height = runKernel->resolution_history->input_height; + runKernelOther->resolution_history->output_width = runKernel->resolution_history->output_width; + runKernelOther->resolution_history->output_height = runKernel->resolution_history->output_height; + + runKernelOther->resolution_history->input_crop.left = runKernel->resolution_history->input_crop.left; + runKernelOther->resolution_history->input_crop.right = runKernel->resolution_history->input_crop.right; + runKernelOther->resolution_history->input_crop.top = runKernel->resolution_history->input_crop.top; + runKernelOther->resolution_history->input_crop.bottom = runKernel->resolution_history->input_crop.bottom; +} + +Ipu9GraphResolutionConfigurator::Ipu9GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : Gen2GraphResolutionConfigurator(staticGraph) +{ + if (_staticGraph == nullptr) + { + return; + } + + _downscalerSmallRunKernel = nullptr; + _cropperSmallRunKernel = nullptr; + initRunKernel(GraphResolutionConfiguratorKernelRole::DownScalerSmall, _downscalerSmallRunKernel); + initRunKernel(GraphResolutionConfiguratorKernelRole::EspaCropperSmall, _cropperSmallRunKernel); + +#if SUPPORT_FRAGMENTS == 1 + + // We configure the fragments that were provided even if the required number of fragments is 0. + // This is done since some configuration decisions are made according to these theoretical fragments, + // in order to have bit-match results when fragments are disabled. + uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + + if (_node != nullptr && numberOfFragmentsProvided > 1) + { + _fragmentsConfigurator = createFragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + } + +#endif +} + +Ipu9GraphResolutionConfigurator::~Ipu9GraphResolutionConfigurator() +{ +} + +#if SUPPORT_FRAGMENTS == 1 +Gen2FragmentsConfigurator* Ipu9GraphResolutionConfigurator::createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) +{ + return new Ipu9FragmentsConfigurator(staticGraph, node, numberOfFragments); +} +#endif + +StaticGraphStatus Ipu9GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) +{ + StaticGraphStatus ret = StaticGraphStatus::SG_OK; + + runKernel->resolution_info->input_width = inputWidth; + runKernel->resolution_info->input_height = inputHeight; + runKernel->resolution_info->output_width = outputWidth; + runKernel->resolution_info->output_height = outputHeight; + + // How much cropping is left for the upscaler to do after the cropper? + uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; + uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; + + // Cropping must be done in units of stepW x stepH. + // How many units of stepW x stepH should we crop? + /*uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; + uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; + + uint32_t units = unitsW < unitsH ? unitsW : unitsH; + + uint32_t actualCropW = units * _upscalerStepW; + uint32_t actualCropH = units * _upscalerStepH;*/ + + /*uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); + uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - actualCropH - deltaTop;*/ + + // we must make sure that the scale facotr of width and height are matching. So we recalculate the extra crop to get this. + uint32_t widthAfterCrop = runKernel->resolution_info->input_width - totalCropW; + uint32_t heightAfterCrop = runKernel->resolution_info->input_height - totalCropH; + auto scaleFactorW = static_cast(widthAfterCrop) / outputWidth; + auto scaleFactorH = static_cast(heightAfterCrop) / outputHeight; + auto scaleFactor = std::max(scaleFactorW, scaleFactorH); + + widthAfterCrop = std::min(inputWidth, + GRA_ROUND_DOWN(static_cast(floor(static_cast(outputWidth * scaleFactor))), 2)); + heightAfterCrop = std::min(inputHeight, + GRA_ROUND_DOWN(static_cast(floor(static_cast(outputHeight * scaleFactor))), 2)); + totalCropW = (inputWidth - widthAfterCrop)-(roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right); + totalCropH = (inputHeight - heightAfterCrop)-(roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom); + + uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW) / 2, 2); + uint32_t deltaRight = totalCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - deltaTop; + + runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; + runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; + runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; + runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; + + if (runKernel->resolution_info->input_crop.left < 0) + { + runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; + runKernel->resolution_info->input_crop.left = 0; + } + if (runKernel->resolution_info->input_crop.right < 0) + { + runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; + runKernel->resolution_info->input_crop.right = 0; + } + if (runKernel->resolution_info->input_crop.top < 0) + { + runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; + runKernel->resolution_info->input_crop.top = 0; + } + if (runKernel->resolution_info->input_crop.bottom < 0) + { + runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; + runKernel->resolution_info->input_crop.bottom = 0; + } + + return ret; +} + +void Ipu9GraphResolutionConfigurator::postScalerUpdate() +{ + copyRunKernel(_downscalerRunKernel, _downscalerSmallRunKernel); + copyRunKernel(_cropperRunKernel, _cropperSmallRunKernel); +} +#endif // if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 +#endif // if SUPPORT_KEY_RESOLUTIONS == 0 diff --git a/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.h b/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.h index 4f049f2..7d5e109 100644 --- a/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.h +++ b/modules/ipu_desc/ipu7x/GraphResolutionConfigurator.h @@ -76,7 +76,10 @@ enum class GraphResolutionConfiguratorKernelRole : uint8_t { UpScaler, DownScaler, + DownScalerSmall, EspaCropper, + CasEspaCropper, + EspaCropperSmall, NonRcb, Output, TnrOutput, @@ -88,6 +91,8 @@ enum class GraphResolutionConfiguratorKernelRole : uint8_t None }; +class Gen2FragmentsConfigurator; + class RunKernelCoords { public: @@ -177,6 +182,7 @@ class GraphResolutionConfigurator }; class Ipu8FragmentsConfigurator; +class Ipu9FragmentsConfigurator; class SmurfKernelInfo { @@ -188,11 +194,11 @@ class SmurfKernelInfo StaticGraphKernelResCrop _originalSmurfOutputCrop = { 0,0,0,0 }; }; -class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator +class Gen2GraphResolutionConfigurator : public GraphResolutionConfigurator { public: - Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); - ~Ipu8GraphResolutionConfigurator(); + Gen2GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + virtual ~Gen2GraphResolutionConfigurator(); StaticGraphStatus updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom); // Use only if 1-stripe processing is not needed StaticGraphStatus updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged); @@ -203,7 +209,7 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator // This function is used for statistics output only virtual StaticGraphStatus getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi); -private: +protected: StaticGraphStatus initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel); StaticGraphStatus initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel); StaticGraphStatus initOutputRunKernel(); @@ -217,15 +223,22 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator StaticGraphStatus updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged); StaticGraphStatus updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, uint32_t& outputWidth, uint32_t& outputHeight); - StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight); + virtual StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) = 0; StaticGraphStatus updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphRunKernel* downscalerRunKernel, uint32_t outputWidth, uint32_t outputHeight); StaticGraphStatus updateRunKernelSmurf(SmurfKernelInfo* smurfInfo); StaticGraphStatus SanityCheck(); StaticGraphStatus SanityCheckCrop(StaticGraphKernelResCrop* crop); - uint32_t _upscalerStepW = 1; - uint32_t _upscalerStepH = 1; + // Virtual hooks for derived class differences + virtual bool enforceUpscalerAspectRatioConstraints() const { return true; } + virtual void postScalerUpdate() {} +#if SUPPORT_FRAGMENTS == 1 + virtual Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) = 0; + StaticGraphStatus doFragmentsUpdate(bool& isFragmentsChanged); + Gen2FragmentsConfigurator* _fragmentsConfigurator = nullptr; +#endif StaticGraphKernelResCrop _originalCropOfDownScaler = { 0,0,0,0 }; StaticGraphKernelResCrop _originalCropOfUpscaler = { 0,0,0,0 }; @@ -243,6 +256,42 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator // For striping OuterNode* _node = nullptr; - Ipu8FragmentsConfigurator* _fragmentsConfigurator = nullptr; bool _isFragments = false; }; + +class Ipu8GraphResolutionConfigurator : public Gen2GraphResolutionConfigurator +{ +public: + Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + ~Ipu8GraphResolutionConfigurator(); + +private: + StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) override; +#if SUPPORT_FRAGMENTS == 1 + Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) override; +#endif + + uint32_t _upscalerStepW = 1; + uint32_t _upscalerStepH = 1; +}; + +class Ipu9GraphResolutionConfigurator : public Gen2GraphResolutionConfigurator +{ +public: + Ipu9GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + ~Ipu9GraphResolutionConfigurator(); + +private: + StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) override; + void postScalerUpdate() override; + bool enforceUpscalerAspectRatioConstraints() const override { return false; } + + StaticGraphRunKernel* _downscalerSmallRunKernel; + StaticGraphRunKernel* _cropperSmallRunKernel; + +#if SUPPORT_FRAGMENTS == 1 + Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) override; +#endif +}; diff --git a/modules/ipu_desc/ipu7x/GraphResolutionConfiguratorInclude.h b/modules/ipu_desc/ipu7x/GraphResolutionConfiguratorInclude.h index 417aa23..78ddbbc 100644 --- a/modules/ipu_desc/ipu7x/GraphResolutionConfiguratorInclude.h +++ b/modules/ipu_desc/ipu7x/GraphResolutionConfiguratorInclude.h @@ -31,6 +31,9 @@ #include "Ipu7xStaticGraphAutogen.h" #include "Ipu7xStaticGraphTypesAutogen.h" #include "Ipu7xGraphResolutionConfiguratorAutogen.h" +#elif defined(GRC_IPU7) +#include "Ipu7StaticGraphAutogen.h" +#include "Ipu7StaticGraphTypesAutogen.h" #elif defined(GRC_IPU75XA) #include "Ipu75xaStaticGraphAutogen.h" #include "Ipu75xaStaticGraphTypesAutogen.h" diff --git a/modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.cpp b/modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.cpp new file mode 100644 index 0000000..d8ab95f --- /dev/null +++ b/modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.cpp @@ -0,0 +1,30 @@ +#include "GraphResolutionConfiguratorInclude.h" +#include "GraphTuningModeConfigurator.h" + +#if SUPPORT_TM_SWITCH == 1 +bool GraphTuningModeConfigurator::SwitchTuningModeBasedOnKey(uint8_t tuningModeKey) +{ + GraphTopology* graphTopology = nullptr; + _staticGraph->getGraphTopology(&graphTopology); + SubGraphInnerNodeConfiguration innerNodeConfig = {}; + bool modeSwitched = false; + for (int i = 0; i < graphTopology->numOfLinks; i++) + { + auto& link = graphTopology->links[i]; + for (int j = 0; j < 2; ++j) + { + if (link->srcNode != nullptr && link->srcNode->nodeTuningModes[j].key == tuningModeKey && link->srcNode->nodeKernels.operationMode != link->srcNode->nodeTuningModes[j].id) + { + link->srcNode->nodeKernels.operationMode = link->srcNode->nodeTuningModes[j].id; + modeSwitched = true; + } + if (link->destNode != nullptr && link->destNode->nodeTuningModes[j].key == tuningModeKey && link->destNode->nodeKernels.operationMode != link->destNode->nodeTuningModes[j].id) + { + link->destNode->nodeKernels.operationMode = link->destNode->nodeTuningModes[j].id; + modeSwitched = true; + } + } + } + return modeSwitched; +} +#endif \ No newline at end of file diff --git a/modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.h b/modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.h new file mode 100644 index 0000000..c05dd4d --- /dev/null +++ b/modules/ipu_desc/ipu7x/GraphTuningModeConfigurator.h @@ -0,0 +1,49 @@ +/* +* INTEL CONFIDENTIAL +* Copyright (c) 2026 Intel Corporation +* All Rights Reserved. +* +* The source code contained or described herein and all documents related to +* the source code ("Material") are owned by Intel Corporation or its +* suppliers or licensors. Title to the Material remains with Intel +* Corporation or its suppliers and licensors. The Material may contain trade +* secrets and proprietary and confidential information of Intel Corporation +* and its suppliers and licensors, and is protected by worldwide copyright +* and trade secret laws and treaty provisions. No part of the Material may be +* used, copied, reproduced, modified, published, uploaded, posted, +* transmitted, distributed, or disclosed in any way without Intel's prior +* express written permission. +* +* No license under any patent, copyright, trade secret or other intellectual +* property right is granted to or conferred upon you by disclosure or +* delivery of the Materials, either expressly, by implication, inducement, +* estoppel or otherwise. Any license under such intellectual property rights +* must be express and approved by Intel in writing. +* +* Unless otherwise agreed by Intel in writing, you may not remove or alter +* this notice or any other notice embedded in Materials by Intel or Intels +* suppliers or licensors in any way. +*/ +#pragma once +#include +#include +#include +#if SUPPORT_TM_SWITCH == 1 +class GraphTuningModeConfigurator +{ +public: + GraphTuningModeConfigurator(IStaticGraphConfig* staticGraph) + { + _staticGraph = staticGraph; + + if (_staticGraph == nullptr) + { + return; + } + } + ~GraphTuningModeConfigurator(){} + bool SwitchTuningModeBasedOnKey(uint8_t tuningModeKey); +protected: + IStaticGraphConfig* _staticGraph; +}; +#endif \ No newline at end of file diff --git a/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.cpp b/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.cpp index 5cb9d50..0315d26 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.cpp +++ b/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.cpp @@ -39,10 +39,11 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuid(GraphResolutionConf return 0; } -uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links) +uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links, int numberOfLinks) { (void)graphId; (void)links; + (void)numberOfLinks; switch (hwSink) { @@ -87,7 +88,6 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSi return 0; } - StaticGraphStatus GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids) { kernelUuids.clear(); diff --git a/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.h b/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.h index 7923f2c..190aeed 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.h +++ b/modules/ipu_desc/ipu7x/Ipu7xGraphResolutionConfiguratorAutogen.h @@ -35,7 +35,7 @@ class GraphResolutionConfiguratorHelper public: static uint32_t getRunKernelUuid(GraphResolutionConfiguratorKernelRole role); - static uint32_t getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links); + static uint32_t getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links, int numberOfLinks = 0); static StaticGraphStatus getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids); static uint32_t getRunKernelIoBufferSystemApiUuid(); static uint32_t getRunKernelDownscalerSystemApiUuid(); diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.cpp b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.cpp index 5bf3c10..c561b2e 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.cpp +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.cpp @@ -24,15 +24,15 @@ * this notice or any other notice embedded in Materials by Intel or Intels * suppliers or licensors in any way. */ - +#include #include "Ipu7xStaticGraphAutogen.h" #define CHECK_BITMAP64_BIT(bitmap, index) ((bitmap) & ((uint64_t)1 << (index))) /* * External Interfaces */ -IStaticGraphConfig::IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t settingsId, ZoomKeyResolutions* zoomKeyResolutions ) : -_selectedSensorMode(selectedSensorMode), _graphId(graphId), _settingsId(settingsId) +IStaticGraphConfig::IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t settingsId, int32_t additonalFeaturesBit, ZoomKeyResolutions* zoomKeyResolutions ) : +_selectedSensorMode(selectedSensorMode), _graphId(graphId), _settingsId(settingsId),_additonalFeaturesBit(additonalFeaturesBit) { memcpy(_sinkMappingConfiguration, sinkMappingConfiguration, sizeof(VirtualSinkMapping)); // Copy zoom key resolutions @@ -100,6 +100,17 @@ StaticGraphStatus IStaticGraphConfig::getSettingsId(int32_t* settingsId) return StaticGraphStatus::SG_OK; }; +StaticGraphStatus IStaticGraphConfig::getAdditionalFeaturesBit(int32_t* featuresBit) +{ + if (featuresBit == nullptr) + { + return StaticGraphStatus::SG_ERROR; + } + + *featuresBit = _additonalFeaturesBit; + return StaticGraphStatus::SG_OK; +}; + StaticGraphStatus IStaticGraphConfig::getVirtualSinkConnection(VirtualSink& virtualSink, HwSink* hwSink) { switch (virtualSink) @@ -213,6 +224,7 @@ void OuterNode::Init(uint8_t nodeResourceId, nodeKernels.operationMode = operationMode; nodeKernels.streamId = streamId; } + OuterNode::~OuterNode() { for (uint32_t i = 0; i < kernelConfigurationsOptionsCount; i++) @@ -8580,8 +8592,8 @@ void SwDeskviewNoblendOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOpt /* * Graph 100000 */ -StaticGraph100000::StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100000, selectedSettingsId, zoomKeyResolutions), +StaticGraph100000::StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100000, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -8710,12 +8722,11 @@ StaticGraph100000::StaticGraph100000(GraphConfiguration100000** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -8782,19 +8793,19 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -8815,12 +8826,19 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -8845,8 +8863,8 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod /* * Graph 100001 */ -StaticGraph100001::StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100001, selectedSettingsId, zoomKeyResolutions), +StaticGraph100001::StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100001, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -9089,14 +9107,13 @@ StaticGraph100001::StaticGraph100001(GraphConfiguration100001** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvOuterNode = &_lbffBayerWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -9173,21 +9190,31 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[15]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[15]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[16]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[16]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -9209,16 +9236,27 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv:terminal_connect_gmv_input + subGraphLinks[8]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -9253,8 +9291,8 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod /* * Graph 100002 */ -StaticGraph100002::StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100002, selectedSettingsId, zoomKeyResolutions), +StaticGraph100002::StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100002, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -9451,13 +9489,12 @@ StaticGraph100002::StaticGraph100002(GraphConfiguration100002** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -9528,20 +9565,25 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -9563,13 +9605,21 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_scaler:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -9603,8 +9653,8 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod /* * Graph 100003 */ -StaticGraph100003::StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100003, selectedSettingsId, zoomKeyResolutions), +StaticGraph100003::StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100003, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -9836,13 +9886,12 @@ StaticGraph100003::StaticGraph100003(GraphConfiguration100003** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvOuterNode = &_lbffBayerWithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -9913,22 +9962,37 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[15]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[15]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[16]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[16]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[17]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[17]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -9950,17 +10014,29 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvInnerOptions & no3A); // lbff_Bayer_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv:terminal_connect_gmv_input + subGraphLinks[8]->isActive = !(lbffBayerWithGmvInnerOptions & noGmv); // lbff_Bayer_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -9995,8 +10071,8 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod /* * Graph 100004 */ -StaticGraph100004::StaticGraph100004(GraphConfiguration100004** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100004, selectedSettingsId, zoomKeyResolutions), +StaticGraph100004::StaticGraph100004(GraphConfiguration100004** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100004, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -10222,14 +10298,13 @@ StaticGraph100004::StaticGraph100004(GraphConfiguration100004** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -10306,21 +10381,31 @@ StaticGraphStatus imageSubGraphTopology100004::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -10342,14 +10427,23 @@ StaticGraphStatus imageSubGraphTopology100004::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -10383,8 +10477,8 @@ StaticGraphStatus imageSubGraphTopology100004::configInnerNodes(SubGraphInnerNod /* * Graph 100005 */ -StaticGraph100005::StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100005, selectedSettingsId, zoomKeyResolutions), +StaticGraph100005::StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100005, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -10610,14 +10704,13 @@ StaticGraph100005::StaticGraph100005(GraphConfiguration100005** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -10694,21 +10787,31 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -10730,14 +10833,23 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -10771,8 +10883,8 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod /* * Graph 100006 */ -StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100006, selectedSettingsId, zoomKeyResolutions), +StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100006, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) @@ -10818,6 +10930,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_isysOuterNode; link->destTerminalId = 0; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -10828,6 +10941,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -10838,6 +10952,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _irSubGraph.links[2] = link; _image_irSubGraph.links[17] = link; @@ -10849,6 +10964,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 3; link->type = LinkType::Node2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[2] = link; @@ -10859,6 +10975,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 6; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[3] = link; @@ -10869,6 +10986,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 7; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[4] = link; @@ -10879,6 +10997,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 8; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[5] = link; @@ -10889,6 +11008,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 16; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[6] = link; @@ -10899,6 +11019,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 9; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[7] = link; @@ -10911,6 +11032,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -10922,6 +11044,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _imageSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -10934,6 +11057,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -10946,6 +11070,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -10957,6 +11082,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _imageSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -10969,6 +11095,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -10978,6 +11105,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -10987,6 +11115,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 15; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -10996,6 +11125,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 16; link->dest = GraphElementType::ImagePpp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -11007,6 +11137,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 3; link->type = LinkType::Node2Node; + _irSubGraph.links[9] = link; _image_irSubGraph.links[18] = link; @@ -11016,6 +11147,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 6; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[10] = link; _image_irSubGraph.links[19] = link; @@ -11025,6 +11157,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 7; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[11] = link; _image_irSubGraph.links[20] = link; @@ -11034,6 +11167,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 8; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[21] = link; @@ -11043,6 +11177,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 9; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[22] = link; @@ -11054,6 +11189,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _irSubGraph.links[14] = link; _image_irSubGraph.links[23] = link; @@ -11065,6 +11201,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _irSubGraph.links[15] = link; _image_irSubGraph.links[24] = link; @@ -11077,6 +11214,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[16] = link; _image_irSubGraph.links[25] = link; @@ -11089,6 +11227,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[17] = link; _image_irSubGraph.links[26] = link; @@ -11100,6 +11239,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _irSubGraph.links[18] = link; _image_irSubGraph.links[27] = link; @@ -11112,6 +11252,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[19] = link; _image_irSubGraph.links[28] = link; @@ -11121,6 +11262,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[29] = link; @@ -11140,7 +11282,6 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon _graphLinks[i].linkConfiguration = &_graphConfigurations[selectedLinkConfig].linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrOuterNode = &_lbffRgbIrOuterNode; @@ -11154,7 +11295,7 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006** selectedGraphCon _image_irSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _image_irSubGraph.lbffIrNoGmvIrStreamOuterNode = &_lbffIrNoGmvIrStreamOuterNode; _image_irSubGraph.bbpsIrWithTnrOuterNode = &_bbpsIrWithTnrOuterNode; - + // choose the selected sub graph if ( // image sink group @@ -11301,19 +11442,19 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -11335,13 +11476,21 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -11406,7 +11555,7 @@ StaticGraphStatus irSubGraphTopology100006::configInnerNodes(SubGraphInnerNodeCo bbpsIrWithTnrInnerOptions |= (noDp | noPpp); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -11430,15 +11579,25 @@ StaticGraphStatus irSubGraphTopology100006::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[11]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[12]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[13]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[20]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -11493,19 +11652,19 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -11527,7 +11686,7 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner bbpsIrWithTnrInnerOptions |= (noDp | noPpp); // active public options according to sink mapping if ( - subGraphLinks[29]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[29]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -11554,18 +11713,31 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[19]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[20]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[21]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[22]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[29]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -11606,8 +11778,8 @@ StaticGraphStatus image_irSubGraphTopology100006::configInnerNodes(SubGraphInner /* * Graph 100007 */ -StaticGraph100007::StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100007, selectedSettingsId, zoomKeyResolutions), +StaticGraph100007::StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100007, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -11674,11 +11846,10 @@ StaticGraph100007::StaticGraph100007(GraphConfiguration100007** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerBurstOutNo3AOuterNode = &_lbffBayerBurstOutNo3AOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -11734,7 +11905,7 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod lbffBayerBurstOutNo3AInnerOptions |= (noLbOutputPs | noLbOutputMe | noPdaf); // active private inner options according to links if ( - subGraphLinks[2]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 2 && subGraphLinks[2]->linkConfiguration->bufferSize == 0) && true) { lbffBayerBurstOutNo3AInnerOptions |= noBurstCapture; @@ -11768,8 +11939,8 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod /* * Graph 100008 */ -StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100008, selectedSettingsId, zoomKeyResolutions), +StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100008, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) @@ -11815,6 +11986,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_isysOuterNode; link->destTerminalId = 0; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -11825,6 +11997,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -11835,6 +12008,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _irSubGraph.links[2] = link; _image_irSubGraph.links[12] = link; @@ -11846,6 +12020,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffRgbIrOuterNode; link->destTerminalId = 3; link->type = LinkType::Node2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[2] = link; @@ -11856,6 +12031,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 6; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[3] = link; @@ -11866,6 +12042,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 7; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[4] = link; @@ -11876,6 +12053,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 8; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[5] = link; @@ -11886,6 +12064,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 16; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[6] = link; @@ -11896,6 +12075,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 9; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[7] = link; @@ -11908,6 +12088,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_bbpsNoTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -11917,6 +12098,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -11926,6 +12108,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 15; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -11935,6 +12118,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 16; link->dest = GraphElementType::ImagePpp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -11946,6 +12130,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_lbffIrNoGmvIrStreamOuterNode; link->destTerminalId = 3; link->type = LinkType::Node2Node; + _irSubGraph.links[9] = link; _image_irSubGraph.links[13] = link; @@ -11955,6 +12140,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 6; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[10] = link; _image_irSubGraph.links[14] = link; @@ -11964,6 +12150,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 7; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[11] = link; _image_irSubGraph.links[15] = link; @@ -11973,6 +12160,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 8; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[16] = link; @@ -11982,6 +12170,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 9; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[17] = link; @@ -11993,6 +12182,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->destNode = &_bbpsIrNoTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _irSubGraph.links[14] = link; _image_irSubGraph.links[18] = link; @@ -12002,6 +12192,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[19] = link; @@ -12021,7 +12212,6 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon _graphLinks[i].linkConfiguration = &_graphConfigurations[selectedLinkConfig].linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrOuterNode = &_lbffRgbIrOuterNode; @@ -12035,7 +12225,7 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008** selectedGraphCon _image_irSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; _image_irSubGraph.lbffIrNoGmvIrStreamOuterNode = &_lbffIrNoGmvIrStreamOuterNode; _image_irSubGraph.bbpsIrNoTnrOuterNode = &_bbpsIrNoTnrOuterNode; - + // choose the selected sub graph if ( // image sink group @@ -12182,19 +12372,19 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -12215,13 +12405,21 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -12279,7 +12477,7 @@ StaticGraphStatus irSubGraphTopology100008::configInnerNodes(SubGraphInnerNodeCo bbpsIrNoTnrInnerOptions |= (noDp | noPpp); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsIrNoTnrInnerOptions |= noMp; @@ -12302,15 +12500,25 @@ StaticGraphStatus irSubGraphTopology100008::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[11]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[12]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[13]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[15]->isActive = !(bbpsIrNoTnrInnerOptions & noMp); // bbps_Ir_NoTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -12358,19 +12566,19 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -12394,7 +12602,7 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner bbpsIrNoTnrInnerOptions |= (noDp | noPpp); // active public options according to sink mapping if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && true) { bbpsIrNoTnrInnerOptions |= noMp; @@ -12419,18 +12627,31 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[7]->isActive = !(lbffRgbIrInnerOptions & no3A); // lbff_RgbIr:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[14]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[15]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[16]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[17]->isActive = !(lbffIrNoGmvIrStreamInnerOptions & no3A); // lbff_Ir_NoGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[19]->isActive = !(bbpsIrNoTnrInnerOptions & noMp); // bbps_Ir_NoTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -12457,8 +12678,8 @@ StaticGraphStatus image_irSubGraphTopology100008::configInnerNodes(SubGraphInner /* * Graph 100015 */ -StaticGraph100015::StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100015, selectedSettingsId, zoomKeyResolutions), +StaticGraph100015::StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100015, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -12567,11 +12788,10 @@ StaticGraph100015::StaticGraph100015(GraphConfiguration100015** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -12625,13 +12845,13 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod // active public options according to sink mapping // active private inner options according to links if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 7 && subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { lbffBayerInnerOptions |= noLbOutputPs; } if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 8 && subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffBayerInnerOptions |= noLbOutputMe; @@ -12646,9 +12866,13 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + /* * Link enablement by private inner options @@ -12674,8 +12898,8 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod /* * Graph 100016 */ -StaticGraph100016::StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100016, selectedSettingsId, zoomKeyResolutions), +StaticGraph100016::StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100016, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -12743,10 +12967,9 @@ StaticGraph100016::StaticGraph100016(GraphConfiguration100016** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -12791,19 +13014,19 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[1]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[1]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[2]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[2]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[3]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[3]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -12818,8 +13041,11 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[1]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[2]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[3]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Disable links with zero buffer size @@ -12839,8 +13065,8 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod /* * Graph 100024 */ -StaticGraph100024::StaticGraph100024(GraphConfiguration100024** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100024, selectedSettingsId, zoomKeyResolutions), +StaticGraph100024::StaticGraph100024(GraphConfiguration100024** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100024, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -12955,12 +13181,11 @@ StaticGraph100024::StaticGraph100024(GraphConfiguration100024** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrNo2ANoGmvOuterNode = &_lbffIrNo2ANoGmvOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -13027,19 +13252,19 @@ StaticGraphStatus imageSubGraphTopology100024::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[6]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[6]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -13060,10 +13285,15 @@ StaticGraphStatus imageSubGraphTopology100024::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrNo2ANoGmvInnerOptions & no3A); // lbff_Ir_No2A_NoGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[4]->isActive = !(lbffIrNo2ANoGmvInnerOptions & no3A); // lbff_Ir_No2A_NoGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[6]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[7]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[8]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -13088,8 +13318,8 @@ StaticGraphStatus imageSubGraphTopology100024::configInnerNodes(SubGraphInnerNod /* * Graph 100025 */ -StaticGraph100025::StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100025, selectedSettingsId, zoomKeyResolutions), +StaticGraph100025::StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100025, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -13218,12 +13448,11 @@ StaticGraph100025::StaticGraph100025(GraphConfiguration100025** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrNoGmvOuterNode = &_lbffIrNoGmvOuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -13290,19 +13519,19 @@ StaticGraphStatus imageSubGraphTopology100025::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -13323,12 +13552,19 @@ StaticGraphStatus imageSubGraphTopology100025::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffIrNoGmvInnerOptions & no3A); // lbff_Ir_NoGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -13353,8 +13589,8 @@ StaticGraphStatus imageSubGraphTopology100025::configInnerNodes(SubGraphInnerNod /* * Graph 100026 */ -StaticGraph100026::StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100026, selectedSettingsId, zoomKeyResolutions), +StaticGraph100026::StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100026, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _rawSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -13408,10 +13644,9 @@ StaticGraph100026::StaticGraph100026(GraphConfiguration100026** selectedGraphCon // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _rawSubGraph.isysOuterNode = &_isysOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -13438,8 +13673,8 @@ StaticGraph100026::~StaticGraph100026() /* * Graph 100027 */ -StaticGraph100027::StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100027, selectedSettingsId, zoomKeyResolutions), +StaticGraph100027::StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100027, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -13591,12 +13826,11 @@ StaticGraph100027::StaticGraph100027(GraphConfiguration100027** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2OuterNode = &_lbffBayerPdaf2OuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -13663,19 +13897,19 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -13696,12 +13930,19 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[12]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[13]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -13727,8 +13968,8 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod /* * Graph 100028 */ -StaticGraph100028::StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100028, selectedSettingsId, zoomKeyResolutions), +StaticGraph100028::StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100028, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -13864,12 +14105,11 @@ StaticGraph100028::StaticGraph100028(GraphConfiguration100028** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3OuterNode = &_lbffBayerPdaf3OuterNode; _imageSubGraph.bbpsNoTnrOuterNode = &_bbpsNoTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -13936,19 +14176,19 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -13969,12 +14209,19 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[10]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -14000,8 +14247,8 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod /* * Graph 100029 */ -StaticGraph100029::StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100029, selectedSettingsId, zoomKeyResolutions), +StaticGraph100029::StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100029, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14201,12 +14448,11 @@ StaticGraph100029::StaticGraph100029(GraphConfiguration100029** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2OuterNode = &_lbffBayerPdaf2OuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -14271,19 +14517,19 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -14305,12 +14551,19 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2InnerOptions & no3A); // lbff_Bayer_Pdaf2:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -14345,8 +14598,8 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod /* * Graph 100030 */ -StaticGraph100030::StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100030, selectedSettingsId, zoomKeyResolutions), +StaticGraph100030::StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100030, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14530,12 +14783,11 @@ StaticGraph100030::StaticGraph100030(GraphConfiguration100030** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3OuterNode = &_lbffBayerPdaf3OuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -14600,19 +14852,19 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -14634,12 +14886,19 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -14674,8 +14933,8 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod /* * Graph 100031 */ -StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100031, selectedSettingsId, zoomKeyResolutions), +StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100031, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -14920,7 +15179,6 @@ StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.swDolOuterNode = &_swDolOuterNode; @@ -14929,7 +15187,7 @@ StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphCon _imageSubGraph.swGtmOuterNode = &_swGtmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -14939,8 +15197,8 @@ StaticGraph100031::StaticGraph100031(GraphConfiguration100031** selectedGraphCon _imageSubGraph.lbffDolOuterNode->contextId = 2; _imageSubGraph.bbpsNoTnrOuterNode->contextId = 3; _imageSubGraph.swGtmOuterNode->contextId = 4; - _imageSubGraph.swScalerOuterNode->contextId = 5; - _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; // Apply a default inner nodes configuration for the selected sub graph SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; if(_selectedGraphTopology != nullptr) @@ -15020,23 +15278,43 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsNoTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[11]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[11]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[11]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[11]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[12]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[12]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[12]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[12]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { bbpsNoTnrInnerOptions |= noDp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { bbpsNoTnrInnerOptions |= noPpp; @@ -15057,16 +15335,27 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[14]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> sw_gtm:terminal_connect_input + subGraphLinks[18]->isActive = !(bbpsNoTnrInnerOptions & noMp); // bbps_NoTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[12]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[15]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> sw_gtm:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsNoTnrInnerOptions & noDp); // bbps_NoTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[13]->isActive = !(bbpsNoTnrInnerOptions & noPpp); // bbps_NoTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -15091,8 +15380,8 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod /* * Graph 100032 */ -StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100032, selectedSettingsId, zoomKeyResolutions), +StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100032, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -15385,7 +15674,6 @@ StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.swDolOuterNode = &_swDolOuterNode; @@ -15394,7 +15682,7 @@ StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphCon _imageSubGraph.swGtmOuterNode = &_swGtmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -15404,8 +15692,8 @@ StaticGraph100032::StaticGraph100032(GraphConfiguration100032** selectedGraphCon _imageSubGraph.lbffDolOuterNode->contextId = 2; _imageSubGraph.bbpsWithTnrOuterNode->contextId = 3; _imageSubGraph.swGtmOuterNode->contextId = 4; - _imageSubGraph.swScalerOuterNode->contextId = 5; - _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; // Apply a default inner nodes configuration for the selected sub graph SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; if(_selectedGraphTopology != nullptr) @@ -15483,23 +15771,43 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[16]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[16]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[16]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[16]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[17]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[17]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[17]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[17]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -15521,16 +15829,27 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffDolInnerOptions & no3A); // lbff_Dol:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gtm:terminal_connect_input + subGraphLinks[23]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gtm:terminal_connect_input + subGraphLinks[24]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -15564,8 +15883,8 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod /* * Graph 100035 */ -StaticGraph100035::StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100035, selectedSettingsId, zoomKeyResolutions), +StaticGraph100035::StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100035, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _rawSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -15633,10 +15952,9 @@ StaticGraph100035::StaticGraph100035(GraphConfiguration100035** selectedGraphCon // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _rawSubGraph.isysDolOuterNode = &_isysDolOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -15663,8 +15981,8 @@ StaticGraph100035::~StaticGraph100035() /* * Graph 100036 */ -StaticGraph100036::StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100036, selectedSettingsId, zoomKeyResolutions), +StaticGraph100036::StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100036, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _rawSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -15732,10 +16050,9 @@ StaticGraph100036::StaticGraph100036(GraphConfiguration100036** selectedGraphCon // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _rawSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -15762,8 +16079,8 @@ StaticGraph100036::~StaticGraph100036() /* * Graph 100037 */ -StaticGraph100037::StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100037, selectedSettingsId, zoomKeyResolutions), +StaticGraph100037::StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100037, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -16018,13 +16335,12 @@ StaticGraph100037::StaticGraph100037(GraphConfiguration100037** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvOuterNode = &_lbffBayerPdaf2WithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -16095,22 +16411,37 @@ StaticGraphStatus imageSubGraphTopology100037::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[18]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[18]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[19]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[19]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[20]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[20]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -16132,17 +16463,29 @@ StaticGraphStatus imageSubGraphTopology100037::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf2_WithGmv:terminal_connect_gmv_input + subGraphLinks[11]->isActive = !(lbffBayerPdaf2WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf2_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[22]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[23]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -16178,8 +16521,8 @@ StaticGraphStatus imageSubGraphTopology100037::configInnerNodes(SubGraphInnerNod /* * Graph 100038 */ -StaticGraph100038::StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100038, selectedSettingsId, zoomKeyResolutions), +StaticGraph100038::StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100038, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -16418,13 +16761,12 @@ StaticGraph100038::StaticGraph100038(GraphConfiguration100038** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvOuterNode = &_lbffBayerPdaf3WithGmvOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -16495,22 +16837,37 @@ StaticGraphStatus imageSubGraphTopology100038::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[16]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[16]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[17]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[17]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[18]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[18]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -16532,17 +16889,29 @@ StaticGraphStatus imageSubGraphTopology100038::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3_WithGmv:terminal_connect_gmv_input + subGraphLinks[9]->isActive = !(lbffBayerPdaf3WithGmvInnerOptions & noGmv); // lbff_Bayer_Pdaf3_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -16578,8 +16947,8 @@ StaticGraphStatus imageSubGraphTopology100038::configInnerNodes(SubGraphInnerNod /* * Graph 100039 */ -StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100039, selectedSettingsId, zoomKeyResolutions), +StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100039, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) @@ -16629,6 +16998,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_isysOuterNode; link->destTerminalId = 0; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -16639,6 +17009,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffRgbIrWithGmvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -16649,6 +17020,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffIrWithGmvIrStreamOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _irSubGraph.links[2] = link; _image_irSubGraph.links[23] = link; @@ -16660,6 +17032,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffRgbIrWithGmvOuterNode; link->destTerminalId = 3; link->type = LinkType::Node2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[2] = link; @@ -16670,6 +17043,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 6; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[3] = link; @@ -16680,6 +17054,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 7; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[4] = link; @@ -16690,6 +17065,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 8; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[5] = link; @@ -16700,6 +17076,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 9; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[6] = link; @@ -16710,6 +17087,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 16; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[7] = link; @@ -16723,6 +17101,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 15; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[8] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[8] = link; @@ -16733,6 +17112,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 18; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[9] = link; @@ -16745,6 +17125,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _imageSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -16756,6 +17137,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _imageSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -16768,6 +17150,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -16780,6 +17163,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -16791,6 +17175,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _imageSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -16803,6 +17188,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -16812,6 +17198,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -16821,6 +17208,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 15; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -16830,6 +17218,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 16; link->dest = GraphElementType::ImagePpp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -16841,6 +17230,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_lbffIrWithGmvIrStreamOuterNode; link->destTerminalId = 3; link->type = LinkType::Node2Node; + _irSubGraph.links[11] = link; _image_irSubGraph.links[24] = link; @@ -16850,6 +17240,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 6; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[25] = link; @@ -16859,6 +17250,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 7; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[26] = link; @@ -16868,6 +17260,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 8; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[14] = link; _image_irSubGraph.links[27] = link; @@ -16877,6 +17270,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 9; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[28] = link; @@ -16888,6 +17282,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 9; link->type = LinkType::Node2Node; + _irSubGraph.links[16] = link; _image_irSubGraph.links[29] = link; @@ -16899,6 +17294,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 7; link->type = LinkType::Node2Node; + _irSubGraph.links[17] = link; _image_irSubGraph.links[30] = link; @@ -16911,6 +17307,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 10; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[18] = link; _image_irSubGraph.links[31] = link; @@ -16923,6 +17320,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 5; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[19] = link; _image_irSubGraph.links[32] = link; @@ -16934,6 +17332,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_bbpsIrWithTnrOuterNode; link->destTerminalId = 11; link->type = LinkType::Node2Self; + _irSubGraph.links[20] = link; _image_irSubGraph.links[33] = link; @@ -16946,6 +17345,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destTerminalId = 6; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[21] = link; _image_irSubGraph.links[34] = link; @@ -16955,6 +17355,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 14; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[22] = link; _image_irSubGraph.links[35] = link; @@ -16966,6 +17367,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -16977,6 +17379,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -16988,6 +17391,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -16997,6 +17401,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -17016,7 +17421,6 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon _graphLinks[i].linkConfiguration = &_graphConfigurations[selectedLinkConfig].linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrWithGmvOuterNode = &_lbffRgbIrWithGmvOuterNode; @@ -17032,7 +17436,7 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039** selectedGraphCon _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffIrWithGmvIrStreamOuterNode = &_lbffIrWithGmvIrStreamOuterNode; _image_irSubGraph.bbpsIrWithTnrOuterNode = &_bbpsIrWithTnrOuterNode; - + // choose the selected sub graph if ( // image sink group @@ -17186,22 +17590,37 @@ StaticGraphStatus imageSubGraphTopology100039::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[16]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[16]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[17]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[17]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[18]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[18]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -17223,18 +17642,31 @@ StaticGraphStatus imageSubGraphTopology100039::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_feature_output -> lbff_RgbIr_WithGmv:terminal_connect_gmv_input + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> sw_gdc:terminal_connect_input + /* * Link enablement by private inner options @@ -17300,7 +17732,7 @@ StaticGraphStatus irSubGraphTopology100039::configInnerNodes(SubGraphInnerNodeCo bbpsIrWithTnrInnerOptions |= (noDp | noPpp); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -17324,17 +17756,29 @@ StaticGraphStatus irSubGraphTopology100039::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_feature_output -> lbff_RgbIr_WithGmv:terminal_connect_gmv_input + subGraphLinks[10]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[12]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[13]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[14]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[15]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[22]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -17390,22 +17834,37 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[16]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[16]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[17]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[17]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[18]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[18]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -17427,7 +17886,7 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner bbpsIrWithTnrInnerOptions |= (noDp | noPpp); // active public options according to sink mapping if ( - subGraphLinks[35]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[35]->linkConfiguration->bufferSize == 0) && true) { bbpsIrWithTnrInnerOptions |= noMp; @@ -17454,23 +17913,41 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvInnerOptions & no3A); // lbff_RgbIr_WithGmv:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_feature_output -> lbff_RgbIr_WithGmv:terminal_connect_gmv_input + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvInnerOptions & noGmv); // lbff_RgbIr_WithGmv:terminal_connect_gmv_match_output -> gmv_match_out + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[19]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[20]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + subGraphLinks[21]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> sw_gdc:terminal_connect_input + subGraphLinks[25]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[26]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[27]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[28]->isActive = !(lbffIrWithGmvIrStreamInnerOptions & no3A); // lbff_Ir_WithGmv_IrStream:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[35]->isActive = !(bbpsIrWithTnrInnerOptions & noMp); // bbps_Ir_WithTnr:bbps_ofs_mp_yuvn_odr -> ir_mp + /* * Link enablement by private inner options @@ -17512,8 +17989,8 @@ StaticGraphStatus image_irSubGraphTopology100039::configInnerNodes(SubGraphInner /* * Graph 100040 */ -StaticGraph100040::StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100040, selectedSettingsId, zoomKeyResolutions), +StaticGraph100040::StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100040, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -17739,14 +18216,13 @@ StaticGraph100040::StaticGraph100040(GraphConfiguration100040** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3OuterNode = &_lbffBayerPdaf3OuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -17825,15 +18301,25 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod bbpsWithTnrInnerOptions |= (noPpp); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; @@ -17855,13 +18341,21 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3InnerOptions & no3A); // lbff_Bayer_Pdaf3:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + /* * Link enablement by private inner options @@ -17896,8 +18390,8 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod /* * Graph 100041 */ -StaticGraph100041::StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100041, selectedSettingsId, zoomKeyResolutions), +StaticGraph100041::StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100041, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -18107,21 +18601,20 @@ StaticGraph100041::StaticGraph100041(GraphConfiguration100041** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.swVaiOuterNode = &_swVaiOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; // logical node IDs _imageSubGraph.isysOuterNode->contextId = 0; - _imageSubGraph.lbffBayerOuterNode->contextId = 1; - _imageSubGraph.swVaiOuterNode->contextId = 2; + _imageSubGraph.swVaiOuterNode->contextId = 1; + _imageSubGraph.lbffBayerOuterNode->contextId = 2; _imageSubGraph.bbpsWithTnrOuterNode->contextId = 3; _imageSubGraph.swScalerOuterNode->contextId = 4; // Apply a default inner nodes configuration for the selected sub graph @@ -18191,20 +18684,25 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -18226,13 +18724,21 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_scaler:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -18266,8 +18772,8 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod /* * Graph 100042 */ -StaticGraph100042::StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100042, selectedSettingsId, zoomKeyResolutions), +StaticGraph100042::StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100042, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -18493,14 +18999,13 @@ StaticGraph100042::StaticGraph100042(GraphConfiguration100042** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swImvOuterNode = &_swImvOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -18577,21 +19082,31 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -18613,14 +19128,23 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_imv:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_imv:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -18654,8 +19178,8 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod /* * Graph 100044 */ -StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100044, selectedSettingsId, zoomKeyResolutions), +StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100044, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -18881,14 +19405,13 @@ StaticGraph100044::StaticGraph100044(GraphConfiguration100044** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swDeskviewOuterNode = &_swDeskviewOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -18965,21 +19488,31 @@ StaticGraphStatus imageSubGraphTopology100044::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -19001,14 +19534,23 @@ StaticGraphStatus imageSubGraphTopology100044::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_deskview:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_deskview:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -19042,8 +19584,8 @@ StaticGraphStatus imageSubGraphTopology100044::configInnerNodes(SubGraphInnerNod /* * Graph 100045 */ -StaticGraph100045::StaticGraph100045(GraphConfiguration100045** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100045, selectedSettingsId, zoomKeyResolutions), +StaticGraph100045::StaticGraph100045(GraphConfiguration100045** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100045, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -19282,7 +19824,6 @@ StaticGraph100045::StaticGraph100045(GraphConfiguration100045** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; @@ -19290,7 +19831,7 @@ StaticGraph100045::StaticGraph100045(GraphConfiguration100045** selectedGraphCon _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swRotationOuterNode = &_swRotationOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -19373,21 +19914,31 @@ StaticGraphStatus imageSubGraphTopology100045::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -19409,14 +19960,23 @@ StaticGraphStatus imageSubGraphTopology100045::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options @@ -19450,8 +20010,8 @@ StaticGraphStatus imageSubGraphTopology100045::configInnerNodes(SubGraphInnerNod /* * Graph 100046 */ -StaticGraph100046::StaticGraph100046(GraphConfiguration100046** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100046, selectedSettingsId, zoomKeyResolutions), +StaticGraph100046::StaticGraph100046(GraphConfiguration100046** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100046, selectedSettingsId, additonalFeaturesBit, zoomKeyResolutions), _imageSubGraph(_sinkMappingConfiguration) { // Construct outer nodes @@ -19677,14 +20237,13 @@ StaticGraph100046::StaticGraph100046(GraphConfiguration100046** selectedGraphCon // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerOuterNode = &_lbffBayerOuterNode; _imageSubGraph.bbpsWithTnrOuterNode = &_bbpsWithTnrOuterNode; _imageSubGraph.swDeskviewNoblendOuterNode = &_swDeskviewNoblendOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -19761,21 +20320,31 @@ StaticGraphStatus imageSubGraphTopology100046::configInnerNodes(SubGraphInnerNod InnerNodeOptionsFlags bbpsWithTnrInnerOptions = imagePublicInnerNodeConfiguration; // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[13]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[13]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[14]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[14]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { bbpsWithTnrInnerOptions |= noDp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { bbpsWithTnrInnerOptions |= noPpp; @@ -19797,14 +20366,23 @@ StaticGraphStatus imageSubGraphTopology100046::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerInnerOptions & no3A); // lbff_Bayer:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> image_mp + subGraphLinks[16]->isActive = !(bbpsWithTnrInnerOptions & noMp); // bbps_WithTnr:bbps_ofs_mp_yuvn_odr -> sw_deskview_noblend:terminal_connect_input + subGraphLinks[14]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> image_dp + subGraphLinks[17]->isActive = !(bbpsWithTnrInnerOptions & noDp); // bbps_WithTnr:bbps_ofs_dp_yuvn_odr -> sw_deskview_noblend:terminal_connect_input + subGraphLinks[15]->isActive = !(bbpsWithTnrInnerOptions & noPpp); // bbps_WithTnr:bbps_ofs_pp_yuvn_odr -> image_ppp + /* * Link enablement by private inner options diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.h b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.h index e2d09b7..1805815 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.h +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphAutogen.h @@ -34,10 +34,14 @@ #include "Ipu7xStaticGraphTypesAutogen.h" #include "Ipu7xStaticGraphBinaryAutogen.h" +#define SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH 0 + #define SUPPORT_KEY_RESOLUTIONS 1 #define SUPPORT_FRAGMENTS 0 +#define SUPPORT_TM_SWITCH 0 + enum InnerNodeOption { None = 0, @@ -79,6 +83,7 @@ class OuterNode { StaticGraphNodeKernels nodeKernels = {}; uint8_t numberOfFragments = 0; + OuterNode() {} ~OuterNode(); @@ -146,12 +151,13 @@ class GraphTopology { class IStaticGraphConfig { public: - IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t selectedSettingsId, ZoomKeyResolutions* zoomKeyResolutions); + IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t selectedSettingsId, int32_t additonalFeaturesBit, ZoomKeyResolutions* zoomKeyResolutions); virtual ~IStaticGraphConfig(){} StaticGraphStatus getGraphTopology(GraphTopology** topology); StaticGraphStatus getSensorMode(SensorMode** sensorMode); StaticGraphStatus getGraphId(int32_t* id); StaticGraphStatus getSettingsId(int32_t* id); + StaticGraphStatus getAdditionalFeaturesBit(int32_t* featuresBit); StaticGraphStatus getVirtualSinkConnection(VirtualSink& virtualSink, HwSink* hwSink); StaticGraphStatus getZoomKeyResolutions(ZoomKeyResolutions** zoomKeyResolutions); virtual StaticGraphStatus updateConfiguration(uint32_t selectedIndex = 0) = 0; @@ -164,6 +170,7 @@ class IStaticGraphConfig private: int32_t _graphId; int32_t _settingsId; + int32_t _additonalFeaturesBit; VirtualSinkMapping _selectedSinkMappingConfiguration; }; @@ -473,6 +480,7 @@ struct GraphConfiguration100000 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[11]; }; @@ -484,6 +492,7 @@ struct GraphConfiguration100001 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -494,6 +503,7 @@ struct GraphConfiguration100002 LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[18]; }; @@ -504,6 +514,7 @@ struct GraphConfiguration100003 LbffBayerWithGmvOuterNodeConfiguration lbffBayerWithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[22]; }; @@ -515,6 +526,7 @@ struct GraphConfiguration100004 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -526,6 +538,7 @@ struct GraphConfiguration100005 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -537,6 +550,7 @@ struct GraphConfiguration100006 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; LbffIrNoGmvIrStreamOuterNodeConfiguration lbffIrNoGmvIrStreamOuterNodeConfiguration; BbpsIrWithTnrOuterNodeConfiguration bbpsIrWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[30]; }; @@ -545,6 +559,7 @@ struct GraphConfiguration100007 VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerBurstOutNo3AOuterNodeConfiguration lbffBayerBurstOutNo3AOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[3]; }; @@ -556,6 +571,7 @@ struct GraphConfiguration100008 BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; LbffIrNoGmvIrStreamOuterNodeConfiguration lbffIrNoGmvIrStreamOuterNodeConfiguration; BbpsIrNoTnrOuterNodeConfiguration bbpsIrNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[20]; }; @@ -564,6 +580,7 @@ struct GraphConfiguration100015 VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[9]; }; @@ -571,6 +588,7 @@ struct GraphConfiguration100016 { VirtualSinkMapping sinkMappingConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[4]; }; @@ -580,6 +598,7 @@ struct GraphConfiguration100024 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffIrNo2ANoGmvOuterNodeConfiguration lbffIrNo2ANoGmvOuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[9]; }; @@ -589,6 +608,7 @@ struct GraphConfiguration100025 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffIrNoGmvOuterNodeConfiguration lbffIrNoGmvOuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[11]; }; @@ -596,6 +616,7 @@ struct GraphConfiguration100026 { VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[2]; }; @@ -605,6 +626,7 @@ struct GraphConfiguration100027 IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; LbffBayerPdaf2OuterNodeConfiguration lbffBayerPdaf2OuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[14]; }; @@ -614,6 +636,7 @@ struct GraphConfiguration100028 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3OuterNodeConfiguration lbffBayerPdaf3OuterNodeConfiguration; BbpsNoTnrOuterNodeConfiguration bbpsNoTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[12]; }; @@ -623,6 +646,7 @@ struct GraphConfiguration100029 IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; LbffBayerPdaf2OuterNodeConfiguration lbffBayerPdaf2OuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[19]; }; @@ -632,6 +656,7 @@ struct GraphConfiguration100030 IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3OuterNodeConfiguration lbffBayerPdaf3OuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[17]; }; @@ -645,6 +670,7 @@ struct GraphConfiguration100031 SwGtmOuterNodeConfiguration swGtmOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -658,6 +684,7 @@ struct GraphConfiguration100032 SwGtmOuterNodeConfiguration swGtmOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[28]; }; @@ -665,6 +692,7 @@ struct GraphConfiguration100035 { VirtualSinkMapping sinkMappingConfiguration; IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[4]; }; @@ -672,6 +700,7 @@ struct GraphConfiguration100036 { VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[4]; }; @@ -682,6 +711,7 @@ struct GraphConfiguration100037 LbffBayerPdaf2WithGmvOuterNodeConfiguration lbffBayerPdaf2WithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[25]; }; @@ -692,6 +722,7 @@ struct GraphConfiguration100038 LbffBayerPdaf3WithGmvOuterNodeConfiguration lbffBayerPdaf3WithGmvOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; }; @@ -704,6 +735,7 @@ struct GraphConfiguration100039 LbffIrWithGmvIrStreamOuterNodeConfiguration lbffIrWithGmvIrStreamOuterNodeConfiguration; BbpsIrWithTnrOuterNodeConfiguration bbpsIrWithTnrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[36]; }; @@ -715,6 +747,7 @@ struct GraphConfiguration100040 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -726,6 +759,7 @@ struct GraphConfiguration100041 LbffBayerOuterNodeConfiguration lbffBayerOuterNodeConfiguration; BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[19]; }; @@ -737,6 +771,7 @@ struct GraphConfiguration100042 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -748,6 +783,7 @@ struct GraphConfiguration100044 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwDeskviewOuterNodeConfiguration swDeskviewOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; @@ -760,6 +796,7 @@ struct GraphConfiguration100045 SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwRotationOuterNodeConfiguration swRotationOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[22]; }; @@ -771,6 +808,7 @@ struct GraphConfiguration100046 BbpsWithTnrOuterNodeConfiguration bbpsWithTnrOuterNodeConfiguration; SwDeskviewNoblendOuterNodeConfiguration swDeskviewNoblendOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; #pragma pack(pop) @@ -1071,10 +1109,10 @@ class imageSubGraphTopology100000 : public GraphTopology { class StaticGraph100000 : public IStaticGraphConfig { public: - StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100000(GraphConfiguration100000** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100000(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4190972869; // autogenerated + static const uint32_t hashCode = 980154548; // autogenerated private: // Configuration @@ -1092,6 +1130,7 @@ class StaticGraph100000 : public IStaticGraphConfig imageSubGraphTopology100000 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -1113,10 +1152,10 @@ class imageSubGraphTopology100001 : public GraphTopology { class StaticGraph100001 : public IStaticGraphConfig { public: - StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100001(GraphConfiguration100001** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100001(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4000592719; // autogenerated + static const uint32_t hashCode = 1405953078; // autogenerated private: // Configuration @@ -1136,6 +1175,7 @@ class StaticGraph100001 : public IStaticGraphConfig imageSubGraphTopology100001 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -1156,10 +1196,10 @@ class imageSubGraphTopology100002 : public GraphTopology { class StaticGraph100002 : public IStaticGraphConfig { public: - StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100002(GraphConfiguration100002** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100002(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3682957809; // autogenerated + static const uint32_t hashCode = 3703338028; // autogenerated private: // Configuration @@ -1178,6 +1218,7 @@ class StaticGraph100002 : public IStaticGraphConfig imageSubGraphTopology100002 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -1198,10 +1239,10 @@ class imageSubGraphTopology100003 : public GraphTopology { class StaticGraph100003 : public IStaticGraphConfig { public: - StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100003(GraphConfiguration100003** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100003(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 676510519; // autogenerated + static const uint32_t hashCode = 1330586970; // autogenerated private: // Configuration @@ -1220,6 +1261,7 @@ class StaticGraph100003 : public IStaticGraphConfig imageSubGraphTopology100003 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -1241,10 +1283,10 @@ class imageSubGraphTopology100004 : public GraphTopology { class StaticGraph100004 : public IStaticGraphConfig { public: - StaticGraph100004(GraphConfiguration100004** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100004(GraphConfiguration100004** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100004(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 865685625; // autogenerated + static const uint32_t hashCode = 2603394768; // autogenerated private: // Configuration @@ -1264,6 +1306,7 @@ class StaticGraph100004 : public IStaticGraphConfig imageSubGraphTopology100004 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -1285,10 +1328,10 @@ class imageSubGraphTopology100005 : public GraphTopology { class StaticGraph100005 : public IStaticGraphConfig { public: - StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100005(GraphConfiguration100005** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100005(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1942182435; // autogenerated + static const uint32_t hashCode = 654703298; // autogenerated private: // Configuration @@ -1308,6 +1351,7 @@ class StaticGraph100005 : public IStaticGraphConfig imageSubGraphTopology100005 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -1356,10 +1400,10 @@ class image_irSubGraphTopology100006 : public GraphTopology { class StaticGraph100006 : public IStaticGraphConfig { public: - StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100006(GraphConfiguration100006** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100006(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2847247459; // autogenerated + static const uint32_t hashCode = 1103879710; // autogenerated private: // Configuration @@ -1381,6 +1425,7 @@ class StaticGraph100006 : public IStaticGraphConfig image_irSubGraphTopology100006 _image_irSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -1399,10 +1444,10 @@ class imageSubGraphTopology100007 : public GraphTopology { class StaticGraph100007 : public IStaticGraphConfig { public: - StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100007(GraphConfiguration100007** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100007(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3225545321; // autogenerated + static const uint32_t hashCode = 3778332976; // autogenerated private: // Configuration @@ -1419,6 +1464,7 @@ class StaticGraph100007 : public IStaticGraphConfig imageSubGraphTopology100007 _imageSubGraph; // All graph links + GraphLink _graphLinks[3]; }; @@ -1467,10 +1513,10 @@ class image_irSubGraphTopology100008 : public GraphTopology { class StaticGraph100008 : public IStaticGraphConfig { public: - StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100008(GraphConfiguration100008** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100008(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 541001651; // autogenerated + static const uint32_t hashCode = 1085440998; // autogenerated private: // Configuration @@ -1492,6 +1538,7 @@ class StaticGraph100008 : public IStaticGraphConfig image_irSubGraphTopology100008 _image_irSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -1510,10 +1557,10 @@ class imageSubGraphTopology100015 : public GraphTopology { class StaticGraph100015 : public IStaticGraphConfig { public: - StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100015(GraphConfiguration100015** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100015(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1836456445; // autogenerated + static const uint32_t hashCode = 2007959116; // autogenerated private: // Configuration @@ -1530,6 +1577,7 @@ class StaticGraph100015 : public IStaticGraphConfig imageSubGraphTopology100015 _imageSubGraph; // All graph links + GraphLink _graphLinks[9]; }; @@ -1547,10 +1595,10 @@ class imageSubGraphTopology100016 : public GraphTopology { class StaticGraph100016 : public IStaticGraphConfig { public: - StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100016(GraphConfiguration100016** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100016(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2096242817; // autogenerated + static const uint32_t hashCode = 2131944732; // autogenerated private: // Configuration @@ -1566,6 +1614,7 @@ class StaticGraph100016 : public IStaticGraphConfig imageSubGraphTopology100016 _imageSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -1585,10 +1634,10 @@ class imageSubGraphTopology100024 : public GraphTopology { class StaticGraph100024 : public IStaticGraphConfig { public: - StaticGraph100024(GraphConfiguration100024** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100024(GraphConfiguration100024** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100024(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4016039499; // autogenerated + static const uint32_t hashCode = 2172038410; // autogenerated private: // Configuration @@ -1606,6 +1655,7 @@ class StaticGraph100024 : public IStaticGraphConfig imageSubGraphTopology100024 _imageSubGraph; // All graph links + GraphLink _graphLinks[9]; }; @@ -1625,10 +1675,10 @@ class imageSubGraphTopology100025 : public GraphTopology { class StaticGraph100025 : public IStaticGraphConfig { public: - StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100025(GraphConfiguration100025** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100025(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 4190972869; // autogenerated + static const uint32_t hashCode = 980154548; // autogenerated private: // Configuration @@ -1646,6 +1696,7 @@ class StaticGraph100025 : public IStaticGraphConfig imageSubGraphTopology100025 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -1661,10 +1712,10 @@ class rawSubGraphTopology100026 : public GraphTopology { class StaticGraph100026 : public IStaticGraphConfig { public: - StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100026(GraphConfiguration100026** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100026(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 772747713; // autogenerated + static const uint32_t hashCode = 53035668; // autogenerated private: // Configuration @@ -1680,6 +1731,7 @@ class StaticGraph100026 : public IStaticGraphConfig rawSubGraphTopology100026 _rawSubGraph; // All graph links + GraphLink _graphLinks[2]; }; @@ -1699,10 +1751,10 @@ class imageSubGraphTopology100027 : public GraphTopology { class StaticGraph100027 : public IStaticGraphConfig { public: - StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100027(GraphConfiguration100027** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100027(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 504924009; // autogenerated + static const uint32_t hashCode = 129583068; // autogenerated private: // Configuration @@ -1720,6 +1772,7 @@ class StaticGraph100027 : public IStaticGraphConfig imageSubGraphTopology100027 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -1739,10 +1792,10 @@ class imageSubGraphTopology100028 : public GraphTopology { class StaticGraph100028 : public IStaticGraphConfig { public: - StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100028(GraphConfiguration100028** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100028(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 267295079; // autogenerated + static const uint32_t hashCode = 3562841050; // autogenerated private: // Configuration @@ -1760,6 +1813,7 @@ class StaticGraph100028 : public IStaticGraphConfig imageSubGraphTopology100028 _imageSubGraph; // All graph links + GraphLink _graphLinks[12]; }; @@ -1779,10 +1833,10 @@ class imageSubGraphTopology100029 : public GraphTopology { class StaticGraph100029 : public IStaticGraphConfig { public: - StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100029(GraphConfiguration100029** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100029(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3664278837; // autogenerated + static const uint32_t hashCode = 3233661892; // autogenerated private: // Configuration @@ -1800,6 +1854,7 @@ class StaticGraph100029 : public IStaticGraphConfig imageSubGraphTopology100029 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -1819,10 +1874,10 @@ class imageSubGraphTopology100030 : public GraphTopology { class StaticGraph100030 : public IStaticGraphConfig { public: - StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100030(GraphConfiguration100030** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100030(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1580221107; // autogenerated + static const uint32_t hashCode = 3440520914; // autogenerated private: // Configuration @@ -1840,6 +1895,7 @@ class StaticGraph100030 : public IStaticGraphConfig imageSubGraphTopology100030 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -1863,10 +1919,10 @@ class imageSubGraphTopology100031 : public GraphTopology { class StaticGraph100031 : public IStaticGraphConfig { public: - StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100031(GraphConfiguration100031** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100031(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 775439101; // autogenerated + static const uint32_t hashCode = 2218072780; // autogenerated private: // Configuration @@ -1888,6 +1944,7 @@ class StaticGraph100031 : public IStaticGraphConfig imageSubGraphTopology100031 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -1911,10 +1968,10 @@ class imageSubGraphTopology100032 : public GraphTopology { class StaticGraph100032 : public IStaticGraphConfig { public: - StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100032(GraphConfiguration100032** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100032(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2582397713; // autogenerated + static const uint32_t hashCode = 3394144828; // autogenerated private: // Configuration @@ -1936,6 +1993,7 @@ class StaticGraph100032 : public IStaticGraphConfig imageSubGraphTopology100032 _imageSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -1951,10 +2009,10 @@ class rawSubGraphTopology100035 : public GraphTopology { class StaticGraph100035 : public IStaticGraphConfig { public: - StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100035(GraphConfiguration100035** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100035(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 673385603; // autogenerated + static const uint32_t hashCode = 3196824198; // autogenerated private: // Configuration @@ -1970,6 +2028,7 @@ class StaticGraph100035 : public IStaticGraphConfig rawSubGraphTopology100035 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -1985,10 +2044,10 @@ class rawSubGraphTopology100036 : public GraphTopology { class StaticGraph100036 : public IStaticGraphConfig { public: - StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100036(GraphConfiguration100036** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100036(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 673385603; // autogenerated + static const uint32_t hashCode = 3196824198; // autogenerated private: // Configuration @@ -2004,6 +2063,7 @@ class StaticGraph100036 : public IStaticGraphConfig rawSubGraphTopology100036 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -2024,10 +2084,10 @@ class imageSubGraphTopology100037 : public GraphTopology { class StaticGraph100037 : public IStaticGraphConfig { public: - StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100037(GraphConfiguration100037** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100037(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3458381563; // autogenerated + static const uint32_t hashCode = 3137130706; // autogenerated private: // Configuration @@ -2046,6 +2106,7 @@ class StaticGraph100037 : public IStaticGraphConfig imageSubGraphTopology100037 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -2066,10 +2127,10 @@ class imageSubGraphTopology100038 : public GraphTopology { class StaticGraph100038 : public IStaticGraphConfig { public: - StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100038(GraphConfiguration100038** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100038(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3887639909; // autogenerated + static const uint32_t hashCode = 3062108; // autogenerated private: // Configuration @@ -2088,6 +2149,7 @@ class StaticGraph100038 : public IStaticGraphConfig imageSubGraphTopology100038 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -2138,10 +2200,10 @@ class image_irSubGraphTopology100039 : public GraphTopology { class StaticGraph100039 : public IStaticGraphConfig { public: - StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100039(GraphConfiguration100039** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100039(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2065622235; // autogenerated + static const uint32_t hashCode = 1263063894; // autogenerated private: // Configuration @@ -2164,6 +2226,7 @@ class StaticGraph100039 : public IStaticGraphConfig image_irSubGraphTopology100039 _image_irSubGraph; // All graph links + GraphLink _graphLinks[36]; }; @@ -2185,10 +2248,10 @@ class imageSubGraphTopology100040 : public GraphTopology { class StaticGraph100040 : public IStaticGraphConfig { public: - StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100040(GraphConfiguration100040** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100040(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 1313599209; // autogenerated + static const uint32_t hashCode = 2586307264; // autogenerated private: // Configuration @@ -2208,6 +2271,7 @@ class StaticGraph100040 : public IStaticGraphConfig imageSubGraphTopology100040 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2229,10 +2293,10 @@ class imageSubGraphTopology100041 : public GraphTopology { class StaticGraph100041 : public IStaticGraphConfig { public: - StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100041(GraphConfiguration100041** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100041(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 2370718729; // autogenerated + static const uint32_t hashCode = 4040435208; // autogenerated private: // Configuration @@ -2252,6 +2316,7 @@ class StaticGraph100041 : public IStaticGraphConfig imageSubGraphTopology100041 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -2273,10 +2338,10 @@ class imageSubGraphTopology100042 : public GraphTopology { class StaticGraph100042 : public IStaticGraphConfig { public: - StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100042(GraphConfiguration100042** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100042(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 3223357017; // autogenerated + static const uint32_t hashCode = 3945721520; // autogenerated private: // Configuration @@ -2296,6 +2361,7 @@ class StaticGraph100042 : public IStaticGraphConfig imageSubGraphTopology100042 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2317,10 +2383,10 @@ class imageSubGraphTopology100044 : public GraphTopology { class StaticGraph100044 : public IStaticGraphConfig { public: - StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100044(GraphConfiguration100044** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100044(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 865685625; // autogenerated + static const uint32_t hashCode = 2603394768; // autogenerated private: // Configuration @@ -2340,6 +2406,7 @@ class StaticGraph100044 : public IStaticGraphConfig imageSubGraphTopology100044 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -2362,10 +2429,10 @@ class imageSubGraphTopology100045 : public GraphTopology { class StaticGraph100045 : public IStaticGraphConfig { public: - StaticGraph100045(GraphConfiguration100045** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100045(GraphConfiguration100045** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100045(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 433119547; // autogenerated + static const uint32_t hashCode = 1668554766; // autogenerated private: // Configuration @@ -2386,6 +2453,7 @@ class StaticGraph100045 : public IStaticGraphConfig imageSubGraphTopology100045 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -2407,10 +2475,10 @@ class imageSubGraphTopology100046 : public GraphTopology { class StaticGraph100046 : public IStaticGraphConfig { public: - StaticGraph100046(GraphConfiguration100046** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId); + StaticGraph100046(GraphConfiguration100046** selectedGraphConfiguration, uint32_t kernelConfigurationsOptionsCount, ZoomKeyResolutions* zoomKeyResolutions, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit); ~StaticGraph100046(); StaticGraphStatus updateConfiguration(uint32_t selectedIndex=0); - static const uint32_t hashCode = 865685625; // autogenerated + static const uint32_t hashCode = 2603394768; // autogenerated private: // Configuration @@ -2430,6 +2498,7 @@ class StaticGraph100046 : public IStaticGraphConfig imageSubGraphTopology100046 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphBinaryAutogen.h b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphBinaryAutogen.h index 0bd1b54..c55b797 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphBinaryAutogen.h +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphBinaryAutogen.h @@ -1,3 +1,4 @@ + /* * INTEL CONFIDENTIAL * Copyright (c) 2026 Intel Corporation diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphDataPreloadAutogen.h b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphDataPreloadAutogen.h index 975b7a6..541fd85 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphDataPreloadAutogen.h +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphDataPreloadAutogen.h @@ -120,37 +120,37 @@ static int distinctGraphsCount = 31; static GraphHashCode hashCodeLookup[] = { {0, 0x8C011399}, - {100000, 0xF9CD2BC5}, - {100001, 0xEE74334F}, - {100002, 0xDB8579F1}, - {100003, 0x2852BB37}, - {100004, 0x33995079}, - {100005, 0x73C35A23}, - {100006, 0xA9B58C63}, - {100007, 0xC041EA69}, - {100008, 0x203F07B3}, - {100015, 0x6D7619FD}, - {100016, 0x7CF22081}, - {100024, 0xEF5FE64B}, - {100025, 0xF9CD2BC5}, - {100026, 0x2E0F31C1}, - {100027, 0x1E188769}, - {100028, 0xFEE9967}, - {100029, 0xDA687535}, - {100030, 0x5E3042B3}, - {100031, 0x2E3842FD}, - {100032, 0x99EC4311}, - {100035, 0x28230C83}, - {100036, 0x28230C83}, - {100037, 0xCE22B6FB}, - {100038, 0xE7B8AD65}, - {100039, 0x7B1EE4DB}, - {100040, 0x4E4BEEE9}, - {100041, 0x8D4E4C09}, - {100042, 0xC0208659}, - {100044, 0x33995079}, - {100045, 0x19D0E13B}, - {100046, 0x33995079} + {100000, 0x3A6BF8B4}, + {100001, 0x53CD2436}, + {100002, 0xDCBC742C}, + {100003, 0x4F4F255A}, + {100004, 0x9B2CA6D0}, + {100005, 0x2705FAC2}, + {100006, 0x41CBDE1E}, + {100007, 0xE134C930}, + {100008, 0x40B283E6}, + {100015, 0x77AF064C}, + {100016, 0x7F12E51C}, + {100024, 0x8176AD0A}, + {100025, 0x3A6BF8B4}, + {100026, 0x3294294}, + {100027, 0x7B947DC}, + {100028, 0xD45CA3DA}, + {100029, 0xC0BDC3C4}, + {100030, 0xCD122ED2}, + {100031, 0x84351ACC}, + {100032, 0xCA4E8A3C}, + {100035, 0xBE8BAA86}, + {100036, 0xBE8BAA86}, + {100037, 0xBAFCD0D2}, + {100038, 0x2EB95C}, + {100039, 0x4B48D356}, + {100040, 0x9A27EAC0}, + {100041, 0xF0D42608}, + {100042, 0xEB2EEEB0}, + {100044, 0x9B2CA6D0}, + {100045, 0x6374200E}, + {100046, 0x9B2CA6D0} }; static FrameFormatDesc formatsDB[] = { diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.cpp b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.cpp index d54789d..031b9b6 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.cpp +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.cpp @@ -95,6 +95,11 @@ uint32_t StaticGraphReader::GetSAPAttribute() const return 0; } +uint32_t StaticGraphReader::GetGlobalAdditionalFeaturesBit() const +{ + return 0; +} + uint32_t StaticGraphReader::GetAdditionalFeaturesBit(const GraphConfigurationHeader* header) const { return header ? header->additonalFeaturesBit : 0; @@ -228,7 +233,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100000( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100001: if (StaticGraph100001::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -239,7 +244,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100001( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100002: if (StaticGraph100002::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -250,7 +255,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100002( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100003: if (StaticGraph100003::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -261,7 +266,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100003( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100004: if (StaticGraph100004::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -272,7 +277,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100004( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100005: if (StaticGraph100005::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -283,7 +288,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100005( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100006: if (StaticGraph100006::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -294,7 +299,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100006( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100007: if (StaticGraph100007::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -305,7 +310,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100007( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100008: if (StaticGraph100008::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -316,7 +321,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100008( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100015: if (StaticGraph100015::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -327,7 +332,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100015( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100016: if (StaticGraph100016::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -338,7 +343,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100016( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100024: if (StaticGraph100024::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -349,7 +354,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100024( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100025: if (StaticGraph100025::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -360,7 +365,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100025( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100026: if (StaticGraph100026::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -371,7 +376,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100026( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100027: if (StaticGraph100027::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -382,7 +387,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100027( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100028: if (StaticGraph100028::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -393,7 +398,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100028( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100029: if (StaticGraph100029::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -404,7 +409,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100029( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100030: if (StaticGraph100030::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -415,7 +420,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100030( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100031: if (StaticGraph100031::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -426,7 +431,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100031( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100032: if (StaticGraph100032::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -437,7 +442,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100032( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100035: if (StaticGraph100035::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -448,7 +453,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100035( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100036: if (StaticGraph100036::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -459,7 +464,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100036( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100037: if (StaticGraph100037::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -470,7 +475,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100037( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100038: if (StaticGraph100038::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -481,7 +486,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100038( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100039: if (StaticGraph100039::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -492,7 +497,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100039( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100040: if (StaticGraph100040::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -503,7 +508,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100040( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100041: if (StaticGraph100041::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -514,7 +519,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100041( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100042: if (StaticGraph100042::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -525,7 +530,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100042( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100044: if (StaticGraph100044::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -536,7 +541,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100044( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100045: if (StaticGraph100045::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -547,7 +552,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100045( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; case 100046: if (StaticGraph100046::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -558,7 +563,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100046( - reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId); + reinterpret_cast(selectedConfigurationData), selectedConfigurationsCount, &_zoomKeyResolutions, &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit); break; default: delete[] selectedConfigurationData; diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.h b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.h index 7dc510e..35410b5 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.h +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphReaderAutogen.h @@ -86,6 +86,7 @@ class StaticGraphReader GSFTimeStamp GetBinaryTimeStamp() const; SysToolVersion GetSysToolVersion() const; uint32_t GetSAPAttribute() const; + uint32_t GetGlobalAdditionalFeaturesBit() const; uint32_t GetAdditionalFeaturesBit(const GraphConfigurationHeader* header) const; static const uint32_t staticGraphCommonHashCode = 2348880793; // autogenerated private: diff --git a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphTypesAutogen.h b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphTypesAutogen.h index 59c7f4e..8655b05 100644 --- a/modules/ipu_desc/ipu7x/Ipu7xStaticGraphTypesAutogen.h +++ b/modules/ipu_desc/ipu7x/Ipu7xStaticGraphTypesAutogen.h @@ -202,7 +202,6 @@ struct StaticGraphLinkConfiguration { uint32_t bufferSize = 0; uint8_t streamingMode = 0; }; - struct VirtualSinkMapping { uint8_t preview = 0; uint8_t video = 0; @@ -321,36 +320,67 @@ enum class GraphElementType : uint8_t { RawIsysDolLong, RawIsysPdaf, // Outer Nodes + Isys, + LbffBayer, + BbpsNoTnr, + LbffBayerWithGmv, + BbpsWithTnr, + SwGdc, + SwScaler, + SwNntm, + LbffRgbIr, + LbffIrNoGmvIrStream, + BbpsIrWithTnr, + LbffBayerBurstOutNo3A, + BbpsIrNoTnr, + LbffIrNo2ANoGmv, + LbffIrNoGmv, + IsysPdaf2, + LbffBayerPdaf2, + LbffBayerPdaf3, + IsysDol, + SwDol, + LbffDol, + SwGtm, + LbffBayerPdaf2WithGmv, + LbffBayerPdaf3WithGmv, + LbffRgbIrWithGmv, + LbffIrWithGmvIrStream, + SwVai, + SwImv, + SwDeskview, + SwRotation, + SwDeskviewNoblend, }; diff --git a/modules/ipu_desc/ipu8/FragmentsConfigurator.cpp b/modules/ipu_desc/ipu8/FragmentsConfigurator.cpp index 9a8def2..9ca2cb8 100644 --- a/modules/ipu_desc/ipu8/FragmentsConfigurator.cpp +++ b/modules/ipu_desc/ipu8/FragmentsConfigurator.cpp @@ -29,12 +29,12 @@ #include #include -Ipu8FragmentsConfigurator::Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : - _staticGraph(staticGraph), _node(node), _numberOfFragments(numberOfFragments) +Gen2FragmentsConfigurator::Gen2FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + _staticGraph(staticGraph), _node(node), _numberOfFragments(numberOfFragments) { } -StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vector& smurfKernels) +StaticGraphStatus Gen2FragmentsConfigurator::configureFragments(std::vector& smurfKernels) { if (_staticGraph == nullptr || _node == nullptr || _numberOfFragments < 1) { @@ -61,7 +61,10 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vectornodeKernels.kernelList[j - 1].fragment_descs; uint32_t prevKernelUuid = j == 0 ? 0 : _node->nodeKernels.kernelList[j - 1].run_kernel.kernel_uuid; - uint32_t referenceKernel = GraphResolutionConfiguratorHelper::getReferenceKernel(runKernel->kernel_uuid); + int32_t additionalFeaturesBit = 0; + _staticGraph->getAdditionalFeaturesBit(&additionalFeaturesBit); + uint32_t referenceKernel = GraphResolutionConfiguratorHelper::getReferenceKernel(runKernel->kernel_uuid, additionalFeaturesBit); + if (referenceKernel != 0) { // Special reference kernel @@ -136,10 +139,12 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configureFragments(std::vector horizontal_offset_max) { - double s_factor = (fragment_input_width + 0.5 + static_cast(fragment_start_x)) / - (0.5 + fragment_output_width + 2.0 * ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) - (1.0 + 1.0 / 128)); + double s_factor_f = scaling_ratio_f; + + while (horizontal_offset_fxp > horizontal_offset_max) + { + s_factor_f = (fragment_input_width + 0.5 + static_cast(fragment_start_x)) / + (0.5 + fragment_output_width + 2.0 * ceil((static_cast(fragment_start_x) / s_factor_f / 2.0)) - (1.0 + 1.0 / 128)); - // floor the value of s_factor according to the precision of 2^16 - s_factor = floor(s_factor * ratio_prec) / ratio_prec; + // floor the value of s_factor according to the precision of 2^16 + s_factor_f = floor(s_factor_f * ratio_prec) / ratio_prec; - adjusted_scaling_ratio_f = std::min(adjusted_scaling_ratio_f, s_factor); + // Update horizontal_offset_fxp and horizontal_offset_max + double horizontal_offset_f = (s_factor_f - 1.0) / 2.0 + (2.0 * s_factor_f * ceil(static_cast(fragment_start_x / s_factor_f / 2.0)) - fragment_start_x); + double horizontal_offset_max_f = fragment_input_width - fragment_output_width * s_factor_f + s_factor_f * (1.0 + 1.0 / 128); + + horizontal_offset_fxp = static_cast(floor(horizontal_offset_f * ratio_prec)); + horizontal_offset_max = static_cast(floor(horizontal_offset_max_f * ratio_prec)); + } + + adjusted_scaling_ratio_f = std::min(adjusted_scaling_ratio_f, s_factor_f); } } - if (runKernel->enable == 0) + if (runKernel->enable == 1) { for (int32_t stripe = leftNonVanishedStripe; stripe <= rightNonVanishedStripe; stripe++) { @@ -263,6 +280,14 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsDownscaler(StaticGra } } + // Now update output start according to new scale factor + for (int32_t stripe = leftNonVanishedStripe; stripe <= rightNonVanishedStripe; stripe++) + { + // Start of output is rounded up since this is what b2i_ds does (Creates pixels starting from the pixel after) + double value = kernelFragments[stripe].fragmentStartX / adjusted_scaling_ratio_f / 2; + _outputStartX[runKernel->kernel_uuid][stripe] = static_cast(ceil(value)) * 2; + } + // Set the adjusted factor for PAL int32_t adjusted_scaling_ratio = static_cast(adjusted_scaling_ratio_f * ratio_prec); @@ -281,12 +306,9 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsDownscaler(StaticGra return StaticGraphStatus::SG_OK; } -bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmentDesc* stripe, int32_t stripeIndex, double scaleFactor, StaticGraphRunKernel* runKernel) +bool Gen2FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmentDesc* stripe, int32_t stripeIndex, double scaleFactor, StaticGraphRunKernel* runKernel) { - const double ratio_prec = 1U << GraphResolutionConfigurator::SCALE_PREC; - int scaling_ratio = (int)ceil((1 / scaleFactor) * (double)(1U << GraphResolutionConfigurator::SCALE_PREC)); - const double scaling_ratio_f = static_cast(scaling_ratio) / ratio_prec; int32_t offset_common = ((scaling_ratio - (static_cast(1U) << GraphResolutionConfigurator::SCALE_PREC)) >> 1); @@ -300,15 +322,18 @@ bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmen orig_horizontal_offset = offset_common; } - const uint16_t fragment_start_x = stripe->fragmentStartX; - const double calc = ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) * 2.0; //2 * ceil(x/2) means round up to a closest even number - double horizontal_offset = (static_cast(orig_horizontal_offset) / ratio_prec) + static_cast(scaling_ratio_f * calc - static_cast(fragment_start_x)); + // uncomment these lines in order to check if constraints are actually met. + // + // const double ratio_prec = 1U << GraphResolutionConfigurator::SCALE_PREC; + // const double scaling_ratio_f = static_cast(scaling_ratio) / ratio_prec; + // const uint16_t fragment_start_x = stripe->fragmentStartX; + // const double calc = ceil((static_cast(fragment_start_x) / scaling_ratio_f / 2.0)) * 2.0; //2 * ceil(x/2) means round up to a closest even number + // double horizontal_offset = (static_cast(orig_horizontal_offset) / ratio_prec) + static_cast(scaling_ratio_f * calc - static_cast(fragment_start_x)); + // int32_t horizontal_offset_fxp = static_cast(floor(horizontal_offset * ratio_prec)); const int32_t fragment_input_width = stripe->fragmentInputWidth; const int32_t fragment_output_width = stripe->fragmentOutputWidth; - int32_t horizontal_offset_fxp = static_cast(floor(horizontal_offset * ratio_prec)); - //1 int32_t horizontal_offset_min = 0; int32_t horizontal_offset_max = ((5 * scaling_ratio) - (1U << GraphResolutionConfigurator::SCALE_PREC)) / 2; @@ -320,17 +345,20 @@ bool Ipu8FragmentsConfigurator::validateDownscalerConstraints(StaticGraphFragmen //3 horizontal_offset_max = std::min(fragment_input_width * (1 << GraphResolutionConfigurator::SCALE_PREC) + (int32_t)(scaling_ratio * (1 + 1.0 / 128) - fragment_output_width * scaling_ratio), horizontal_offset_max); - return (horizontal_offset_fxp >= horizontal_offset_min && horizontal_offset_fxp <= horizontal_offset_max); + //return (horizontal_offset_fxp >= horizontal_offset_min && horizontal_offset_fxp <= horizontal_offset_max); + + // return true if constraints can be met. (PAL will chomp) + return (horizontal_offset_min <= horizontal_offset_max); } -void Ipu8FragmentsConfigurator::vanishStripe(uint8_t stripe, uint32_t runKerenlUuid, StaticGraphFragmentDesc* kernelFragments, VanishOption vanishOption) +void Gen2FragmentsConfigurator::vanishStripe(uint8_t stripe, uint32_t runKerenlUuid, StaticGraphFragmentDesc* kernelFragments, VanishOption vanishOption) { _node->fragmentVanishStatus[stripe] = vanishOption; kernelFragments[stripe] = {}; _outputStartX[runKerenlUuid][stripe] = 0; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -467,7 +495,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsCropper(StaticGraphR return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr) @@ -496,14 +524,20 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph auto scaleFactorH = static_cast(resInfo->input_height - resInfo->input_crop.top - resInfo->input_crop.bottom) / resInfo->output_height; auto scaleFactor = std::max(scaleFactorW, scaleFactorH); - int32_t croppedInputWidth = resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right; - int32_t outputWidth = resInfo->output_width; + uint32_t upscalerWidthGranularity = 2; + uint16_t inputUnits = 1; - // We would like to keep upscalerWidthGranularity as large as possible in order to minimize the number of pixels that cannot be used for upscaling - // (upscalerWidthGranularity is divided to stripes, so the larger it is the more accurately we can divide) - // Find the largest granularity that divides both - uint32_t upscalerWidthGranularity = calculateGcd(static_cast(croppedInputWidth), static_cast(outputWidth)); - uint16_t inputUnits = static_cast(croppedInputWidth / upscalerWidthGranularity); + if (enforceUpscalerAspectRatioConstraints()) + { + int32_t croppedInputWidth = resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right; + int32_t outputWidth = resInfo->output_width; + + // We would like to keep upscalerWidthGranularity as large as possible in order to minimize the number of pixels that cannot be used for upscaling + // (upscalerWidthGranularity is divided to stripes, so the larger it is the more accurately we can divide) + // Find the largest granularity that divides both + upscalerWidthGranularity = calculateGcd(static_cast(croppedInputWidth), static_cast(outputWidth)); + inputUnits = static_cast(croppedInputWidth / upscalerWidthGranularity); + } int32_t leftPixel = runKernel->resolution_info->input_crop.left; int32_t rightPixel = static_cast(runKernel->resolution_info->input_width - runKernel->resolution_info->input_crop.right); @@ -568,8 +602,13 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph inputWidthAfterZoomCrop = maxInputWidth; } - uint16_t stripeStepW = GRA_ROUND_DOWN(static_cast(static_cast(inputWidthAfterZoomCrop) / (resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right) * upscalerWidthGranularity), 2); - uint16_t inputWidthAfterTotalCrop = stripeStepW * inputUnits; + uint16_t inputWidthAfterTotalCrop = inputWidthAfterZoomCrop; + + if (enforceUpscalerAspectRatioConstraints()) + { + uint16_t stripeStepW = GRA_ROUND_DOWN(static_cast(static_cast(inputWidthAfterZoomCrop) / (resInfo->input_width - resInfo->input_crop.left - resInfo->input_crop.right) * upscalerWidthGranularity), 2); + inputWidthAfterTotalCrop = stripeStepW * inputUnits; + } if (inputWidthAfterTotalCrop < 16) { @@ -580,10 +619,11 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph pixelsToCrop += (inputWidthAfterZoomCrop - inputWidthAfterTotalCrop); - kernelFragments[stripe].fragmentOutputWidth = static_cast(GRA_ROUND(static_cast(inputWidthAfterTotalCrop) / scaleFactor)); + kernelFragments[stripe].fragmentOutputWidth = static_cast(2 * GRA_ROUND(static_cast(inputWidthAfterTotalCrop) / scaleFactor / 2.0)); // Validate output width - if (static_cast(inputWidthAfterTotalCrop) / kernelFragments[stripe].fragmentOutputWidth != + if (enforceUpscalerAspectRatioConstraints() && + static_cast(inputWidthAfterTotalCrop) / kernelFragments[stripe].fragmentOutputWidth != static_cast(resInfo->input_height - resInfo->input_crop.top - resInfo->input_crop.bottom) / resInfo->output_height) { // Output width is not valid, return error @@ -632,7 +672,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsUpscaler(StaticGraph return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsOutput(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsOutput(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments, bool isTnr) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -768,7 +808,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsOutput(StaticGraphRu return StaticGraphStatus::SG_OK; } -uint32_t Ipu8FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidths, FormatType formatType, uint8_t plane) +uint32_t Gen2FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidths, FormatType formatType, uint8_t plane) { // Calculate according to format BPP. uint32_t bitsPerElement = 8; @@ -829,7 +869,7 @@ uint32_t Ipu8FragmentsConfigurator::getPlaneStartAddress(uint32_t sumOfPrevWidth return wholeCacheLines * 64 + (remainingPixels * bitsPerElement) / 8; } -uint16_t Ipu8FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, FormatType bufferFormat) +uint16_t Gen2FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, FormatType bufferFormat) { if (bufferFormat != FormatType::YUV420_10_SP_P) { @@ -844,7 +884,7 @@ uint16_t Ipu8FragmentsConfigurator::alignToFormatRestrictions(uint16_t size, For return size - pixelsToRemove; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrScaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsTnrScaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -878,7 +918,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrScaler(StaticGrap return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, GraphResolutionConfiguratorKernelRole kernelRole) +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsTnrFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, GraphResolutionConfiguratorKernelRole kernelRole) { if (kernelFragments == nullptr || _tnrScalerFragments == nullptr || _tnrScalerRunKernel == nullptr) { @@ -943,7 +983,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsTnrFeeder(StaticGrap return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurf(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsSmurf(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, StaticGraphFragmentDesc* prevKernelFragments, std::vector& smurfKernels) { if (kernelFragments == nullptr || prevKernelFragments == nullptr) @@ -1051,7 +1091,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurf(StaticGraphRun return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments) +StaticGraphStatus Gen2FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments) { if (runKernel == nullptr || kernelFragments == nullptr) { @@ -1068,7 +1108,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::configFragmentsSmurfFeeder(StaticGr return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8FragmentsConfigurator::copyFragments(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* prevKernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* kernelFragments) +StaticGraphStatus Gen2FragmentsConfigurator::copyFragments(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* prevKernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* kernelFragments) { if (prevKernelFragments == nullptr || kernelFragments == nullptr) { @@ -1098,7 +1138,7 @@ StaticGraphStatus Ipu8FragmentsConfigurator::copyFragments(StaticGraphRunKernel* } // Find the greatest common divisor, curtesy of CoPilot -uint32_t Ipu8FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) +uint32_t Gen2FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) { while (b != 0) { @@ -1107,4 +1147,20 @@ uint32_t Ipu8FragmentsConfigurator::calculateGcd(uint32_t a, uint32_t b) a = t; } return a; -} \ No newline at end of file +} + +#if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 + +Ipu8FragmentsConfigurator::Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + Gen2FragmentsConfigurator(staticGraph, node, numberOfFragments) +{ +} + +#else + +Ipu9FragmentsConfigurator::Ipu9FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) : + Gen2FragmentsConfigurator(staticGraph, node, numberOfFragments) +{ +} + +#endif diff --git a/modules/ipu_desc/ipu8/FragmentsConfigurator.h b/modules/ipu_desc/ipu8/FragmentsConfigurator.h index 2c323c0..f866619 100644 --- a/modules/ipu_desc/ipu8/FragmentsConfigurator.h +++ b/modules/ipu_desc/ipu8/FragmentsConfigurator.h @@ -28,18 +28,21 @@ #include "GraphResolutionConfiguratorInclude.h" #include -class Ipu8FragmentsConfigurator +class Gen2FragmentsConfigurator { public: static const int32_t MIN_STRIPE_WIDTH_BEFORE_TNR = 128; static const int32_t MIN_STRIPE_WIDTH_AFTER_TNR = 64; static const int32_t UPSCALER_MAX_OUTPUT_WIDTH = 4672; - Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + + Gen2FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + virtual ~Gen2FragmentsConfigurator() = default; StaticGraphStatus configureFragments(std::vector& smurfKernels); -private: - // Stripe Actions - each filter will perform one action according to its role +protected: + virtual bool enforceUpscalerAspectRatioConstraints() const { return true; } + StaticGraphStatus configFragmentsDownscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); StaticGraphStatus configFragmentsCropper(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); StaticGraphStatus configFragmentsUpscaler(StaticGraphRunKernel* runKernel, StaticGraphFragmentDesc* kernelFragments, uint32_t prevKernelUuid, StaticGraphFragmentDesc* prevKernelFragments); @@ -61,10 +64,23 @@ class Ipu8FragmentsConfigurator IStaticGraphConfig* _staticGraph = nullptr; uint8_t _numberOfFragments = 0; - // Fragments binaries do not contain output start x, so we keep them here std::map> _outputStartX; - // Save TNR resolutions for feeder configurations StaticGraphFragmentDesc* _tnrScalerFragments = nullptr; StaticGraphRunKernel* _tnrScalerRunKernel = nullptr; }; + +class Ipu8FragmentsConfigurator : public Gen2FragmentsConfigurator +{ +public: + Ipu8FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); +}; + +class Ipu9FragmentsConfigurator : public Gen2FragmentsConfigurator +{ +public: + Ipu9FragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments); + +protected: + bool enforceUpscalerAspectRatioConstraints() const override { return false; } +}; diff --git a/modules/ipu_desc/ipu8/GraphResolutionConfigurator.cpp b/modules/ipu_desc/ipu8/GraphResolutionConfigurator.cpp index ef9fdb0..d7bb2fc 100644 --- a/modules/ipu_desc/ipu8/GraphResolutionConfigurator.cpp +++ b/modules/ipu_desc/ipu8/GraphResolutionConfigurator.cpp @@ -293,7 +293,7 @@ StaticGraphStatus GraphResolutionConfigurator::updateStaticGraphConfig(const Reg return updateRunKernelOfScalers(roi.fromInput,sensorRoi); } -#endif +#endif // if SUPPORT_KEY_RESOLUTIONS == 1 // This function translates ROI from factors (as given by user) to sensor resolution (as required by resolution Configurator) // There are 2 modes of work - // if userRoi.fromInput is true it means zoomFactor panFactor and tiltFactor are relative to sensor FOV @@ -942,7 +942,7 @@ StaticGraphStatus GraphResolutionConfigurator::initOutputRunKernelCoord(RunKerne } // Find output device - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); return findRunKernel(kernelUuid, coord); } @@ -979,7 +979,7 @@ StaticGraphStatus GraphResolutionConfigurator::getInputRoiForOutput(const Resolu GraphLink** links = graphTopology->links; - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); RunKernelCoords coord; if (findRunKernel(kernelUuid, coord) != StaticGraphStatus::SG_OK) { @@ -1051,7 +1051,7 @@ StaticGraphStatus GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const Se GraphLink** links = graphTopology->links; RunKernelCoords coord; - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink::AeOutSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink::AeOutSink, graphId, links, graphTopology->numOfLinks); if (findRunKernel(kernelUuid, coord) != StaticGraphStatus::SG_OK) { @@ -1118,10 +1118,10 @@ StaticGraphStatus GraphResolutionConfigurator::sensorCropOrScaleExist(bool& sens #if SUPPORT_KEY_RESOLUTIONS == 0 // -// IPU 8 +// Gen2 (shared by IPU8 and IPU9) // -Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : GraphResolutionConfigurator(staticGraph) +Gen2GraphResolutionConfigurator::Gen2GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : GraphResolutionConfigurator(staticGraph) { _staticGraph = staticGraph; if (_staticGraph == nullptr) @@ -1140,33 +1140,6 @@ Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphCon return; } - // Find crop steps for zoom using upscaler - uint32_t outputWidth = _upscalerRunKernel->resolution_info->output_width; - uint32_t outputHeight = _upscalerRunKernel->resolution_info->output_height; - - for (_upscalerStepH = 1; _upscalerStepH < outputHeight / 2; _upscalerStepH++) - { - double horStep = static_cast(_upscalerStepH) * outputWidth / 2 / outputHeight; - if (floor((horStep)) == horStep) - { - _upscalerStepW = static_cast(horStep) * 2; - break; - } - } - - _upscalerStepW *= 2; - _upscalerStepH *= 2; - - // Due to upscaler constraints, we should avoid having too many units. - // Number of pixels that cannot be used when upscaling a stripe may be up to ~ 2*units - // For details: https://hsdes.intel.com/appstore/article-one/#/article/15018342122 - // This affects the number of possible zoom steps, but for large resolutions it is OK to enlarge the step - while (outputWidth / _upscalerStepW > 70) - { - _upscalerStepW *= 2; - _upscalerStepH *= 2; - } - // Save original values for kernels that are being updated _originalCropOfDownScaler = _downscalerRunKernel->resolution_info->input_crop; @@ -1204,17 +1177,44 @@ Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphCon // We configure the fragments that were provided even if the required number of fragments is 0. // This is done since some configuration decisions are made according to these theoretical fragments, // in order to have bit-match results when fragments are disabled. - uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + // Fragment configurator is created by derived class constructors. - if (_node != nullptr && numberOfFragmentsProvided > 1) +#endif +} + +Gen2GraphResolutionConfigurator::~Gen2GraphResolutionConfigurator() +{ + _kernelsForUpdateAfterCropper.clear(); + _kernelsForUpdateAfterUpscaler.clear(); + +#if SUPPORT_FRAGMENTS == 1 + if (_fragmentsConfigurator != nullptr) { - _fragmentsConfigurator = new Ipu8FragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + delete _fragmentsConfigurator; + _fragmentsConfigurator = nullptr; } + for (auto& smurfInfo : _smurfKernels) + { + delete smurfInfo; + } + _smurfKernels.clear(); + #endif } -uint8_t Ipu8GraphResolutionConfigurator::GetNumberOfProvidedFragments() +StaticGraphStatus Gen2GraphResolutionConfigurator::doFragmentsUpdate(bool& isFragmentsChanged) +{ + if (_fragmentsConfigurator != nullptr) + { + StaticGraphStatus ret = _fragmentsConfigurator->configureFragments(_smurfKernels); + isFragmentsChanged = true; + return ret; + } + return StaticGraphStatus::SG_OK; +} + +uint8_t Gen2GraphResolutionConfigurator::GetNumberOfProvidedFragments() { if (_node == nullptr || _node->nodeKernels.kernelCount == 0) { @@ -1248,34 +1248,13 @@ uint8_t Ipu8GraphResolutionConfigurator::GetNumberOfProvidedFragments() return fragmentCount; } -Ipu8GraphResolutionConfigurator::~Ipu8GraphResolutionConfigurator() -{ - _kernelsForUpdateAfterCropper.clear(); - _kernelsForUpdateAfterUpscaler.clear(); - -#if SUPPORT_FRAGMENTS == 1 - if (_fragmentsConfigurator != nullptr) - { - delete _fragmentsConfigurator; - _fragmentsConfigurator = nullptr; - } - - for (auto& smurfInfo : _smurfKernels) - { - delete smurfInfo; - } - _smurfKernels.clear(); - -#endif -} - -StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel) +StaticGraphStatus Gen2GraphResolutionConfigurator::initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel) { uint32_t kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuid(role); return initRunKernel(kernelUuid, runKernel); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel) +StaticGraphStatus Gen2GraphResolutionConfigurator::initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel) { GraphTopology* graphTopology = nullptr; StaticGraphStatus status = _staticGraph->getGraphTopology(&graphTopology); @@ -1307,7 +1286,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initRunKernel(uint32_t kernel return StaticGraphStatus::SG_ERROR; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initOutputRunKernel() +StaticGraphStatus Gen2GraphResolutionConfigurator::initOutputRunKernel() { GraphTopology* graphTopology = nullptr; StaticGraphStatus status = _staticGraph->getGraphTopology(&graphTopology); @@ -1345,15 +1324,16 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initOutputRunKernel() } // Find output device - auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links); + auto kernelUuid = GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(hwSink, graphId, links, graphTopology->numOfLinks); return initRunKernel(kernelUuid, _outputRunKernel); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() +StaticGraphStatus Gen2GraphResolutionConfigurator::initKernelsForUpdate() { std::vector kernelUuids; - - GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _cropperRunKernel->kernel_uuid); + int32_t additionalFeaturesBit = 0; + _staticGraph->getAdditionalFeaturesBit(&additionalFeaturesBit); + GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _cropperRunKernel->kernel_uuid, additionalFeaturesBit); for (auto& kernelUuid : kernelUuids) { @@ -1364,7 +1344,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() } } - GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _upscalerRunKernel->kernel_uuid); + GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(kernelUuids, _upscalerRunKernel->kernel_uuid, additionalFeaturesBit); for (auto& kernelUuid : kernelUuids) { @@ -1402,7 +1382,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initKernelsForUpdate() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::initIsFragments() +StaticGraphStatus Gen2GraphResolutionConfigurator::initIsFragments() { _isFragments = false; @@ -1433,13 +1413,13 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::initIsFragments() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom) { bool isFragmentsChanged; return updateStaticGraphConfig(roi, isCenteredZoom, isFragmentsChanged); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged) { if (_staticGraph == nullptr) { @@ -1469,7 +1449,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateStaticGraphConfig(const return updateRunKernelOfScalers(downscalerInputRoi, isFragmentsChanged); } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getDownscalerInputRoi(const RegionOfInterest& userRoi, ResolutionRoi& downscalerInputRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getDownscalerInputRoi(const RegionOfInterest& userRoi, ResolutionRoi& downscalerInputRoi) { if (_staticGraph == nullptr) { @@ -1526,7 +1506,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getDownscalerInputRoi(const R return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1589,6 +1569,8 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(Reso ret = StaticGraphStatus::SG_ERROR; } + postScalerUpdate(); + // Update resolution history for relevant kernels for (auto& runKernelForUpdate : _kernelsForUpdateAfterCropper) { @@ -1623,19 +1605,15 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelOfScalers(Reso ret = SanityCheck(); } - if (ret == StaticGraphStatus::SG_OK && _fragmentsConfigurator != nullptr) + if (ret == StaticGraphStatus::SG_OK) { - // Configure fragments according to the new zoomed run kernels information - ret = _fragmentsConfigurator->configureFragments(_smurfKernels); - - // Caller must re-take system APIs that were updated by the fragments configurator - isFragmentsChanged = true; + ret = doFragmentsUpdate(isFragmentsChanged); } return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, uint32_t& outputWidth, uint32_t& outputHeight) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1676,7 +1654,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelDownScaler(Sta return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphRunKernel* downscalerRunKernel, uint32_t outputWidth, uint32_t outputHeight) { @@ -1692,100 +1670,118 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(Static // Configure to crop the required amount. int32_t totalHorizontalCrop = runKernel->resolution_info->input_width - outputWidth; - // Now crop to TNR size if any more cropping is required, according to the required ROI - uint32_t cropLeft = roi.left; - uint32_t cropRight = roi.right; + if (totalHorizontalCrop > 0) + { + // Now crop to TNR size if any more cropping is required, according to the required ROI + uint32_t cropLeft = roi.left; + uint32_t cropRight = roi.right; - double scale = static_cast(downscalerResInfo->output_width) / - (downscalerResInfo->input_width - downscalerResInfo->input_crop.left - downscalerResInfo->input_crop.right); + double scale = static_cast(downscalerResInfo->output_width) / + (downscalerResInfo->input_width - downscalerResInfo->input_crop.left - downscalerResInfo->input_crop.right); - if (downscalerResInfo->input_crop.right > 0) - { - cropRight -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.right * scale), 2); - } + if (downscalerResInfo->input_crop.right > 0) + { + cropRight -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.right * scale), 2); + } - // Check if we have more padding on the right that was originally removed by DS but now it is not removed - uint32_t paddingToRemove = 0; - if (downscalerResHist->input_crop.right < 0 && - downscalerResInfo->input_crop.right < -downscalerResHist->input_crop.right && - _originalCropOfDownScaler.right > 0) - { - paddingToRemove = -downscalerResHist->input_crop.right - downscalerResInfo->input_crop.right; - paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); - totalHorizontalCrop -= paddingToRemove; - } + // Check if we have more padding on the right that was originally removed by DS but now it is not removed + uint32_t paddingToRemove = 0; + int32_t histPadRight = static_cast(-downscalerResHist->input_crop.right * _sensorHorizontalScaling); + if (downscalerResHist->input_crop.right < 0 && + downscalerResInfo->input_crop.right < histPadRight && + _originalCropOfDownScaler.right > 0) + { + paddingToRemove = histPadRight - downscalerResInfo->input_crop.right; + paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); + totalHorizontalCrop -= paddingToRemove; + } - // Remove origianl ESPA cropping from left and right, in order to calulate the proportions. - // (The original ESPA cropping is inside the roi.left right so we expect it to always be larger) - cropLeft -= _originalCropOfCropper.left; - cropRight -= _originalCropOfCropper.right; - totalHorizontalCrop -= (_originalCropOfCropper.left + _originalCropOfCropper.right); + // Remove origianl ESPA cropping from left and right, in order to calulate the proportions. + // (The original ESPA cropping is inside the roi.left right so we expect it to always be larger) + cropLeft -= _originalCropOfCropper.left; + cropRight -= _originalCropOfCropper.right; + totalHorizontalCrop -= (_originalCropOfCropper.left + _originalCropOfCropper.right); - // Calculate the crop after downscale, relatively to the desired crop before the downscale - cropLeft = (cropLeft + cropRight) == 0 ? 0 : - GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropLeft) / (cropLeft + cropRight) * (totalHorizontalCrop))), 2); + // Calculate the crop after downscale, relatively to the desired crop before the downscale + cropLeft = (cropLeft + cropRight) == 0 ? 0 : + GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropLeft) / (cropLeft + cropRight) * (totalHorizontalCrop))), 2); - runKernel->resolution_info->input_crop.left = _originalCropOfCropper.left + cropLeft; - runKernel->resolution_info->input_crop.right = _originalCropOfCropper.right + (totalHorizontalCrop - cropLeft) + paddingToRemove; + runKernel->resolution_info->input_crop.left = _originalCropOfCropper.left + cropLeft; + runKernel->resolution_info->input_crop.right = _originalCropOfCropper.right + (totalHorizontalCrop - cropLeft) + paddingToRemove; - if (roi.left < static_cast(runKernel->resolution_info->input_crop.left)) - { - runKernel->resolution_info->input_crop.right += (runKernel->resolution_info->input_crop.left - roi.left); - runKernel->resolution_info->input_crop.left = roi.left; + if (roi.left < static_cast(runKernel->resolution_info->input_crop.left)) + { + runKernel->resolution_info->input_crop.right += (runKernel->resolution_info->input_crop.left - roi.left); + runKernel->resolution_info->input_crop.left = roi.left; + } + if (roi.right < static_cast(runKernel->resolution_info->input_crop.right)) + { + runKernel->resolution_info->input_crop.left += (runKernel->resolution_info->input_crop.right - roi.right); + runKernel->resolution_info->input_crop.right = roi.right; + } } - if (roi.right < static_cast(runKernel->resolution_info->input_crop.right)) + else { - runKernel->resolution_info->input_crop.left += (runKernel->resolution_info->input_crop.right - roi.right); - runKernel->resolution_info->input_crop.right = roi.right; + runKernel->resolution_info->input_crop.left = 0; + runKernel->resolution_info->input_crop.right = 0; } int32_t totalVerticalCrop = runKernel->resolution_info->input_height - outputHeight; - // Now crop to TNR size if any more cropping is required, according to the required ROI - uint32_t cropTop = roi.top; - uint32_t cropBottom = roi.bottom; + if (totalVerticalCrop > 0) + { + // Now crop to TNR size if any more cropping is required, according to the required ROI + uint32_t cropTop = roi.top; + uint32_t cropBottom = roi.bottom; - scale = static_cast(downscalerResInfo->output_height) / - (downscalerResInfo->input_height - downscalerResInfo->input_crop.top - downscalerResInfo->input_crop.bottom); + double scale = static_cast(downscalerResInfo->output_height) / + (downscalerResInfo->input_height - downscalerResInfo->input_crop.top - downscalerResInfo->input_crop.bottom); - if (downscalerResInfo->input_crop.bottom > 0) - { - cropBottom -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.bottom * scale), 2); - } + if (downscalerResInfo->input_crop.bottom > 0) + { + cropBottom -= GRA_ROUND_UP(static_cast(downscalerResInfo->input_crop.bottom * scale), 2); + } - // Check if we have more padding on the bottom that was not removed by DS - paddingToRemove = 0; - if (downscalerResHist->input_crop.bottom < 0 && - downscalerResInfo->input_crop.bottom < -downscalerResHist->input_crop.bottom && - _originalCropOfDownScaler.bottom > 0) - { - paddingToRemove = -downscalerResHist->input_crop.bottom - downscalerResInfo->input_crop.bottom; - paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); - totalVerticalCrop -= paddingToRemove; - } + // Check if we have more padding on the bottom that was not removed by DS + uint32_t paddingToRemove = 0; + int32_t histPadBottom = static_cast(-downscalerResHist->input_crop.bottom * _sensorVerticalScaling); + if (downscalerResHist->input_crop.bottom < 0 && + downscalerResInfo->input_crop.bottom < histPadBottom && + _originalCropOfDownScaler.bottom > 0) + { + paddingToRemove = histPadBottom - downscalerResInfo->input_crop.bottom; + paddingToRemove = GRA_ROUND_UP(static_cast(paddingToRemove * scale), 2); + totalVerticalCrop -= paddingToRemove; + } - // Remove origianl ESPA cropping from top and bottom, in order to calulate the proportions. - // (The original ESPA cropping is inside the roi.top and bottom so we expect it to always be larger) - cropTop -= _originalCropOfCropper.top; - cropBottom -= _originalCropOfCropper.bottom; - totalVerticalCrop -= (_originalCropOfCropper.top + _originalCropOfCropper.bottom); + // Remove origianl ESPA cropping from top and bottom, in order to calulate the proportions. + // (The original ESPA cropping is inside the roi.top and bottom so we expect it to always be larger) + cropTop -= _originalCropOfCropper.top; + cropBottom -= _originalCropOfCropper.bottom; + totalVerticalCrop -= (_originalCropOfCropper.top + _originalCropOfCropper.bottom); - // Calculate the crop after downscale, relatively to the desired crop before the downscale - cropTop = (cropTop + cropBottom) == 0 ? 0 : - GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropTop) / (cropTop + cropBottom) * (totalVerticalCrop))), 2); + // Calculate the crop after downscale, relatively to the desired crop before the downscale + cropTop = (cropTop + cropBottom) == 0 ? 0 : + GRA_ROUND_DOWN(static_cast(GRA_ROUND(static_cast(cropTop) / (cropTop + cropBottom) * (totalVerticalCrop))), 2); - runKernel->resolution_info->input_crop.top = _originalCropOfCropper.top + cropTop; - runKernel->resolution_info->input_crop.bottom = _originalCropOfCropper.bottom + (totalVerticalCrop - cropTop) + paddingToRemove; + runKernel->resolution_info->input_crop.top = _originalCropOfCropper.top + cropTop; + runKernel->resolution_info->input_crop.bottom = _originalCropOfCropper.bottom + (totalVerticalCrop - cropTop) + paddingToRemove; - if (roi.top < static_cast(runKernel->resolution_info->input_crop.top)) - { - runKernel->resolution_info->input_crop.bottom += (runKernel->resolution_info->input_crop.top - roi.top); - runKernel->resolution_info->input_crop.top = roi.top; + if (roi.top < static_cast(runKernel->resolution_info->input_crop.top)) + { + runKernel->resolution_info->input_crop.bottom += (runKernel->resolution_info->input_crop.top - roi.top); + runKernel->resolution_info->input_crop.top = roi.top; + } + if (roi.bottom < static_cast(runKernel->resolution_info->input_crop.bottom)) + { + runKernel->resolution_info->input_crop.top += (runKernel->resolution_info->input_crop.bottom - roi.bottom); + runKernel->resolution_info->input_crop.bottom = roi.bottom; + } } - if (roi.bottom < static_cast(runKernel->resolution_info->input_crop.bottom)) + else { - runKernel->resolution_info->input_crop.top += (runKernel->resolution_info->input_crop.bottom - roi.bottom); - runKernel->resolution_info->input_crop.bottom = roi.bottom; + runKernel->resolution_info->input_crop.top = 0; + runKernel->resolution_info->input_crop.bottom = 0; } #ifdef STATIC_GRAPH_USE_IA_LEGACY_TYPES @@ -1814,65 +1810,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelCropper(Static return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, - uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) -{ - StaticGraphStatus ret = StaticGraphStatus::SG_OK; - - runKernel->resolution_info->input_width = inputWidth; - runKernel->resolution_info->input_height = inputHeight; - runKernel->resolution_info->output_width = outputWidth; - runKernel->resolution_info->output_height = outputHeight; - - // How much cropping is left for the upscaler to do after the cropper? - uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; - uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; - - // Cropping must be done in units of stepW x stepH. - // How many units of stepW x stepH should we crop? - uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; - uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; - - uint32_t units = unitsW < unitsH ? unitsW : unitsH; - - uint32_t actualCropW = units * _upscalerStepW; - uint32_t actualCropH = units * _upscalerStepH; - - uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); - uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; - uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); - uint32_t deltaBottom = totalCropH - actualCropH - deltaTop; - - runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; - runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; - runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; - runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; - - if (runKernel->resolution_info->input_crop.left < 0) - { - runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; - runKernel->resolution_info->input_crop.left = 0; - } - if (runKernel->resolution_info->input_crop.right < 0) - { - runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; - runKernel->resolution_info->input_crop.right = 0; - } - if (runKernel->resolution_info->input_crop.top < 0) - { - runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; - runKernel->resolution_info->input_crop.top = 0; - } - if (runKernel->resolution_info->input_crop.bottom < 0) - { - runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; - runKernel->resolution_info->input_crop.bottom = 0; - } - - return ret; -} - -StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKernelInfo* smurfInfo) +StaticGraphStatus Gen2GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKernelInfo* smurfInfo) { StaticGraphStatus ret = StaticGraphStatus::SG_OK; @@ -1921,7 +1859,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelSmurf(SmurfKer return ret; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() +StaticGraphStatus Gen2GraphResolutionConfigurator::SanityCheck() { // Resolution hist output must be same as info input if (_downscalerRunKernel->resolution_info->input_width != _downscalerRunKernel->resolution_history->output_width || @@ -1978,7 +1916,8 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() } // Validate upscaler scale ratio constraints - if (static_cast(widthAfterCrop) / _upscalerRunKernel->resolution_info->output_width != + if (enforceUpscalerAspectRatioConstraints() && + static_cast(widthAfterCrop) / _upscalerRunKernel->resolution_info->output_width != static_cast(heightAfterCrop) / _upscalerRunKernel->resolution_info->output_height) { return StaticGraphStatus::SG_ERROR; @@ -1997,7 +1936,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheck() return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKernelResCrop* crop) +StaticGraphStatus Gen2GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKernelResCrop* crop) { if (crop->top < 0 || crop->bottom < 0 || crop->left < 0 || crop->right < 0 || crop->top & 1 || crop->bottom & 1 || crop->left & 1 || crop->right & 1) @@ -2008,7 +1947,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::SanityCheckCrop(StaticGraphKe return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getInputRoiForOutput(const ResolutionRoi& roi, HwSink hwSink, SensorRoi& sensorRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getInputRoiForOutput(const ResolutionRoi& roi, HwSink hwSink, SensorRoi& sensorRoi) { if (_staticGraph == nullptr) { @@ -2083,7 +2022,7 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getInputRoiForOutput(const Re return StaticGraphStatus::SG_OK; } -StaticGraphStatus Ipu8GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi) +StaticGraphStatus Gen2GraphResolutionConfigurator::getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi) { int32_t graphId; _staticGraph->getGraphId(&graphId); @@ -2120,4 +2059,278 @@ StaticGraphStatus Ipu8GraphResolutionConfigurator::getStatsRoiFromSensorRoi(cons return StaticGraphStatus::SG_OK; } -#endif \ No newline at end of file +#if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 +// +// IPU 8 (unique methods only) +// + +Ipu8GraphResolutionConfigurator::Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : Gen2GraphResolutionConfigurator(staticGraph) +{ + if (_staticGraph == nullptr) + { + return; + } + + // Find crop steps for zoom using upscaler + uint32_t outputWidth = _upscalerRunKernel->resolution_info->output_width; + uint32_t outputHeight = _upscalerRunKernel->resolution_info->output_height; + + for (_upscalerStepH = 1; _upscalerStepH < outputHeight / 2; _upscalerStepH++) + { + double horStep = static_cast(_upscalerStepH) * outputWidth / 2 / outputHeight; + if (floor((horStep)) == horStep) + { + _upscalerStepW = static_cast(horStep) * 2; + break; + } + } + + _upscalerStepW *= 2; + _upscalerStepH *= 2; + + if (_isFragments == true) + { + // Due to upscaler constraints, we should avoid having too many units. + // Number of pixels that cannot be used when upscaling a stripe may be up to ~ 2*units + // For details: https://hsdes.intel.com/appstore/article-one/#/article/15018342122 + // This affects the number of possible zoom steps, but for large resolutions it is OK to enlarge the step + while (outputWidth / _upscalerStepW > 70) + { + _upscalerStepW *= 2; + _upscalerStepH *= 2; + } + } + + // We configure the fragments that were provided even if the required number of fragments is 0. + // This is done since some configuration decisions are made according to these theoretical fragments, + // in order to have bit-match results when fragments are disabled. + uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + + if (_node != nullptr && numberOfFragmentsProvided > 1) + { + _fragmentsConfigurator = createFragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + } +} + +Ipu8GraphResolutionConfigurator::~Ipu8GraphResolutionConfigurator() +{ +} + +#if SUPPORT_FRAGMENTS == 1 +Gen2FragmentsConfigurator* Ipu8GraphResolutionConfigurator::createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) +{ + return new Ipu8FragmentsConfigurator(staticGraph, node, numberOfFragments); +} +#endif + +StaticGraphStatus Ipu8GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) +{ + StaticGraphStatus ret = StaticGraphStatus::SG_OK; + + runKernel->resolution_info->input_width = inputWidth; + runKernel->resolution_info->input_height = inputHeight; + runKernel->resolution_info->output_width = outputWidth; + runKernel->resolution_info->output_height = outputHeight; + + // How much cropping is left for the upscaler to do after the cropper? + uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; + uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; + + // Cropping must be done in units of stepW x stepH. + // How many units of stepW x stepH should we crop? + uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; + uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; + + uint32_t units = unitsW < unitsH ? unitsW : unitsH; + + uint32_t actualCropW = units * _upscalerStepW; + uint32_t actualCropH = units * _upscalerStepH; + + uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); + uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - actualCropH - deltaTop; + + runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; + runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; + runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; + runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; + + if (runKernel->resolution_info->input_crop.left < 0) + { + runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; + runKernel->resolution_info->input_crop.left = 0; + } + if (runKernel->resolution_info->input_crop.right < 0) + { + runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; + runKernel->resolution_info->input_crop.right = 0; + } + if (runKernel->resolution_info->input_crop.top < 0) + { + runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; + runKernel->resolution_info->input_crop.top = 0; + } + if (runKernel->resolution_info->input_crop.bottom < 0) + { + runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; + runKernel->resolution_info->input_crop.bottom = 0; + } + + return ret; +} + +// IPU9 +#else // if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 + +void copyRunKernel(StaticGraphRunKernel* runKernel, StaticGraphRunKernel* runKernelOther) +{ + if (runKernelOther == nullptr) + { + return; + } + // No fragments, crop to ROI and downscale to output resolution + runKernelOther->resolution_info->input_width = runKernel->resolution_info->input_width; + runKernelOther->resolution_info->input_height = runKernel->resolution_info->input_height; + runKernelOther->resolution_info->output_width = runKernel->resolution_info->output_width; + runKernelOther->resolution_info->output_height = runKernel->resolution_info->output_height; + + runKernelOther->resolution_info->input_crop.left = runKernel->resolution_info->input_crop.left; + runKernelOther->resolution_info->input_crop.right = runKernel->resolution_info->input_crop.right; + runKernelOther->resolution_info->input_crop.top = runKernel->resolution_info->input_crop.top; + runKernelOther->resolution_info->input_crop.bottom = runKernel->resolution_info->input_crop.bottom; + + runKernelOther->resolution_history->input_width = runKernel->resolution_history->input_width; + runKernelOther->resolution_history->input_height = runKernel->resolution_history->input_height; + runKernelOther->resolution_history->output_width = runKernel->resolution_history->output_width; + runKernelOther->resolution_history->output_height = runKernel->resolution_history->output_height; + + runKernelOther->resolution_history->input_crop.left = runKernel->resolution_history->input_crop.left; + runKernelOther->resolution_history->input_crop.right = runKernel->resolution_history->input_crop.right; + runKernelOther->resolution_history->input_crop.top = runKernel->resolution_history->input_crop.top; + runKernelOther->resolution_history->input_crop.bottom = runKernel->resolution_history->input_crop.bottom; +} + +Ipu9GraphResolutionConfigurator::Ipu9GraphResolutionConfigurator(IStaticGraphConfig* staticGraph) : Gen2GraphResolutionConfigurator(staticGraph) +{ + if (_staticGraph == nullptr) + { + return; + } + + _downscalerSmallRunKernel = nullptr; + _cropperSmallRunKernel = nullptr; + initRunKernel(GraphResolutionConfiguratorKernelRole::DownScalerSmall, _downscalerSmallRunKernel); + initRunKernel(GraphResolutionConfiguratorKernelRole::EspaCropperSmall, _cropperSmallRunKernel); + +#if SUPPORT_FRAGMENTS == 1 + + // We configure the fragments that were provided even if the required number of fragments is 0. + // This is done since some configuration decisions are made according to these theoretical fragments, + // in order to have bit-match results when fragments are disabled. + uint8_t numberOfFragmentsProvided = GetNumberOfProvidedFragments(); + + if (_node != nullptr && numberOfFragmentsProvided > 1) + { + _fragmentsConfigurator = createFragmentsConfigurator(_staticGraph, _node, numberOfFragmentsProvided); + } + +#endif +} + +Ipu9GraphResolutionConfigurator::~Ipu9GraphResolutionConfigurator() +{ +} + +#if SUPPORT_FRAGMENTS == 1 +Gen2FragmentsConfigurator* Ipu9GraphResolutionConfigurator::createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) +{ + return new Ipu9FragmentsConfigurator(staticGraph, node, numberOfFragments); +} +#endif + +StaticGraphStatus Ipu9GraphResolutionConfigurator::updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) +{ + StaticGraphStatus ret = StaticGraphStatus::SG_OK; + + runKernel->resolution_info->input_width = inputWidth; + runKernel->resolution_info->input_height = inputHeight; + runKernel->resolution_info->output_width = outputWidth; + runKernel->resolution_info->output_height = outputHeight; + + // How much cropping is left for the upscaler to do after the cropper? + uint32_t totalCropW = roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right; + uint32_t totalCropH = roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom; + + // Cropping must be done in units of stepW x stepH. + // How many units of stepW x stepH should we crop? + /*uint32_t unitsW = GRA_ROUND_DOWN(totalCropW, _upscalerStepW) / _upscalerStepW; + uint32_t unitsH = GRA_ROUND_DOWN(totalCropH, _upscalerStepH) / _upscalerStepH; + + uint32_t units = unitsW < unitsH ? unitsW : unitsH; + + uint32_t actualCropW = units * _upscalerStepW; + uint32_t actualCropH = units * _upscalerStepH;*/ + + /*uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW - actualCropW) / 2, 2); + uint32_t deltaRight = totalCropW - actualCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH - actualCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - actualCropH - deltaTop;*/ + + // we must make sure that the scale facotr of width and height are matching. So we recalculate the extra crop to get this. + uint32_t widthAfterCrop = runKernel->resolution_info->input_width - totalCropW; + uint32_t heightAfterCrop = runKernel->resolution_info->input_height - totalCropH; + auto scaleFactorW = static_cast(widthAfterCrop) / outputWidth; + auto scaleFactorH = static_cast(heightAfterCrop) / outputHeight; + auto scaleFactor = std::max(scaleFactorW, scaleFactorH); + + widthAfterCrop = std::min(inputWidth, + GRA_ROUND_DOWN(static_cast(floor(static_cast(outputWidth * scaleFactor))), 2)); + heightAfterCrop = std::min(inputHeight, + GRA_ROUND_DOWN(static_cast(floor(static_cast(outputHeight * scaleFactor))), 2)); + totalCropW = (inputWidth - widthAfterCrop)-(roi.left + roi.right - cropperKernelCrop.left - cropperKernelCrop.right - _originalCropOfUpscaler.left - _originalCropOfUpscaler.right); + totalCropH = (inputHeight - heightAfterCrop)-(roi.top + roi.bottom - cropperKernelCrop.top - cropperKernelCrop.bottom - _originalCropOfUpscaler.top - _originalCropOfUpscaler.bottom); + + uint32_t deltaLeft = GRA_ROUND_DOWN((totalCropW) / 2, 2); + uint32_t deltaRight = totalCropW - deltaLeft; + uint32_t deltaTop = GRA_ROUND_DOWN((totalCropH) / 2, 2); + uint32_t deltaBottom = totalCropH - deltaTop; + + runKernel->resolution_info->input_crop.left = roi.left - cropperKernelCrop.left - deltaLeft; + runKernel->resolution_info->input_crop.right = roi.right - cropperKernelCrop.right - deltaRight; + runKernel->resolution_info->input_crop.top = roi.top - cropperKernelCrop.top - deltaTop; + runKernel->resolution_info->input_crop.bottom = roi.bottom - cropperKernelCrop.bottom - deltaBottom; + + if (runKernel->resolution_info->input_crop.left < 0) + { + runKernel->resolution_info->input_crop.right += runKernel->resolution_info->input_crop.left; + runKernel->resolution_info->input_crop.left = 0; + } + if (runKernel->resolution_info->input_crop.right < 0) + { + runKernel->resolution_info->input_crop.left += runKernel->resolution_info->input_crop.right; + runKernel->resolution_info->input_crop.right = 0; + } + if (runKernel->resolution_info->input_crop.top < 0) + { + runKernel->resolution_info->input_crop.bottom += runKernel->resolution_info->input_crop.top; + runKernel->resolution_info->input_crop.top = 0; + } + if (runKernel->resolution_info->input_crop.bottom < 0) + { + runKernel->resolution_info->input_crop.top += runKernel->resolution_info->input_crop.bottom; + runKernel->resolution_info->input_crop.bottom = 0; + } + + return ret; +} + +void Ipu9GraphResolutionConfigurator::postScalerUpdate() +{ + copyRunKernel(_downscalerRunKernel, _downscalerSmallRunKernel); + copyRunKernel(_cropperRunKernel, _cropperSmallRunKernel); +} +#endif // if SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH == 0 +#endif // if SUPPORT_KEY_RESOLUTIONS == 0 diff --git a/modules/ipu_desc/ipu8/GraphResolutionConfigurator.h b/modules/ipu_desc/ipu8/GraphResolutionConfigurator.h index 4f049f2..7d5e109 100644 --- a/modules/ipu_desc/ipu8/GraphResolutionConfigurator.h +++ b/modules/ipu_desc/ipu8/GraphResolutionConfigurator.h @@ -76,7 +76,10 @@ enum class GraphResolutionConfiguratorKernelRole : uint8_t { UpScaler, DownScaler, + DownScalerSmall, EspaCropper, + CasEspaCropper, + EspaCropperSmall, NonRcb, Output, TnrOutput, @@ -88,6 +91,8 @@ enum class GraphResolutionConfiguratorKernelRole : uint8_t None }; +class Gen2FragmentsConfigurator; + class RunKernelCoords { public: @@ -177,6 +182,7 @@ class GraphResolutionConfigurator }; class Ipu8FragmentsConfigurator; +class Ipu9FragmentsConfigurator; class SmurfKernelInfo { @@ -188,11 +194,11 @@ class SmurfKernelInfo StaticGraphKernelResCrop _originalSmurfOutputCrop = { 0,0,0,0 }; }; -class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator +class Gen2GraphResolutionConfigurator : public GraphResolutionConfigurator { public: - Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); - ~Ipu8GraphResolutionConfigurator(); + Gen2GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + virtual ~Gen2GraphResolutionConfigurator(); StaticGraphStatus updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom); // Use only if 1-stripe processing is not needed StaticGraphStatus updateStaticGraphConfig(const RegionOfInterest& roi, bool isCenteredZoom, bool& isFragmentsChanged); @@ -203,7 +209,7 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator // This function is used for statistics output only virtual StaticGraphStatus getStatsRoiFromSensorRoi(const SensorRoi& sensorRoi, ResolutionRoi& statsRoi); -private: +protected: StaticGraphStatus initRunKernel(GraphResolutionConfiguratorKernelRole role, StaticGraphRunKernel*& runKernel); StaticGraphStatus initRunKernel(uint32_t kernelUuid, StaticGraphRunKernel*& runKernel); StaticGraphStatus initOutputRunKernel(); @@ -217,15 +223,22 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator StaticGraphStatus updateRunKernelOfScalers(ResolutionRoi& roi, bool& isFragmentsChanged); StaticGraphStatus updateRunKernelDownScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, uint32_t& outputWidth, uint32_t& outputHeight); - StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight); + virtual StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) = 0; StaticGraphStatus updateRunKernelCropper(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphRunKernel* downscalerRunKernel, uint32_t outputWidth, uint32_t outputHeight); StaticGraphStatus updateRunKernelSmurf(SmurfKernelInfo* smurfInfo); StaticGraphStatus SanityCheck(); StaticGraphStatus SanityCheckCrop(StaticGraphKernelResCrop* crop); - uint32_t _upscalerStepW = 1; - uint32_t _upscalerStepH = 1; + // Virtual hooks for derived class differences + virtual bool enforceUpscalerAspectRatioConstraints() const { return true; } + virtual void postScalerUpdate() {} +#if SUPPORT_FRAGMENTS == 1 + virtual Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) = 0; + StaticGraphStatus doFragmentsUpdate(bool& isFragmentsChanged); + Gen2FragmentsConfigurator* _fragmentsConfigurator = nullptr; +#endif StaticGraphKernelResCrop _originalCropOfDownScaler = { 0,0,0,0 }; StaticGraphKernelResCrop _originalCropOfUpscaler = { 0,0,0,0 }; @@ -243,6 +256,42 @@ class Ipu8GraphResolutionConfigurator : public GraphResolutionConfigurator // For striping OuterNode* _node = nullptr; - Ipu8FragmentsConfigurator* _fragmentsConfigurator = nullptr; bool _isFragments = false; }; + +class Ipu8GraphResolutionConfigurator : public Gen2GraphResolutionConfigurator +{ +public: + Ipu8GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + ~Ipu8GraphResolutionConfigurator(); + +private: + StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) override; +#if SUPPORT_FRAGMENTS == 1 + Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) override; +#endif + + uint32_t _upscalerStepW = 1; + uint32_t _upscalerStepH = 1; +}; + +class Ipu9GraphResolutionConfigurator : public Gen2GraphResolutionConfigurator +{ +public: + Ipu9GraphResolutionConfigurator(IStaticGraphConfig* staticGraph); + ~Ipu9GraphResolutionConfigurator(); + +private: + StaticGraphStatus updateRunKernelUpScaler(StaticGraphRunKernel* runKernel, ResolutionRoi& roi, StaticGraphKernelResCrop& cropperKernelCrop, + uint32_t inputWidth, uint32_t inputHeight, uint32_t outputWidth, uint32_t outputHeight) override; + void postScalerUpdate() override; + bool enforceUpscalerAspectRatioConstraints() const override { return false; } + + StaticGraphRunKernel* _downscalerSmallRunKernel; + StaticGraphRunKernel* _cropperSmallRunKernel; + +#if SUPPORT_FRAGMENTS == 1 + Gen2FragmentsConfigurator* createFragmentsConfigurator(IStaticGraphConfig* staticGraph, OuterNode* node, uint8_t numberOfFragments) override; +#endif +}; diff --git a/modules/ipu_desc/ipu8/GraphResolutionConfiguratorInclude.h b/modules/ipu_desc/ipu8/GraphResolutionConfiguratorInclude.h index 1eceba9..78ddbbc 100644 --- a/modules/ipu_desc/ipu8/GraphResolutionConfiguratorInclude.h +++ b/modules/ipu_desc/ipu8/GraphResolutionConfiguratorInclude.h @@ -31,6 +31,9 @@ #include "Ipu7xStaticGraphAutogen.h" #include "Ipu7xStaticGraphTypesAutogen.h" #include "Ipu7xGraphResolutionConfiguratorAutogen.h" +#elif defined(GRC_IPU7) +#include "Ipu7StaticGraphAutogen.h" +#include "Ipu7StaticGraphTypesAutogen.h" #elif defined(GRC_IPU75XA) #include "Ipu75xaStaticGraphAutogen.h" #include "Ipu75xaStaticGraphTypesAutogen.h" @@ -39,6 +42,10 @@ #include "Ipu8StaticGraphAutogen.h" #include "Ipu8StaticGraphTypesAutogen.h" #include "Ipu8GraphResolutionConfiguratorAutogen.h" +#elif defined(GRC_IPU9P) +#include "Ipu9pStaticGraphAutogen.h" +#include "Ipu9pStaticGraphTypesAutogen.h" +#include "Ipu9pGraphResolutionConfiguratorAutogen.h" #else #include "StaticGraphAutogen.h" #include "StaticGraphTypesAutogen.h" diff --git a/modules/ipu_desc/ipu8/GraphTuningModeConfigurator.cpp b/modules/ipu_desc/ipu8/GraphTuningModeConfigurator.cpp new file mode 100644 index 0000000..d8ab95f --- /dev/null +++ b/modules/ipu_desc/ipu8/GraphTuningModeConfigurator.cpp @@ -0,0 +1,30 @@ +#include "GraphResolutionConfiguratorInclude.h" +#include "GraphTuningModeConfigurator.h" + +#if SUPPORT_TM_SWITCH == 1 +bool GraphTuningModeConfigurator::SwitchTuningModeBasedOnKey(uint8_t tuningModeKey) +{ + GraphTopology* graphTopology = nullptr; + _staticGraph->getGraphTopology(&graphTopology); + SubGraphInnerNodeConfiguration innerNodeConfig = {}; + bool modeSwitched = false; + for (int i = 0; i < graphTopology->numOfLinks; i++) + { + auto& link = graphTopology->links[i]; + for (int j = 0; j < 2; ++j) + { + if (link->srcNode != nullptr && link->srcNode->nodeTuningModes[j].key == tuningModeKey && link->srcNode->nodeKernels.operationMode != link->srcNode->nodeTuningModes[j].id) + { + link->srcNode->nodeKernels.operationMode = link->srcNode->nodeTuningModes[j].id; + modeSwitched = true; + } + if (link->destNode != nullptr && link->destNode->nodeTuningModes[j].key == tuningModeKey && link->destNode->nodeKernels.operationMode != link->destNode->nodeTuningModes[j].id) + { + link->destNode->nodeKernels.operationMode = link->destNode->nodeTuningModes[j].id; + modeSwitched = true; + } + } + } + return modeSwitched; +} +#endif \ No newline at end of file diff --git a/modules/ipu_desc/ipu8/GraphTuningModeConfigurator.h b/modules/ipu_desc/ipu8/GraphTuningModeConfigurator.h new file mode 100644 index 0000000..c05dd4d --- /dev/null +++ b/modules/ipu_desc/ipu8/GraphTuningModeConfigurator.h @@ -0,0 +1,49 @@ +/* +* INTEL CONFIDENTIAL +* Copyright (c) 2026 Intel Corporation +* All Rights Reserved. +* +* The source code contained or described herein and all documents related to +* the source code ("Material") are owned by Intel Corporation or its +* suppliers or licensors. Title to the Material remains with Intel +* Corporation or its suppliers and licensors. The Material may contain trade +* secrets and proprietary and confidential information of Intel Corporation +* and its suppliers and licensors, and is protected by worldwide copyright +* and trade secret laws and treaty provisions. No part of the Material may be +* used, copied, reproduced, modified, published, uploaded, posted, +* transmitted, distributed, or disclosed in any way without Intel's prior +* express written permission. +* +* No license under any patent, copyright, trade secret or other intellectual +* property right is granted to or conferred upon you by disclosure or +* delivery of the Materials, either expressly, by implication, inducement, +* estoppel or otherwise. Any license under such intellectual property rights +* must be express and approved by Intel in writing. +* +* Unless otherwise agreed by Intel in writing, you may not remove or alter +* this notice or any other notice embedded in Materials by Intel or Intels +* suppliers or licensors in any way. +*/ +#pragma once +#include +#include +#include +#if SUPPORT_TM_SWITCH == 1 +class GraphTuningModeConfigurator +{ +public: + GraphTuningModeConfigurator(IStaticGraphConfig* staticGraph) + { + _staticGraph = staticGraph; + + if (_staticGraph == nullptr) + { + return; + } + } + ~GraphTuningModeConfigurator(){} + bool SwitchTuningModeBasedOnKey(uint8_t tuningModeKey); +protected: + IStaticGraphConfig* _staticGraph; +}; +#endif \ No newline at end of file diff --git a/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.cpp b/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.cpp index f600cd6..9cc9fa7 100644 --- a/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.cpp +++ b/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.cpp @@ -39,10 +39,11 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuid(GraphResolutionConf return 0; } -uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links) +uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links, int numberOfLinks) { (void)graphId; (void)links; + (void)numberOfLinks; switch (hwSink) { @@ -125,6 +126,7 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSi case 100014: // Dol2Inputs_NoGmv_WithTnr case 100016: // Dol3Inputs_NoBurst_NoGmv_NoTnr case 100018: // Dol3Inputs_NoBurst_NoGmv_WithTnr + case 101114: // Dol2Inputs_NoGmv_WithTnr_WithOpacity case 100135: // Bayer_NoPdaf_WithNntm_WithTnr_WithSap case 100166: // Bayer_WithPdaf2_NoGmv_WithTnr_WithSap_WithNntm case 100145: // Bayer_WithPdaf2_WithDvs_WithTnr_WithSap_WithNntm @@ -140,7 +142,967 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSi case 100214: // Dol2Inputs_NoGmv_WithTnr case 100216: // Dol3Inputs_NoBurst_NoGmv_NoTnr case 100218: // Dol3Inputs_NoBurst_NoGmv_WithTnr - return 46539; // nntm_1_0 + return 8034; // nntm_1_2 + case 200000: // Bayer_NoPdaf_NoGmv_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200001: // Bayer_NoPdaf_WithDvs_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200002: // Bayer_NoPdaf_NoGmv_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200003: // Bayer_NoPdaf_WithDvs_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200004: // Bayer_NoPdaf_NoGmv_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200005: // Bayer_NoPdaf_WithDvs_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200006: // Bayer_NoPdaf_NoGmv_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200007: // Bayer_NoPdaf_WithDvs_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200008: // Bayer_WithPdaf2_NoGmv_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200009: // Bayer_WithPdaf2_WithDvs_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200010: // Bayer_WithPdaf2_NoGmv_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200011: // Bayer_WithPdaf2_WithDvs_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200012: // Bayer_WithPdaf2_NoGmv_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200013: // Bayer_WithPdaf2_WithDvs_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200014: // Bayer_WithPdaf2_NoGmv_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200015: // Bayer_WithPdaf2_WithDvs_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200016: // Bayer_WithPdaf3_NoGmv_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200017: // Bayer_WithPdaf3_WithDvs_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200018: // Bayer_WithPdaf3_NoGmv_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200019: // Bayer_WithPdaf3_WithDvs_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200020: // Bayer_WithPdaf3_NoGmv_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200021: // Bayer_WithPdaf3_WithDvs_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200022: // Bayer_WithPdaf3_NoGmv_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200023: // Bayer_WithPdaf3_WithDvs_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200024: // Dol2Inputs_NoGmv_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200025: // Dol2Inputs_WithDvs_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200026: // Dol2Inputs_NoGmv_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200027: // Dol2Inputs_WithDvs_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200028: // Dol2Inputs_NoGmv_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200029: // Dol2Inputs_WithDvs_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200030: // Dol2Inputs_NoGmv_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200031: // Dol2Inputs_WithDvs_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200032: // Bayer_WithPdaf3asPdaf2_NoGmv_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200033: // Bayer_WithPdaf3asPdaf2_WithDvs_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200034: // Bayer_WithPdaf3asPdaf2_NoGmv_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200035: // Bayer_WithPdaf3asPdaf2_WithDvs_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200036: // Bayer_WithPdaf3asPdaf2_NoGmv_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200037: // Bayer_WithPdaf3asPdaf2_WithDvs_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200038: // Bayer_WithPdaf3asPdaf2_NoGmv_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200039: // Bayer_WithPdaf3asPdaf2_WithDvs_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200040: // Dol3Inputs_NoGmv_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200041: // Dol3Inputs_WithDvs_NoTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200042: // Dol3Inputs_NoGmv_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200043: // Dol3Inputs_WithDvs_WithTnr + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200044: // Dol3Inputs_NoGmv_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200045: // Dol3Inputs_WithDvs_NoTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200046: // Dol3Inputs_NoGmv_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; + case 200047: // Dol3Inputs_WithDvs_WithTnr_WithSap + for (int i = 0; i < numberOfLinks; ++i) + { + if (links[i]->src == GraphElementType::SwImv && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 23692; // imv; + } + if (links[i]->src == GraphElementType::SwNntm && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 8034; // nntm_1_2; + } + if (links[i]->src == GraphElementType::SwGdc && + links[i]->dest == GraphElementType::ProcessedMain && links[i]->isActive) + { + return 5637; // gdc7_1; + } + } + break; } break; case HwSink::ProcessedSecondarySink: return 19706; // sw_scaler @@ -149,8 +1111,7 @@ uint32_t GraphResolutionConfiguratorHelper::getRunKernelUuidOfOutput(HwSink hwSi return 0; } - -StaticGraphStatus GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids, uint32_t startUuid) +StaticGraphStatus GraphResolutionConfiguratorHelper::getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids, uint32_t startUuid, uint32_t additonalFeaturesBit) { kernelUuids.clear(); @@ -160,6 +1121,7 @@ StaticGraphStatus GraphResolutionConfiguratorHelper::getRunKernelUuidForResHisto { return StaticGraphStatus::SG_ERROR; } + (void)additonalFeaturesBit; if (startUuid == 65466) // ESPA Crop { @@ -178,7 +1140,7 @@ StaticGraphStatus GraphResolutionConfiguratorHelper::getRunKernelUuidForResHisto kernelUuids.push_back(37951); // odr_ofs_dp_1_4 kernelUuids.push_back(5637); // gdc7_1 kernelUuids.push_back(19706); // sw_scaler - kernelUuids.push_back(46539); // nntm_1_0 + kernelUuids.push_back(8034); // nntm_1_2 } return StaticGraphStatus::SG_OK; } @@ -222,30 +1184,30 @@ GraphResolutionConfiguratorKernelRole GraphResolutionConfiguratorHelper::getKern case 35263 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_bnlm_1_4 case 9241 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_xnr_1_4 case 51914 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_acm_1_4 + case 20893 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_cas_1_4 case 47873 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_tnr_bc_1_4 case 14619 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_tnr_blend_1_4 - case 20893 : return GraphResolutionConfiguratorKernelRole::SmurfFeeder; // ifd_segmap_cas_1_4 default: return GraphResolutionConfiguratorKernelRole::None; } } -uint32_t GraphResolutionConfiguratorHelper::getReferenceKernel(uint32_t kernelUuid) +uint32_t GraphResolutionConfiguratorHelper::getReferenceKernel(uint32_t kernelUuid, uint32_t additonalFeaturesBit) { + additonalFeaturesBit = 0; // Not supported, ignore switch (kernelUuid) { case 29996 : return 65466; // tnr_scaler_lb_1_1 from lbff_crop_espa_1_4 case 20623 : return 65466; // tnr_scaler_fp_1_1 from lbff_crop_espa_1_4 case 28787 : return 65466; // image_upscaler_1_1 from lbff_crop_espa_1_4 case 50136 : return 9385; // b2i_ds_output_1_1 from cas_1_1 + case 9385 : return 28787; // cas_1_1 from image_upscaler_1_1 case 65437 : return 20623; // odr_tnr_scale_fp_yuv4n_1_4 from tnr_scaler_fp_1_1 case 30019 : return 54721; // xnr_5_4 from gltm_2_0 case 17531 : return 36029; // acm_1_2 from glim_2_0 case 1502 : return 23639; // tnr7_bc_1_2 from tnr7_ims_1_2 case 20119 : return 16295; // tnr7_blend_1_1 from ifd_tnr_fp_blend_yuvnm1_1_4 - case 9385 : return 28787; // cas_1_1 from image_upscaler_1_1 } - return 0; } diff --git a/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.h b/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.h index 37599c4..c281bc2 100644 --- a/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8GraphResolutionConfiguratorAutogen.h @@ -35,12 +35,12 @@ class GraphResolutionConfiguratorHelper public: static uint32_t getRunKernelUuid(GraphResolutionConfiguratorKernelRole role); - static uint32_t getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links); - static StaticGraphStatus getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids, uint32_t startUuid = 0); + static uint32_t getRunKernelUuidOfOutput(HwSink hwSink, int32_t graphId, GraphLink** links, int numberOfLinks = 0); + static StaticGraphStatus getRunKernelUuidForResHistoryUpdate(std::vector& kernelUuids, uint32_t startUuid = 0, uint32_t additonalFeaturesBit = 0); static uint32_t getRunKernelIoBufferSystemApiUuid(); static uint32_t getRunKernelDownscalerSystemApiUuid(); static GraphResolutionConfiguratorKernelRole getKernelRole(uint32_t kernelUuid); - static uint32_t getReferenceKernel(uint32_t kernelUuid); + static uint32_t getReferenceKernel(uint32_t kernelUuid, uint32_t additonalFeaturesBit); static FormatType getFormatForDrainer(uint32_t kernelUuid, uint8_t precision); static StaticGraphStatus getSmurfRunKernelUuid(std::vector>& kernelUuids); }; diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.cpp b/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.cpp index d89b275..89ea39a 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.cpp +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.cpp @@ -24,15 +24,15 @@ * this notice or any other notice embedded in Materials by Intel or Intels * suppliers or licensors in any way. */ - +#include #include "Ipu8StaticGraphAutogen.h" #define CHECK_BITMAP128_BIT(bitmap, index) ((bitmap[(index)/64]) & ((uint64_t)1 << ((index) % 64))) /* * External Interfaces */ -IStaticGraphConfig::IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t settingsId, StaticGraphConfigurationInformation* configurationInformation ) : -_selectedSensorMode(selectedSensorMode), _graphId(graphId), _settingsId(settingsId), _configurationInformation(configurationInformation) +IStaticGraphConfig::IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t settingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation ) : +_selectedSensorMode(selectedSensorMode), _graphId(graphId), _settingsId(settingsId),_additonalFeaturesBit(additonalFeaturesBit), _configurationInformation(configurationInformation) { memcpy(_sinkMappingConfiguration, sinkMappingConfiguration, sizeof(VirtualSinkMapping)); } @@ -76,6 +76,17 @@ StaticGraphStatus IStaticGraphConfig::getSettingsId(int32_t* settingsId) return StaticGraphStatus::SG_OK; }; +StaticGraphStatus IStaticGraphConfig::getAdditionalFeaturesBit(int32_t* featuresBit) +{ + if (featuresBit == nullptr) + { + return StaticGraphStatus::SG_ERROR; + } + + *featuresBit = _additonalFeaturesBit; + return StaticGraphStatus::SG_OK; +}; + StaticGraphStatus IStaticGraphConfig::getVirtualSinkConnection(VirtualSink& virtualSink, HwSink* hwSink) { switch (virtualSink) @@ -235,6 +246,7 @@ void OuterNode::Init(uint8_t nodeResourceId, NodeTypes nodeType, uint32_t kernelCount, uint32_t operationMode, + TuningModeMap tuningModes[2], uint32_t streamId, uint8_t nodeNumberOfFragments) { @@ -263,7 +275,14 @@ void OuterNode::Init(uint8_t nodeResourceId, nodeKernels.operationMode = operationMode; nodeKernels.streamId = streamId; + + for (uint32_t i = 0; i < 2; ++i) + { + nodeTuningModes[i].key = tuningModes[i].key; + nodeTuningModes[i].id = tuningModes[i].id; + } } + OuterNode::~OuterNode() { delete[] nodeKernels.kernelList; @@ -363,7 +382,7 @@ const uint16_t* OuterNode::getRunKernelConfigOrder() void IsysOuterNode::Init(IsysOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(2, NodeTypes::Isys, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(2, NodeTypes::Isys, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[1] = {11470 /*is_odr_a*/}; uint64_t kernelsRcbBitmap[] = {0x1, 0x0}; // { is_odr_a[0] } @@ -380,7 +399,7 @@ void IsysOuterNode::Init(IsysOuterNodeConfiguration* selectedGraphConfiguration) void LbffBayerNoGmvNoTnrNoSapOuterNode::Init(LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 34, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 34, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[34] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3FDF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], image_upscaler_1_1[24], odr_ofs_mp_1_4[26], b2i_ds_output_1_1[27], odr_ofs_dp_1_4[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33] } @@ -398,21 +417,99 @@ void LbffBayerNoGmvNoTnrNoSapOuterNode::Init(LbffBayerNoGmvNoTnrNoSapOuterNodeCo setInnerNode(None); } -void LbffBayerWithGmvNoTnrNoSapOuterNode::Init(LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void SwB2bInOuterNode::Init(SwB2bInOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 38, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[38] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3FFDF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], image_upscaler_1_1[24], odr_ofs_mp_1_4[26], b2i_ds_output_1_1[27], odr_ofs_dp_1_4[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33], ifd_gmv_1_4[34], gmv_statistics_1_1[35], odr_gmv_feature_1_4[36], odr_gmv_match_1_4[37] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3FF3800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {image_upscaler_1_1}[5], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[6], {odr_ofs_dp_1_4}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_gmv_1_4}[13], {gmv_statistics_1_1}[14], {odr_gmv_feature_1_4}[15], {odr_gmv_match_1_4}[16] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {image_upscaler_1_1}[10], {cas_1_1}[11], {odr_ofs_mp_1_4}[12], {b2i_ds_output_1_1}[13], {odr_ofs_dp_1_4}[14], {odr_awb_std_1_4}[15], {odr_awb_sat_1_4}[16], {aestatistics_2_1}[17], {odr_ae_1_4}[18], {odr_af_std_1_4}[19], {ifd_gmv_1_4}[20], {gmv_statistics_1_1}[21], {odr_gmv_feature_1_4}[22], {odr_gmv_match_1_4}[23] } - uint8_t systemApisSizes[38] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/}; - uint16_t runKernelConfigOrder[38] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*image_upscaler_1_1*/, 25 /*cas_1_1*/, 26 /*odr_ofs_mp_1_4*/, 27 /*b2i_ds_output_1_1*/, 28 /*odr_ofs_dp_1_4*/, 19 /*rgbs_grid_1_1*/, 29 /*odr_awb_std_1_4*/, 30 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 31 /*aestatistics_2_1*/, 32 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 33 /*odr_af_std_1_4*/, 34 /*ifd_gmv_1_4*/, 35 /*gmv_statistics_1_1*/, 36 /*odr_gmv_feature_1_4*/, 37 /*odr_gmv_match_1_4*/}; + // set default inner Node + setInnerNode(None); +} - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); +void SwB2bOuterNode::Init(SwB2bOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(7, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - // Metadata update - nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 + uint16_t kernelsUuids[1] = {17306 /*b2b*/}; + uint64_t kernelsRcbBitmap[] = {0x0, 0x0}; // { } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x0, 0x0}; // {{b2b}[0] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1, 0x0}; // {{b2b}[0] } + uint8_t systemApisSizes[1] = {20 /*b2b*/}; + uint16_t runKernelConfigOrder[1] = {0 /*b2b*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, nullptr, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // set default inner Node + setInnerNode(None); +} + +void SwB2bOutOuterNode::Init(SwB2bOutOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwRemosaicInOuterNode::Init(SwRemosaicInOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwRemosaicOuterNode::Init(SwRemosaicOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(9, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[1] = {8198 /*remosaic_1_0*/}; + uint64_t kernelsRcbBitmap[] = {0x0, 0x0}; // { } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x0, 0x0}; // {{remosaic_1_0}[0] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1, 0x0}; // {{remosaic_1_0}[0] } + uint8_t systemApisSizes[1] = {0 /*remosaic_1_0*/}; + uint16_t runKernelConfigOrder[1] = {0 /*remosaic_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, nullptr, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, nullptr, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // set default inner Node + setInnerNode(None); +} + +void SwRemosaicOutOuterNode::Init(SwRemosaicOutOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwAinrInOuterNode::Init(SwAinrInOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwAinrOuterNode::Init(SwAinrOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(10, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwAinrOutOuterNode::Init(SwAinrOutOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwGdcInOuterNode::Init(SwGdcInOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); // set default inner Node setInnerNode(None); @@ -420,7 +517,7 @@ void LbffBayerWithGmvNoTnrNoSapOuterNode::Init(LbffBayerWithGmvNoTnrNoSapOuterNo void SwGdcOuterNode::Init(SwGdcOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(4, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(4, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[1] = {5637 /*gdc7_1*/}; uint64_t kernelsRcbBitmap[] = {0x1, 0x0}; // { gdc7_1[0] } @@ -435,86 +532,83 @@ void SwGdcOuterNode::Init(SwGdcOuterNodeConfiguration* selectedGraphConfiguratio setInnerNode(None); } -void LbffBayerNoGmvWithTnrNoSapOuterNode::Init(LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void SwGdcOutOuterNode::Init(SwGdcOutOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3DD9FEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_tnr_sp_bc_yuv4nm1_1_4[31], ifd_tnr_sp_bc_rs4nm1_1_4[32], odr_tnr_sp_bc_rs4n_1_4[35], ifd_tnr_fp_blend_yuvnm1_1_4[36], odr_tnr_fp_yuvn_1_4[38], tnr_scaler_fp_1_1[39], image_upscaler_1_1[40], odr_ofs_mp_1_4[42], b2i_ds_output_1_1[43], odr_ofs_dp_1_4[44], odr_tnr_scale_fp_yuv4n_1_4[45] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3233FD800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[15], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[16], {odr_ofs_dp_1_4}[17], {odr_tnr_scale_fp_yuv4n_1_4}[18] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFBFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {tnr7_spatial_1_1}[10], {tnr_scaler_lb_1_1}[11], {odr_awb_std_1_4}[12], {odr_awb_sat_1_4}[13], {aestatistics_2_1}[14], {odr_ae_1_4}[15], {odr_af_std_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {tnr7_ims_1_2, tnr7_bc_1_2}[19], {odr_tnr_sp_bc_rs4n_1_4}[20], {ifd_tnr_fp_blend_yuvnm1_1_4}[21], {tnr7_blend_1_1}[22], {odr_tnr_fp_yuvn_1_4}[23], {tnr_scaler_fp_1_1}[24], {image_upscaler_1_1}[25], {cas_1_1}[26], {odr_ofs_mp_1_4}[27], {b2i_ds_output_1_1}[28], {odr_ofs_dp_1_4}[29], {odr_tnr_scale_fp_yuv4n_1_4}[30] } - uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*tnr7_spatial_1_1*/, 25 /*tnr_scaler_lb_1_1*/, 19 /*rgbs_grid_1_1*/, 26 /*odr_awb_std_1_4*/, 27 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 28 /*aestatistics_2_1*/, 29 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 30 /*odr_af_std_1_4*/, 31 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 32 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 33 /*tnr7_ims_1_2*/, 34 /*tnr7_bc_1_2*/, 35 /*odr_tnr_sp_bc_rs4n_1_4*/, 36 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 37 /*tnr7_blend_1_1*/, 40 /*image_upscaler_1_1*/, 41 /*cas_1_1*/, 42 /*odr_ofs_mp_1_4*/, 43 /*b2i_ds_output_1_1*/, 44 /*odr_ofs_dp_1_4*/, 38 /*odr_tnr_fp_yuvn_1_4*/, 39 /*tnr_scaler_fp_1_1*/, 45 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + // set default inner Node + setInnerNode(None); +} - // Metadata update - nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 +void SwNntmInOuterNode::Init(SwNntmInOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); // set default inner Node setInnerNode(None); } -void LbffBayerWithGmvWithTnrNoSapOuterNode::Init(LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void SwNntmOuterNode::Init(SwNntmOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3DD9FFEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_gmv_1_4[31], gmv_statistics_1_1[32], odr_gmv_feature_1_4[33], odr_gmv_match_1_4[34], ifd_tnr_sp_bc_yuv4nm1_1_4[35], ifd_tnr_sp_bc_rs4nm1_1_4[36], odr_tnr_sp_bc_rs4n_1_4[39], ifd_tnr_fp_blend_yuvnm1_1_4[40], odr_tnr_fp_yuvn_1_4[42], tnr_scaler_fp_1_1[43], image_upscaler_1_1[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48], odr_tnr_scale_fp_yuv4n_1_4[49] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3233FFD800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {gmv_statistics_1_1}[12], {odr_gmv_feature_1_4}[13], {odr_gmv_match_1_4}[14], {ifd_tnr_sp_bc_yuv4nm1_1_4}[15], {ifd_tnr_sp_bc_rs4nm1_1_4}[16], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[19], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[20], {odr_ofs_dp_1_4}[21], {odr_tnr_scale_fp_yuv4n_1_4}[22] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFBFFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {tnr7_spatial_1_1}[10], {tnr_scaler_lb_1_1}[11], {odr_awb_std_1_4}[12], {odr_awb_sat_1_4}[13], {aestatistics_2_1}[14], {odr_ae_1_4}[15], {odr_af_std_1_4}[16], {ifd_gmv_1_4}[17], {gmv_statistics_1_1}[18], {odr_gmv_feature_1_4}[19], {odr_gmv_match_1_4}[20], {ifd_tnr_sp_bc_yuv4nm1_1_4}[21], {ifd_tnr_sp_bc_rs4nm1_1_4}[22], {tnr7_ims_1_2, tnr7_bc_1_2}[23], {odr_tnr_sp_bc_rs4n_1_4}[24], {ifd_tnr_fp_blend_yuvnm1_1_4}[25], {tnr7_blend_1_1}[26], {odr_tnr_fp_yuvn_1_4}[27], {tnr_scaler_fp_1_1}[28], {image_upscaler_1_1}[29], {cas_1_1}[30], {odr_ofs_mp_1_4}[31], {b2i_ds_output_1_1}[32], {odr_ofs_dp_1_4}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34] } - uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*tnr7_spatial_1_1*/, 25 /*tnr_scaler_lb_1_1*/, 19 /*rgbs_grid_1_1*/, 26 /*odr_awb_std_1_4*/, 27 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 28 /*aestatistics_2_1*/, 29 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 30 /*odr_af_std_1_4*/, 31 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 33 /*odr_gmv_feature_1_4*/, 34 /*odr_gmv_match_1_4*/, 35 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 36 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 37 /*tnr7_ims_1_2*/, 38 /*tnr7_bc_1_2*/, 39 /*odr_tnr_sp_bc_rs4n_1_4*/, 40 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 41 /*tnr7_blend_1_1*/, 44 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 42 /*odr_tnr_fp_yuvn_1_4*/, 43 /*tnr_scaler_fp_1_1*/, 49 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + OuterNode::Init(6, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + uint16_t kernelsUuids[1] = {8034 /*nntm_1_2*/}; + uint64_t kernelsRcbBitmap[] = {0x0, 0x0}; // { } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x0, 0x0}; // {{nntm_1_2}[0] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1, 0x0}; // {{nntm_1_2}[0] } + uint8_t systemApisSizes[1] = {0 /*nntm_1_2*/}; + uint16_t runKernelConfigOrder[1] = {0 /*nntm_1_2*/}; - // Metadata update - nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 + InitRunKernels(kernelsUuids, kernelsRcbBitmap, nullptr, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, nullptr, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // set default inner Node setInnerNode(None); } -void IsysWithCvOuterNode::Init(IsysWithCvOuterNodeConfiguration* selectedGraphConfiguration) +void SwNntmOutOuterNode::Init(SwNntmOutOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(2, NodeTypes::Isys, 4, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[4] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/}; - uint64_t kernelsRcbBitmap[] = {0xB, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0xE, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xF, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3] } - uint8_t systemApisSizes[4] = {0 /*crop_bpp_adjust_1_0*/, 34 /*upipe_1_0*/, 20 /*isys_drainer_1_0*/, 0 /*is_odr_a*/}; - uint16_t runKernelConfigOrder[4] = {0 /*crop_bpp_adjust_1_0*/, 1 /*upipe_1_0*/, 2 /*isys_drainer_1_0*/, 3 /*is_odr_a*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); // set default inner Node setInnerNode(None); } -void SwSegnetOuterNode::Init(SwSegnetOuterNodeConfiguration* selectedGraphConfiguration) +void SwImvInOuterNode::Init(SwImvInOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(3, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); // set default inner Node setInnerNode(None); } -void LbffBayerWithGmvWithTnrWithSapOuterNode::Init(LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +void SwImvOuterNode::Init(SwImvOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 62, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(8, NodeTypes::Sw, 2, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[62] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BF77D63187FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_gmv_1_4[17], ifd_tnr_sp_bc_yuv4nm1_1_4[18], ifd_tnr_sp_bc_rs4nm1_1_4[19], ifd_tnr_fp_blend_yuvnm1_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], tnr_scaler_lb_1_1[40], gmv_statistics_1_1[42], odr_gmv_feature_1_4[43], odr_gmv_match_1_4[44], ifd_segmap_tnr_bc_1_4[45], smurf_tnr_bc_1_0[46], odr_tnr_sp_bc_rs4n_1_4[48], ifd_segmap_tnr_blend_1_4[49], smurf_tnr_blend_1_0[50], odr_tnr_fp_yuvn_1_4[52], tnr_scaler_fp_1_1[53], image_upscaler_1_1[54], odr_tnr_scale_fp_yuv4n_1_4[55], ifd_segmap_cas_1_4[56], smurf_cas_1_0[57], odr_ofs_mp_1_4[59], b2i_ds_output_1_1[60], odr_ofs_dp_1_4[61] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EFEC738FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_gmv_1_4}[9], {ifd_tnr_sp_bc_yuv4nm1_1_4}[10], {ifd_tnr_sp_bc_rs4nm1_1_4}[11], {ifd_tnr_fp_blend_yuvnm1_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[23], {tnr7_ims_1_2}[24], {gmv_statistics_1_1}[25], {odr_gmv_feature_1_4}[26], {odr_gmv_match_1_4}[27], {ifd_segmap_tnr_bc_1_4}[28], {smurf_tnr_bc_1_0}[29], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[30], {ifd_segmap_tnr_blend_1_4}[31], {smurf_tnr_blend_1_0}[32], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34], {ifd_segmap_cas_1_4}[35], {smurf_cas_1_0}[36], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFFE738FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_gmv_1_4}[13], {ifd_tnr_sp_bc_yuv4nm1_1_4}[14], {ifd_tnr_sp_bc_rs4nm1_1_4}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {tnr7_spatial_1_1}[28], {tnr_scaler_lb_1_1}[29], {tnr7_ims_1_2}[30], {gmv_statistics_1_1}[31], {odr_gmv_feature_1_4}[32], {odr_gmv_match_1_4}[33], {ifd_segmap_tnr_bc_1_4}[34], {smurf_tnr_bc_1_0}[35], {tnr7_bc_1_2}[36], {odr_tnr_sp_bc_rs4n_1_4}[37], {ifd_segmap_tnr_blend_1_4}[38], {smurf_tnr_blend_1_0}[39], {tnr7_blend_1_1}[40], {odr_tnr_fp_yuvn_1_4}[41], {tnr_scaler_fp_1_1}[42], {image_upscaler_1_1}[43], {odr_tnr_scale_fp_yuv4n_1_4}[44], {ifd_segmap_cas_1_4}[45], {smurf_cas_1_0}[46], {cas_1_1}[47], {odr_ofs_mp_1_4}[48], {b2i_ds_output_1_1}[49], {odr_ofs_dp_1_4}[50] } - uint8_t systemApisSizes[62] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[62] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*tnr7_spatial_1_1*/, 40 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_gmv_1_4*/, 42 /*gmv_statistics_1_1*/, 43 /*odr_gmv_feature_1_4*/, 44 /*odr_gmv_match_1_4*/, 18 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 19 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 41 /*tnr7_ims_1_2*/, 47 /*tnr7_bc_1_2*/, 48 /*odr_tnr_sp_bc_rs4n_1_4*/, 20 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 51 /*tnr7_blend_1_1*/, 54 /*image_upscaler_1_1*/, 58 /*cas_1_1*/, 59 /*odr_ofs_mp_1_4*/, 60 /*b2i_ds_output_1_1*/, 61 /*odr_ofs_dp_1_4*/, 52 /*odr_tnr_fp_yuvn_1_4*/, 53 /*tnr_scaler_fp_1_1*/, 55 /*odr_tnr_scale_fp_yuv4n_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_tnr_bc_1_4*/, 49 /*ifd_segmap_tnr_blend_1_4*/, 56 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 46 /*smurf_tnr_bc_1_0*/, 50 /*smurf_tnr_blend_1_0*/, 57 /*smurf_cas_1_0*/}; + uint16_t kernelsUuids[2] = {23692 /*imv*/, 19706 /*sw_scaler*/}; + uint64_t kernelsRcbBitmap[] = {0x3, 0x0}; // { imv[0], sw_scaler[1] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x2, 0x0}; // {{imv}[0], {sw_scaler}[1] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3, 0x0}; // {{imv}[0], {sw_scaler}[1] } + uint8_t systemApisSizes[2] = {0 /*imv*/, 12 /*sw_scaler*/}; + uint16_t runKernelConfigOrder[2] = {0 /*imv*/, 1 /*sw_scaler*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - // Metadata update - nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 + // set default inner Node + setInnerNode(None); +} + +void SwImvOutOuterNode::Init(SwImvOutOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void SwScalerInOuterNode::Init(SwScalerInOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); // set default inner Node setInnerNode(None); @@ -522,7 +616,7 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::Init(LbffBayerWithGmvWithTnrWithSa void SwScalerOuterNode::Init(SwScalerOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(5, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(5, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[1] = {19706 /*sw_scaler*/}; uint64_t kernelsRcbBitmap[] = {0x1, 0x0}; // { sw_scaler[0] } @@ -537,135 +631,174 @@ void SwScalerOuterNode::Init(SwScalerOuterNodeConfiguration* selectedGraphConfig setInnerNode(None); } -void SwNntmOuterNode::Init(SwNntmOuterNodeConfiguration* selectedGraphConfiguration) +void SwScalerOutOuterNode::Init(SwScalerOutOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(6, NodeTypes::Sw, 1, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(100, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[1] = {46539 /*nntm_1_0*/}; - uint64_t kernelsRcbBitmap[] = {0x0, 0x0}; // { } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x0, 0x0}; // {{nntm_1_0}[0] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1, 0x0}; // {{nntm_1_0}[0] } - uint8_t systemApisSizes[1] = {5 /*nntm_1_0*/}; - uint16_t runKernelConfigOrder[1] = {0 /*nntm_1_0*/}; + // set default inner Node + setInnerNode(None); +} - InitRunKernels(kernelsUuids, kernelsRcbBitmap, nullptr, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); +void LbffBayerWithGmvNoTnrNoSapOuterNode::Init(LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 38, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[38] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3FFDF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], image_upscaler_1_1[24], odr_ofs_mp_1_4[26], b2i_ds_output_1_1[27], odr_ofs_dp_1_4[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33], ifd_gmv_1_4[34], gmv_statistics_1_1[35], odr_gmv_feature_1_4[36], odr_gmv_match_1_4[37] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3FF3800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {image_upscaler_1_1}[5], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[6], {odr_ofs_dp_1_4}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_gmv_1_4}[13], {gmv_statistics_1_1}[14], {odr_gmv_feature_1_4}[15], {odr_gmv_match_1_4}[16] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {image_upscaler_1_1}[10], {cas_1_1}[11], {odr_ofs_mp_1_4}[12], {b2i_ds_output_1_1}[13], {odr_ofs_dp_1_4}[14], {odr_awb_std_1_4}[15], {odr_awb_sat_1_4}[16], {aestatistics_2_1}[17], {odr_ae_1_4}[18], {odr_af_std_1_4}[19], {ifd_gmv_1_4}[20], {gmv_statistics_1_1}[21], {odr_gmv_feature_1_4}[22], {odr_gmv_match_1_4}[23] } + uint8_t systemApisSizes[38] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/}; + uint16_t runKernelConfigOrder[38] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*image_upscaler_1_1*/, 25 /*cas_1_1*/, 26 /*odr_ofs_mp_1_4*/, 27 /*b2i_ds_output_1_1*/, 28 /*odr_ofs_dp_1_4*/, 19 /*rgbs_grid_1_1*/, 29 /*odr_awb_std_1_4*/, 30 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 31 /*aestatistics_2_1*/, 32 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 33 /*odr_af_std_1_4*/, 34 /*ifd_gmv_1_4*/, 35 /*gmv_statistics_1_1*/, 36 /*odr_gmv_feature_1_4*/, 37 /*odr_gmv_match_1_4*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerNoGmvWithTnrWithSapOuterNode::Init(LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffBayerNoGmvWithTnrNoSapOuterNode::Init(LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 58, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[58] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BF76B18C3FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_tnr_sp_bc_yuv4nm1_1_4[17], ifd_tnr_sp_bc_rs4nm1_1_4[18], ifd_tnr_fp_blend_yuvnm1_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], tnr_scaler_lb_1_1[39], ifd_segmap_tnr_bc_1_4[41], smurf_tnr_bc_1_0[42], odr_tnr_sp_bc_rs4n_1_4[44], ifd_segmap_tnr_blend_1_4[45], smurf_tnr_blend_1_0[46], odr_tnr_fp_yuvn_1_4[48], tnr_scaler_fp_1_1[49], image_upscaler_1_1[50], odr_tnr_scale_fp_yuv4n_1_4[51], ifd_segmap_cas_1_4[52], smurf_cas_1_0[53], odr_ofs_mp_1_4[55], b2i_ds_output_1_1[56], odr_ofs_dp_1_4[57] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EF639C7FF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_tnr_sp_bc_yuv4nm1_1_4}[9], {ifd_tnr_sp_bc_rs4nm1_1_4}[10], {ifd_tnr_fp_blend_yuvnm1_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[22], {tnr7_ims_1_2}[23], {ifd_segmap_tnr_bc_1_4}[24], {smurf_tnr_bc_1_0}[25], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[26], {ifd_segmap_tnr_blend_1_4}[27], {smurf_tnr_blend_1_0}[28], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[29], {odr_tnr_scale_fp_yuv4n_1_4}[30], {ifd_segmap_cas_1_4}[31], {smurf_cas_1_0}[32], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFF39C7FFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {tnr7_spatial_1_1}[27], {tnr_scaler_lb_1_1}[28], {tnr7_ims_1_2}[29], {ifd_segmap_tnr_bc_1_4}[30], {smurf_tnr_bc_1_0}[31], {tnr7_bc_1_2}[32], {odr_tnr_sp_bc_rs4n_1_4}[33], {ifd_segmap_tnr_blend_1_4}[34], {smurf_tnr_blend_1_0}[35], {tnr7_blend_1_1}[36], {odr_tnr_fp_yuvn_1_4}[37], {tnr_scaler_fp_1_1}[38], {image_upscaler_1_1}[39], {odr_tnr_scale_fp_yuv4n_1_4}[40], {ifd_segmap_cas_1_4}[41], {smurf_cas_1_0}[42], {cas_1_1}[43], {odr_ofs_mp_1_4}[44], {b2i_ds_output_1_1}[45], {odr_ofs_dp_1_4}[46] } - uint8_t systemApisSizes[58] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[58] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 22 /*bnlm_3_4*/, 23 /*bxt_demosaic*/, 24 /*vcsc_2_0_b*/, 25 /*gltm_2_0*/, 28 /*xnr_5_4*/, 29 /*vcr_3_1*/, 30 /*glim_2_0*/, 33 /*acm_1_2*/, 34 /*gammatm_v4*/, 35 /*csc_1_1*/, 36 /*b2i_ds_1_1*/, 37 /*lbff_crop_espa_1_4*/, 38 /*tnr7_spatial_1_1*/, 39 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 18 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 40 /*tnr7_ims_1_2*/, 43 /*tnr7_bc_1_2*/, 44 /*odr_tnr_sp_bc_rs4n_1_4*/, 19 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 47 /*tnr7_blend_1_1*/, 50 /*image_upscaler_1_1*/, 54 /*cas_1_1*/, 55 /*odr_ofs_mp_1_4*/, 56 /*b2i_ds_output_1_1*/, 57 /*odr_ofs_dp_1_4*/, 48 /*odr_tnr_fp_yuvn_1_4*/, 49 /*tnr_scaler_fp_1_1*/, 51 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20 /*ifd_segmap_bnlm_1_4*/, 26 /*ifd_segmap_xnr_1_4*/, 31 /*ifd_segmap_acm_1_4*/, 41 /*ifd_segmap_tnr_bc_1_4*/, 45 /*ifd_segmap_tnr_blend_1_4*/, 52 /*ifd_segmap_cas_1_4*/, 21 /*smurf_bnlm_1_0*/, 27 /*smurf_xnr_1_0*/, 32 /*smurf_acm_1_0*/, 42 /*smurf_tnr_bc_1_0*/, 46 /*smurf_tnr_blend_1_0*/, 53 /*smurf_cas_1_0*/}; + uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3DD9FEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_tnr_sp_bc_yuv4nm1_1_4[31], ifd_tnr_sp_bc_rs4nm1_1_4[32], odr_tnr_sp_bc_rs4n_1_4[35], ifd_tnr_fp_blend_yuvnm1_1_4[36], odr_tnr_fp_yuvn_1_4[38], tnr_scaler_fp_1_1[39], image_upscaler_1_1[40], odr_ofs_mp_1_4[42], b2i_ds_output_1_1[43], odr_ofs_dp_1_4[44], odr_tnr_scale_fp_yuv4n_1_4[45] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3233FD800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[15], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[16], {odr_ofs_dp_1_4}[17], {odr_tnr_scale_fp_yuv4n_1_4}[18] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFBFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {tnr7_spatial_1_1}[10], {tnr_scaler_lb_1_1}[11], {odr_awb_std_1_4}[12], {odr_awb_sat_1_4}[13], {aestatistics_2_1}[14], {odr_ae_1_4}[15], {odr_af_std_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {tnr7_ims_1_2, tnr7_bc_1_2}[19], {odr_tnr_sp_bc_rs4n_1_4}[20], {ifd_tnr_fp_blend_yuvnm1_1_4}[21], {tnr7_blend_1_1}[22], {odr_tnr_fp_yuvn_1_4}[23], {tnr_scaler_fp_1_1}[24], {image_upscaler_1_1}[25], {cas_1_1}[26], {odr_ofs_mp_1_4}[27], {b2i_ds_output_1_1}[28], {odr_ofs_dp_1_4}[29], {odr_tnr_scale_fp_yuv4n_1_4}[30] } + uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*tnr7_spatial_1_1*/, 25 /*tnr_scaler_lb_1_1*/, 19 /*rgbs_grid_1_1*/, 26 /*odr_awb_std_1_4*/, 27 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 28 /*aestatistics_2_1*/, 29 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 30 /*odr_af_std_1_4*/, 31 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 32 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 33 /*tnr7_ims_1_2*/, 34 /*tnr7_bc_1_2*/, 35 /*odr_tnr_sp_bc_rs4n_1_4*/, 36 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 37 /*tnr7_blend_1_1*/, 40 /*image_upscaler_1_1*/, 41 /*cas_1_1*/, 42 /*odr_ofs_mp_1_4*/, 43 /*b2i_ds_output_1_1*/, 44 /*odr_ofs_dp_1_4*/, 38 /*odr_tnr_fp_yuvn_1_4*/, 39 /*tnr_scaler_fp_1_1*/, 45 /*odr_tnr_scale_fp_yuv4n_1_4*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[22].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void IsysPdaf2WithCvOuterNode::Init(IsysPdaf2WithCvOuterNodeConfiguration* selectedGraphConfiguration) +void LbffBayerWithGmvWithTnrNoSapOuterNode::Init(LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(2, NodeTypes::Isys, 5, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[5] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/, 55449 /*is_odr_b*/}; - uint64_t kernelsRcbBitmap[] = {0x1B, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3], is_odr_b[4] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x1E, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_b}[4] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1F, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_b}[4] } - uint8_t systemApisSizes[5] = {0 /*crop_bpp_adjust_1_0*/, 34 /*upipe_1_0*/, 20 /*isys_drainer_1_0*/, 0 /*is_odr_a*/, 0 /*is_odr_b*/}; - uint16_t runKernelConfigOrder[5] = {0 /*crop_bpp_adjust_1_0*/, 1 /*upipe_1_0*/, 2 /*isys_drainer_1_0*/, 3 /*is_odr_a*/, 4 /*is_odr_b*/}; + uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3DD9FFEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_gmv_1_4[31], gmv_statistics_1_1[32], odr_gmv_feature_1_4[33], odr_gmv_match_1_4[34], ifd_tnr_sp_bc_yuv4nm1_1_4[35], ifd_tnr_sp_bc_rs4nm1_1_4[36], odr_tnr_sp_bc_rs4n_1_4[39], ifd_tnr_fp_blend_yuvnm1_1_4[40], odr_tnr_fp_yuvn_1_4[42], tnr_scaler_fp_1_1[43], image_upscaler_1_1[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48], odr_tnr_scale_fp_yuv4n_1_4[49] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3233FFD800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {gmv_statistics_1_1}[12], {odr_gmv_feature_1_4}[13], {odr_gmv_match_1_4}[14], {ifd_tnr_sp_bc_yuv4nm1_1_4}[15], {ifd_tnr_sp_bc_rs4nm1_1_4}[16], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[19], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[20], {odr_ofs_dp_1_4}[21], {odr_tnr_scale_fp_yuv4n_1_4}[22] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFBFFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {tnr7_spatial_1_1}[10], {tnr_scaler_lb_1_1}[11], {odr_awb_std_1_4}[12], {odr_awb_sat_1_4}[13], {aestatistics_2_1}[14], {odr_ae_1_4}[15], {odr_af_std_1_4}[16], {ifd_gmv_1_4}[17], {gmv_statistics_1_1}[18], {odr_gmv_feature_1_4}[19], {odr_gmv_match_1_4}[20], {ifd_tnr_sp_bc_yuv4nm1_1_4}[21], {ifd_tnr_sp_bc_rs4nm1_1_4}[22], {tnr7_ims_1_2, tnr7_bc_1_2}[23], {odr_tnr_sp_bc_rs4n_1_4}[24], {ifd_tnr_fp_blend_yuvnm1_1_4}[25], {tnr7_blend_1_1}[26], {odr_tnr_fp_yuvn_1_4}[27], {tnr_scaler_fp_1_1}[28], {image_upscaler_1_1}[29], {cas_1_1}[30], {odr_ofs_mp_1_4}[31], {b2i_ds_output_1_1}[32], {odr_ofs_dp_1_4}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34] } + uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*tnr7_spatial_1_1*/, 25 /*tnr_scaler_lb_1_1*/, 19 /*rgbs_grid_1_1*/, 26 /*odr_awb_std_1_4*/, 27 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 28 /*aestatistics_2_1*/, 29 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 30 /*odr_af_std_1_4*/, 31 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 33 /*odr_gmv_feature_1_4*/, 34 /*odr_gmv_match_1_4*/, 35 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 36 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 37 /*tnr7_ims_1_2*/, 38 /*tnr7_bc_1_2*/, 39 /*odr_tnr_sp_bc_rs4n_1_4*/, 40 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 41 /*tnr7_blend_1_1*/, 44 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 42 /*odr_tnr_fp_yuvn_1_4*/, 43 /*tnr_scaler_fp_1_1*/, 49 /*odr_tnr_scale_fp_yuv4n_1_4*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + // Metadata update + nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 + // set default inner Node setInnerNode(None); } -void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +void IsysWithCvOuterNode::Init(IsysWithCvOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 62, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(2, NodeTypes::Isys, 4, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[62] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BF76B18C3FFFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], ifd_segmap_tnr_bc_1_4[45], smurf_tnr_bc_1_0[46], odr_tnr_sp_bc_rs4n_1_4[48], ifd_segmap_tnr_blend_1_4[49], smurf_tnr_blend_1_0[50], odr_tnr_fp_yuvn_1_4[52], tnr_scaler_fp_1_1[53], image_upscaler_1_1[54], odr_tnr_scale_fp_yuv4n_1_4[55], ifd_segmap_cas_1_4[56], smurf_cas_1_0[57], odr_ofs_mp_1_4[59], b2i_ds_output_1_1[60], odr_ofs_dp_1_4[61] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EF639C7FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[26], {tnr7_ims_1_2}[27], {ifd_segmap_tnr_bc_1_4}[28], {smurf_tnr_bc_1_0}[29], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[30], {ifd_segmap_tnr_blend_1_4}[31], {smurf_tnr_blend_1_0}[32], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34], {ifd_segmap_cas_1_4}[35], {smurf_cas_1_0}[36], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFF39C7FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {ifd_tnr_fp_blend_yuvnm1_1_4}[19], {ifd_segmap_bnlm_1_4}[20], {smurf_bnlm_1_0}[21], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[22], {ifd_segmap_xnr_1_4}[23], {smurf_xnr_1_0}[24], {xnr_5_4, vcr_3_1, glim_2_0}[25], {ifd_segmap_acm_1_4}[26], {smurf_acm_1_0}[27], {acm_1_2, gammatm_v4, csc_1_1}[28], {b2i_ds_1_1}[29], {lbff_crop_espa_1_4}[30], {tnr7_spatial_1_1}[31], {tnr_scaler_lb_1_1}[32], {tnr7_ims_1_2}[33], {ifd_segmap_tnr_bc_1_4}[34], {smurf_tnr_bc_1_0}[35], {tnr7_bc_1_2}[36], {odr_tnr_sp_bc_rs4n_1_4}[37], {ifd_segmap_tnr_blend_1_4}[38], {smurf_tnr_blend_1_0}[39], {tnr7_blend_1_1}[40], {odr_tnr_fp_yuvn_1_4}[41], {tnr_scaler_fp_1_1}[42], {image_upscaler_1_1}[43], {odr_tnr_scale_fp_yuv4n_1_4}[44], {ifd_segmap_cas_1_4}[45], {smurf_cas_1_0}[46], {cas_1_1}[47], {odr_ofs_mp_1_4}[48], {b2i_ds_output_1_1}[49], {odr_ofs_dp_1_4}[50] } - uint8_t systemApisSizes[62] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[62] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 26 /*bnlm_3_4*/, 27 /*bxt_demosaic*/, 28 /*vcsc_2_0_b*/, 29 /*gltm_2_0*/, 32 /*xnr_5_4*/, 33 /*vcr_3_1*/, 34 /*glim_2_0*/, 37 /*acm_1_2*/, 38 /*gammatm_v4*/, 39 /*csc_1_1*/, 40 /*b2i_ds_1_1*/, 41 /*lbff_crop_espa_1_4*/, 42 /*tnr7_spatial_1_1*/, 43 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 22 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 44 /*tnr7_ims_1_2*/, 47 /*tnr7_bc_1_2*/, 48 /*odr_tnr_sp_bc_rs4n_1_4*/, 23 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 51 /*tnr7_blend_1_1*/, 54 /*image_upscaler_1_1*/, 58 /*cas_1_1*/, 59 /*odr_ofs_mp_1_4*/, 60 /*b2i_ds_output_1_1*/, 61 /*odr_ofs_dp_1_4*/, 52 /*odr_tnr_fp_yuvn_1_4*/, 53 /*tnr_scaler_fp_1_1*/, 55 /*odr_tnr_scale_fp_yuv4n_1_4*/, 24 /*ifd_segmap_bnlm_1_4*/, 30 /*ifd_segmap_xnr_1_4*/, 35 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_tnr_bc_1_4*/, 49 /*ifd_segmap_tnr_blend_1_4*/, 56 /*ifd_segmap_cas_1_4*/, 25 /*smurf_bnlm_1_0*/, 31 /*smurf_xnr_1_0*/, 36 /*smurf_acm_1_0*/, 46 /*smurf_tnr_bc_1_0*/, 50 /*smurf_tnr_blend_1_0*/, 57 /*smurf_cas_1_0*/}; + uint16_t kernelsUuids[4] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/}; + uint64_t kernelsRcbBitmap[] = {0xB, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0xE, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xF, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3] } + uint8_t systemApisSizes[4] = {0 /*crop_bpp_adjust_1_0*/, 34 /*upipe_1_0*/, 20 /*isys_drainer_1_0*/, 0 /*is_odr_a*/}; + uint16_t runKernelConfigOrder[4] = {0 /*crop_bpp_adjust_1_0*/, 1 /*upipe_1_0*/, 2 /*isys_drainer_1_0*/, 3 /*is_odr_a*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // set default inner Node + setInnerNode(None); +} + +void SwSegnetOuterNode::Init(SwSegnetOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(3, NodeTypes::Sw, 0, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerNoGmvNoTnrWithSapOuterNode::Init(LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 42, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[42] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BE3187FE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_segmap_bnlm_1_4[17], smurf_bnlm_1_0[18], ifd_segmap_xnr_1_4[23], smurf_xnr_1_0[24], ifd_segmap_acm_1_4[28], smurf_acm_1_0[29], b2i_ds_1_1[33], lbff_crop_espa_1_4[34], image_upscaler_1_1[35], ifd_segmap_cas_1_4[36], smurf_cas_1_0[37], odr_ofs_mp_1_4[39], b2i_ds_output_1_1[40], odr_ofs_dp_1_4[41] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27C738FF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_segmap_bnlm_1_4}[9], {smurf_bnlm_1_0}[10], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[11], {ifd_segmap_xnr_1_4}[12], {smurf_xnr_1_0}[13], {xnr_5_4, vcr_3_1, glim_2_0}[14], {ifd_segmap_acm_1_4}[15], {smurf_acm_1_0}[16], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[17], {lbff_crop_espa_1_4}[18], {image_upscaler_1_1}[19], {ifd_segmap_cas_1_4}[20], {smurf_cas_1_0}[21], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[22], {odr_ofs_dp_1_4}[23] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FE738FFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1}[21], {b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {image_upscaler_1_1}[24], {ifd_segmap_cas_1_4}[25], {smurf_cas_1_0}[26], {cas_1_1}[27], {odr_ofs_mp_1_4}[28], {b2i_ds_output_1_1}[29], {odr_ofs_dp_1_4}[30] } + uint8_t systemApisSizes[42] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[42] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 19 /*bnlm_3_4*/, 20 /*bxt_demosaic*/, 21 /*vcsc_2_0_b*/, 22 /*gltm_2_0*/, 25 /*xnr_5_4*/, 26 /*vcr_3_1*/, 27 /*glim_2_0*/, 30 /*acm_1_2*/, 31 /*gammatm_v4*/, 32 /*csc_1_1*/, 33 /*b2i_ds_1_1*/, 34 /*lbff_crop_espa_1_4*/, 35 /*image_upscaler_1_1*/, 38 /*cas_1_1*/, 39 /*odr_ofs_mp_1_4*/, 40 /*b2i_ds_output_1_1*/, 41 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_segmap_bnlm_1_4*/, 23 /*ifd_segmap_xnr_1_4*/, 28 /*ifd_segmap_acm_1_4*/, 36 /*ifd_segmap_cas_1_4*/, 18 /*smurf_bnlm_1_0*/, 24 /*smurf_xnr_1_0*/, 29 /*smurf_acm_1_0*/, 37 /*smurf_cas_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[26].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[19].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerPdaf2WithTnrWithSapOuterNode::Init(LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffBayerWithGmvNoTnrWithSapOuterNode::Init(LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 66, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[66] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0xBF77D63187FFFE31, 0x3}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_gmv_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], gmv_statistics_1_1[46], odr_gmv_feature_1_4[47], odr_gmv_match_1_4[48], ifd_segmap_tnr_bc_1_4[49], smurf_tnr_bc_1_0[50], odr_tnr_sp_bc_rs4n_1_4[52], ifd_segmap_tnr_blend_1_4[53], smurf_tnr_blend_1_0[54], odr_tnr_fp_yuvn_1_4[56], tnr_scaler_fp_1_1[57], image_upscaler_1_1[58], odr_tnr_scale_fp_yuv4n_1_4[59], ifd_segmap_cas_1_4[60], smurf_cas_1_0[61], odr_ofs_mp_1_4[63], b2i_ds_output_1_1[64], odr_ofs_dp_1_4[65] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x78EFEC738FFFF062, 0x2}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_tnr_sp_bc_yuv4nm1_1_4}[14], {ifd_tnr_sp_bc_rs4nm1_1_4}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[27], {tnr7_ims_1_2}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_tnr_bc_1_4}[32], {smurf_tnr_bc_1_0}[33], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[34], {ifd_segmap_tnr_blend_1_4}[35], {smurf_tnr_blend_1_0}[36], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[37], {odr_tnr_scale_fp_yuv4n_1_4}[38], {ifd_segmap_cas_1_4}[39], {smurf_cas_1_0}[40], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[41], {odr_ofs_dp_1_4}[42] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFE738FFFFE73, 0x3}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_gmv_1_4}[17], {ifd_tnr_sp_bc_yuv4nm1_1_4}[18], {ifd_tnr_sp_bc_rs4nm1_1_4}[19], {ifd_tnr_fp_blend_yuvnm1_1_4}[20], {ifd_segmap_bnlm_1_4}[21], {smurf_bnlm_1_0}[22], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[23], {ifd_segmap_xnr_1_4}[24], {smurf_xnr_1_0}[25], {xnr_5_4, vcr_3_1, glim_2_0}[26], {ifd_segmap_acm_1_4}[27], {smurf_acm_1_0}[28], {acm_1_2, gammatm_v4, csc_1_1}[29], {b2i_ds_1_1}[30], {lbff_crop_espa_1_4}[31], {tnr7_spatial_1_1}[32], {tnr_scaler_lb_1_1}[33], {tnr7_ims_1_2}[34], {gmv_statistics_1_1}[35], {odr_gmv_feature_1_4}[36], {odr_gmv_match_1_4}[37], {ifd_segmap_tnr_bc_1_4}[38], {smurf_tnr_bc_1_0}[39], {tnr7_bc_1_2}[40], {odr_tnr_sp_bc_rs4n_1_4}[41], {ifd_segmap_tnr_blend_1_4}[42], {smurf_tnr_blend_1_0}[43], {tnr7_blend_1_1}[44], {odr_tnr_fp_yuvn_1_4}[45], {tnr_scaler_fp_1_1}[46], {image_upscaler_1_1}[47], {odr_tnr_scale_fp_yuv4n_1_4}[48], {ifd_segmap_cas_1_4}[49], {smurf_cas_1_0}[50], {cas_1_1}[51], {odr_ofs_mp_1_4}[52], {b2i_ds_output_1_1}[53], {odr_ofs_dp_1_4}[54] } - uint8_t systemApisSizes[66] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[66] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 27 /*bnlm_3_4*/, 28 /*bxt_demosaic*/, 29 /*vcsc_2_0_b*/, 30 /*gltm_2_0*/, 33 /*xnr_5_4*/, 34 /*vcr_3_1*/, 35 /*glim_2_0*/, 38 /*acm_1_2*/, 39 /*gammatm_v4*/, 40 /*csc_1_1*/, 41 /*b2i_ds_1_1*/, 42 /*lbff_crop_espa_1_4*/, 43 /*tnr7_spatial_1_1*/, 44 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_gmv_1_4*/, 46 /*gmv_statistics_1_1*/, 47 /*odr_gmv_feature_1_4*/, 48 /*odr_gmv_match_1_4*/, 22 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 23 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 45 /*tnr7_ims_1_2*/, 51 /*tnr7_bc_1_2*/, 52 /*odr_tnr_sp_bc_rs4n_1_4*/, 24 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 55 /*tnr7_blend_1_1*/, 58 /*image_upscaler_1_1*/, 62 /*cas_1_1*/, 63 /*odr_ofs_mp_1_4*/, 64 /*b2i_ds_output_1_1*/, 65 /*odr_ofs_dp_1_4*/, 56 /*odr_tnr_fp_yuvn_1_4*/, 57 /*tnr_scaler_fp_1_1*/, 59 /*odr_tnr_scale_fp_yuv4n_1_4*/, 25 /*ifd_segmap_bnlm_1_4*/, 31 /*ifd_segmap_xnr_1_4*/, 36 /*ifd_segmap_acm_1_4*/, 49 /*ifd_segmap_tnr_bc_1_4*/, 53 /*ifd_segmap_tnr_blend_1_4*/, 60 /*ifd_segmap_cas_1_4*/, 26 /*smurf_bnlm_1_0*/, 32 /*smurf_xnr_1_0*/, 37 /*smurf_acm_1_0*/, 50 /*smurf_tnr_bc_1_0*/, 54 /*smurf_tnr_blend_1_0*/, 61 /*smurf_cas_1_0*/}; + uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BFC630FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_gmv_1_4[17], ifd_segmap_bnlm_1_4[18], smurf_bnlm_1_0[19], ifd_segmap_xnr_1_4[24], smurf_xnr_1_0[25], ifd_segmap_acm_1_4[29], smurf_acm_1_0[30], b2i_ds_1_1[34], lbff_crop_espa_1_4[35], image_upscaler_1_1[36], gmv_statistics_1_1[37], odr_gmv_feature_1_4[38], odr_gmv_match_1_4[39], ifd_segmap_cas_1_4[40], smurf_cas_1_0[41], odr_ofs_mp_1_4[43], b2i_ds_output_1_1[44], odr_ofs_dp_1_4[45] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27F8E71FF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_gmv_1_4}[9], {ifd_segmap_bnlm_1_4}[10], {smurf_bnlm_1_0}[11], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[12], {ifd_segmap_xnr_1_4}[13], {smurf_xnr_1_0}[14], {xnr_5_4, vcr_3_1, glim_2_0}[15], {ifd_segmap_acm_1_4}[16], {smurf_acm_1_0}[17], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[18], {lbff_crop_espa_1_4}[19], {image_upscaler_1_1}[20], {gmv_statistics_1_1}[21], {odr_gmv_feature_1_4}[22], {odr_gmv_match_1_4}[23], {ifd_segmap_cas_1_4}[24], {smurf_cas_1_0}[25], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[26], {odr_ofs_dp_1_4}[27] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFCE71FFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_gmv_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1}[22], {b2i_ds_1_1}[23], {lbff_crop_espa_1_4}[24], {image_upscaler_1_1}[25], {gmv_statistics_1_1}[26], {odr_gmv_feature_1_4}[27], {odr_gmv_match_1_4}[28], {ifd_segmap_cas_1_4}[29], {smurf_cas_1_0}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34] } + uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 20 /*bnlm_3_4*/, 21 /*bxt_demosaic*/, 22 /*vcsc_2_0_b*/, 23 /*gltm_2_0*/, 26 /*xnr_5_4*/, 27 /*vcr_3_1*/, 28 /*glim_2_0*/, 31 /*acm_1_2*/, 32 /*gammatm_v4*/, 33 /*csc_1_1*/, 34 /*b2i_ds_1_1*/, 35 /*lbff_crop_espa_1_4*/, 36 /*image_upscaler_1_1*/, 42 /*cas_1_1*/, 43 /*odr_ofs_mp_1_4*/, 44 /*b2i_ds_output_1_1*/, 45 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_gmv_1_4*/, 37 /*gmv_statistics_1_1*/, 38 /*odr_gmv_feature_1_4*/, 39 /*odr_gmv_match_1_4*/, 18 /*ifd_segmap_bnlm_1_4*/, 24 /*ifd_segmap_xnr_1_4*/, 29 /*ifd_segmap_acm_1_4*/, 40 /*ifd_segmap_cas_1_4*/, 19 /*smurf_bnlm_1_0*/, 25 /*smurf_xnr_1_0*/, 30 /*smurf_acm_1_0*/, 41 /*smurf_cas_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[27].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[20].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffBayerNoGmvWithTnrWithSapOuterNode::Init(LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 61, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 58, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[61] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x1DFBB58C61FFF1F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_tnr_sp_bc_yuv4nm1_1_4[20], ifd_tnr_sp_bc_rs4nm1_1_4[21], ifd_tnr_fp_blend_yuvnm1_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], tnr_scaler_lb_1_1[42], ifd_segmap_tnr_bc_1_4[44], smurf_tnr_bc_1_0[45], odr_tnr_sp_bc_rs4n_1_4[47], ifd_segmap_tnr_blend_1_4[48], smurf_tnr_blend_1_0[49], odr_tnr_fp_yuvn_1_4[51], tnr_scaler_fp_1_1[52], image_upscaler_1_1[53], odr_tnr_scale_fp_yuv4n_1_4[54], ifd_segmap_cas_1_4[55], smurf_cas_1_0[56], odr_ofs_mp_1_4[58], b2i_ds_output_1_1[59], odr_ofs_dp_1_4[60] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13C77B1CE3FF83C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, pext_1_0, rgb_ir_2_0}[1], {pafstatistics_1_2}[2], {odr_pdaf_1_4}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {ifd_tnr_fp_blend_yuvnm1_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[24], {tnr7_ims_1_2}[25], {ifd_segmap_tnr_bc_1_4}[26], {smurf_tnr_bc_1_0}[27], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[28], {ifd_segmap_tnr_blend_1_4}[29], {smurf_tnr_blend_1_0}[30], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[31], {odr_tnr_scale_fp_yuv4n_1_4}[32], {ifd_segmap_cas_1_4}[33], {smurf_cas_1_0}[34], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFFFF9CE3FFF3F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {pext_1_0}[2], {rgb_ir_2_0}[3], {pafstatistics_1_2}[4], {odr_pdaf_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1}[7], {rgbs_grid_1_1}[8], {ccm_3a_2_0}[9], {fr_grid_1_0}[10], {odr_awb_std_1_4}[11], {odr_awb_sat_1_4}[12], {aestatistics_2_1}[13], {odr_ae_1_4}[14], {odr_af_std_1_4}[15], {ifd_tnr_sp_bc_yuv4nm1_1_4}[16], {ifd_tnr_sp_bc_rs4nm1_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {tnr7_spatial_1_1}[30], {tnr_scaler_lb_1_1}[31], {tnr7_ims_1_2}[32], {ifd_segmap_tnr_bc_1_4}[33], {smurf_tnr_bc_1_0}[34], {tnr7_bc_1_2}[35], {odr_tnr_sp_bc_rs4n_1_4}[36], {ifd_segmap_tnr_blend_1_4}[37], {smurf_tnr_blend_1_0}[38], {tnr7_blend_1_1}[39], {odr_tnr_fp_yuvn_1_4}[40], {tnr_scaler_fp_1_1}[41], {image_upscaler_1_1}[42], {odr_tnr_scale_fp_yuv4n_1_4}[43], {ifd_segmap_cas_1_4}[44], {smurf_cas_1_0}[45], {cas_1_1}[46], {odr_ofs_mp_1_4}[47], {b2i_ds_output_1_1}[48], {odr_ofs_dp_1_4}[49] } - uint8_t systemApisSizes[61] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*pext_1_0*/, 0 /*rgb_ir_2_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[61] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*pext_1_0*/, 6 /*pafstatistics_1_2*/, 7 /*odr_pdaf_1_4*/, 8 /*ifd_lsc_1_4*/, 9 /*lsc_1_2*/, 10 /*gd_2_2*/, 11 /*wb_1_1*/, 25 /*bnlm_3_4*/, 26 /*bxt_demosaic*/, 27 /*vcsc_2_0_b*/, 28 /*gltm_2_0*/, 31 /*xnr_5_4*/, 32 /*vcr_3_1*/, 33 /*glim_2_0*/, 36 /*acm_1_2*/, 37 /*gammatm_v4*/, 38 /*csc_1_1*/, 39 /*b2i_ds_1_1*/, 40 /*lbff_crop_espa_1_4*/, 41 /*tnr7_spatial_1_1*/, 42 /*tnr_scaler_lb_1_1*/, 12 /*rgbs_grid_1_1*/, 15 /*odr_awb_std_1_4*/, 16 /*odr_awb_sat_1_4*/, 13 /*ccm_3a_2_0*/, 17 /*aestatistics_2_1*/, 18 /*odr_ae_1_4*/, 14 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 21 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 43 /*tnr7_ims_1_2*/, 46 /*tnr7_bc_1_2*/, 47 /*odr_tnr_sp_bc_rs4n_1_4*/, 22 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 50 /*tnr7_blend_1_1*/, 53 /*image_upscaler_1_1*/, 57 /*cas_1_1*/, 58 /*odr_ofs_mp_1_4*/, 59 /*b2i_ds_output_1_1*/, 60 /*odr_ofs_dp_1_4*/, 51 /*odr_tnr_fp_yuvn_1_4*/, 52 /*tnr_scaler_fp_1_1*/, 54 /*odr_tnr_scale_fp_yuv4n_1_4*/, 23 /*ifd_segmap_bnlm_1_4*/, 29 /*ifd_segmap_xnr_1_4*/, 34 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_tnr_bc_1_4*/, 48 /*ifd_segmap_tnr_blend_1_4*/, 55 /*ifd_segmap_cas_1_4*/, 24 /*smurf_bnlm_1_0*/, 30 /*smurf_xnr_1_0*/, 35 /*smurf_acm_1_0*/, 45 /*smurf_tnr_bc_1_0*/, 49 /*smurf_tnr_blend_1_0*/, 56 /*smurf_cas_1_0*/}; + uint16_t kernelsUuids[58] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BF76B18C3FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_tnr_sp_bc_yuv4nm1_1_4[17], ifd_tnr_sp_bc_rs4nm1_1_4[18], ifd_tnr_fp_blend_yuvnm1_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], tnr_scaler_lb_1_1[39], ifd_segmap_tnr_bc_1_4[41], smurf_tnr_bc_1_0[42], odr_tnr_sp_bc_rs4n_1_4[44], ifd_segmap_tnr_blend_1_4[45], smurf_tnr_blend_1_0[46], odr_tnr_fp_yuvn_1_4[48], tnr_scaler_fp_1_1[49], image_upscaler_1_1[50], odr_tnr_scale_fp_yuv4n_1_4[51], ifd_segmap_cas_1_4[52], smurf_cas_1_0[53], odr_ofs_mp_1_4[55], b2i_ds_output_1_1[56], odr_ofs_dp_1_4[57] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EF639C7FF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_tnr_sp_bc_yuv4nm1_1_4}[9], {ifd_tnr_sp_bc_rs4nm1_1_4}[10], {ifd_tnr_fp_blend_yuvnm1_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[22], {tnr7_ims_1_2}[23], {ifd_segmap_tnr_bc_1_4}[24], {smurf_tnr_bc_1_0}[25], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[26], {ifd_segmap_tnr_blend_1_4}[27], {smurf_tnr_blend_1_0}[28], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[29], {odr_tnr_scale_fp_yuv4n_1_4}[30], {ifd_segmap_cas_1_4}[31], {smurf_cas_1_0}[32], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFF39C7FFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {tnr7_spatial_1_1}[27], {tnr_scaler_lb_1_1}[28], {tnr7_ims_1_2}[29], {ifd_segmap_tnr_bc_1_4}[30], {smurf_tnr_bc_1_0}[31], {tnr7_bc_1_2}[32], {odr_tnr_sp_bc_rs4n_1_4}[33], {ifd_segmap_tnr_blend_1_4}[34], {smurf_tnr_blend_1_0}[35], {tnr7_blend_1_1}[36], {odr_tnr_fp_yuvn_1_4}[37], {tnr_scaler_fp_1_1}[38], {image_upscaler_1_1}[39], {odr_tnr_scale_fp_yuv4n_1_4}[40], {ifd_segmap_cas_1_4}[41], {smurf_cas_1_0}[42], {cas_1_1}[43], {odr_ofs_mp_1_4}[44], {b2i_ds_output_1_1}[45], {odr_ofs_dp_1_4}[46] } + uint8_t systemApisSizes[58] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[58] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 22 /*bnlm_3_4*/, 23 /*bxt_demosaic*/, 24 /*vcsc_2_0_b*/, 25 /*gltm_2_0*/, 28 /*xnr_5_4*/, 29 /*vcr_3_1*/, 30 /*glim_2_0*/, 33 /*acm_1_2*/, 34 /*gammatm_v4*/, 35 /*csc_1_1*/, 36 /*b2i_ds_1_1*/, 37 /*lbff_crop_espa_1_4*/, 38 /*tnr7_spatial_1_1*/, 39 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 18 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 40 /*tnr7_ims_1_2*/, 43 /*tnr7_bc_1_2*/, 44 /*odr_tnr_sp_bc_rs4n_1_4*/, 19 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 47 /*tnr7_blend_1_1*/, 50 /*image_upscaler_1_1*/, 54 /*cas_1_1*/, 55 /*odr_ofs_mp_1_4*/, 56 /*b2i_ds_output_1_1*/, 57 /*odr_ofs_dp_1_4*/, 48 /*odr_tnr_fp_yuvn_1_4*/, 49 /*tnr_scaler_fp_1_1*/, 51 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20 /*ifd_segmap_bnlm_1_4*/, 26 /*ifd_segmap_xnr_1_4*/, 31 /*ifd_segmap_acm_1_4*/, 41 /*ifd_segmap_tnr_bc_1_4*/, 45 /*ifd_segmap_tnr_blend_1_4*/, 52 /*ifd_segmap_cas_1_4*/, 21 /*smurf_bnlm_1_0*/, 27 /*smurf_xnr_1_0*/, 32 /*smurf_acm_1_0*/, 42 /*smurf_tnr_bc_1_0*/, 46 /*smurf_tnr_blend_1_0*/, 53 /*smurf_cas_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[25].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[22].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffBayerWithGmvWithTnrWithSapOuterNode::Init(LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 63, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 62, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[63] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x77EED63187FFFC71, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], ifd_segmap_tnr_bc_1_4[46], smurf_tnr_bc_1_0[47], odr_tnr_sp_bc_rs4n_1_4[49], ifd_segmap_tnr_blend_1_4[50], smurf_tnr_blend_1_0[51], odr_tnr_fp_yuvn_1_4[53], tnr_scaler_fp_1_1[54], image_upscaler_1_1[55], odr_tnr_scale_fp_yuv4n_1_4[56], ifd_segmap_cas_1_4[57], smurf_cas_1_0[58], odr_ofs_mp_1_4[60], b2i_ds_output_1_1[61], odr_ofs_dp_1_4[62] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x4F1DEC738FFFE0C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[26], {tnr7_ims_1_2}[27], {ifd_segmap_tnr_bc_1_4}[28], {smurf_tnr_bc_1_0}[29], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[30], {ifd_segmap_tnr_blend_1_4}[31], {smurf_tnr_blend_1_0}[32], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34], {ifd_segmap_cas_1_4}[35], {smurf_cas_1_0}[36], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FFFFE738FFFFCF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_tnr_sp_bc_yuv4nm1_1_4}[18], {ifd_tnr_sp_bc_rs4nm1_1_4}[19], {ifd_tnr_fp_blend_yuvnm1_1_4}[20], {ifd_segmap_bnlm_1_4}[21], {smurf_bnlm_1_0}[22], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[23], {ifd_segmap_xnr_1_4}[24], {smurf_xnr_1_0}[25], {xnr_5_4, vcr_3_1, glim_2_0}[26], {ifd_segmap_acm_1_4}[27], {smurf_acm_1_0}[28], {acm_1_2, gammatm_v4, csc_1_1}[29], {b2i_ds_1_1}[30], {lbff_crop_espa_1_4}[31], {tnr7_spatial_1_1}[32], {tnr_scaler_lb_1_1}[33], {tnr7_ims_1_2}[34], {ifd_segmap_tnr_bc_1_4}[35], {smurf_tnr_bc_1_0}[36], {tnr7_bc_1_2}[37], {odr_tnr_sp_bc_rs4n_1_4}[38], {ifd_segmap_tnr_blend_1_4}[39], {smurf_tnr_blend_1_0}[40], {tnr7_blend_1_1}[41], {odr_tnr_fp_yuvn_1_4}[42], {tnr_scaler_fp_1_1}[43], {image_upscaler_1_1}[44], {odr_tnr_scale_fp_yuv4n_1_4}[45], {ifd_segmap_cas_1_4}[46], {smurf_cas_1_0}[47], {cas_1_1}[48], {odr_ofs_mp_1_4}[49], {b2i_ds_output_1_1}[50], {odr_ofs_dp_1_4}[51] } - uint8_t systemApisSizes[63] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[63] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 27 /*bnlm_3_4*/, 28 /*bxt_demosaic*/, 29 /*vcsc_2_0_b*/, 30 /*gltm_2_0*/, 33 /*xnr_5_4*/, 34 /*vcr_3_1*/, 35 /*glim_2_0*/, 38 /*acm_1_2*/, 39 /*gammatm_v4*/, 40 /*csc_1_1*/, 41 /*b2i_ds_1_1*/, 42 /*lbff_crop_espa_1_4*/, 43 /*tnr7_spatial_1_1*/, 44 /*tnr_scaler_lb_1_1*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 23 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 45 /*tnr7_ims_1_2*/, 48 /*tnr7_bc_1_2*/, 49 /*odr_tnr_sp_bc_rs4n_1_4*/, 24 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 52 /*tnr7_blend_1_1*/, 55 /*image_upscaler_1_1*/, 59 /*cas_1_1*/, 60 /*odr_ofs_mp_1_4*/, 61 /*b2i_ds_output_1_1*/, 62 /*odr_ofs_dp_1_4*/, 53 /*odr_tnr_fp_yuvn_1_4*/, 54 /*tnr_scaler_fp_1_1*/, 56 /*odr_tnr_scale_fp_yuv4n_1_4*/, 25 /*ifd_segmap_bnlm_1_4*/, 31 /*ifd_segmap_xnr_1_4*/, 36 /*ifd_segmap_acm_1_4*/, 46 /*ifd_segmap_tnr_bc_1_4*/, 50 /*ifd_segmap_tnr_blend_1_4*/, 57 /*ifd_segmap_cas_1_4*/, 26 /*smurf_bnlm_1_0*/, 32 /*smurf_xnr_1_0*/, 37 /*smurf_acm_1_0*/, 47 /*smurf_tnr_bc_1_0*/, 51 /*smurf_tnr_blend_1_0*/, 58 /*smurf_cas_1_0*/}; + uint16_t kernelsUuids[62] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BF77D63187FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_gmv_1_4[17], ifd_tnr_sp_bc_yuv4nm1_1_4[18], ifd_tnr_sp_bc_rs4nm1_1_4[19], ifd_tnr_fp_blend_yuvnm1_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], tnr_scaler_lb_1_1[40], gmv_statistics_1_1[42], odr_gmv_feature_1_4[43], odr_gmv_match_1_4[44], ifd_segmap_tnr_bc_1_4[45], smurf_tnr_bc_1_0[46], odr_tnr_sp_bc_rs4n_1_4[48], ifd_segmap_tnr_blend_1_4[49], smurf_tnr_blend_1_0[50], odr_tnr_fp_yuvn_1_4[52], tnr_scaler_fp_1_1[53], image_upscaler_1_1[54], odr_tnr_scale_fp_yuv4n_1_4[55], ifd_segmap_cas_1_4[56], smurf_cas_1_0[57], odr_ofs_mp_1_4[59], b2i_ds_output_1_1[60], odr_ofs_dp_1_4[61] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EFEC738FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_gmv_1_4}[9], {ifd_tnr_sp_bc_yuv4nm1_1_4}[10], {ifd_tnr_sp_bc_rs4nm1_1_4}[11], {ifd_tnr_fp_blend_yuvnm1_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[23], {tnr7_ims_1_2}[24], {gmv_statistics_1_1}[25], {odr_gmv_feature_1_4}[26], {odr_gmv_match_1_4}[27], {ifd_segmap_tnr_bc_1_4}[28], {smurf_tnr_bc_1_0}[29], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[30], {ifd_segmap_tnr_blend_1_4}[31], {smurf_tnr_blend_1_0}[32], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34], {ifd_segmap_cas_1_4}[35], {smurf_cas_1_0}[36], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFFE738FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_gmv_1_4}[13], {ifd_tnr_sp_bc_yuv4nm1_1_4}[14], {ifd_tnr_sp_bc_rs4nm1_1_4}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {tnr7_spatial_1_1}[28], {tnr_scaler_lb_1_1}[29], {tnr7_ims_1_2}[30], {gmv_statistics_1_1}[31], {odr_gmv_feature_1_4}[32], {odr_gmv_match_1_4}[33], {ifd_segmap_tnr_bc_1_4}[34], {smurf_tnr_bc_1_0}[35], {tnr7_bc_1_2}[36], {odr_tnr_sp_bc_rs4n_1_4}[37], {ifd_segmap_tnr_blend_1_4}[38], {smurf_tnr_blend_1_0}[39], {tnr7_blend_1_1}[40], {odr_tnr_fp_yuvn_1_4}[41], {tnr_scaler_fp_1_1}[42], {image_upscaler_1_1}[43], {odr_tnr_scale_fp_yuv4n_1_4}[44], {ifd_segmap_cas_1_4}[45], {smurf_cas_1_0}[46], {cas_1_1}[47], {odr_ofs_mp_1_4}[48], {b2i_ds_output_1_1}[49], {odr_ofs_dp_1_4}[50] } + uint8_t systemApisSizes[62] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[62] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*tnr7_spatial_1_1*/, 40 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_gmv_1_4*/, 42 /*gmv_statistics_1_1*/, 43 /*odr_gmv_feature_1_4*/, 44 /*odr_gmv_match_1_4*/, 18 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 19 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 41 /*tnr7_ims_1_2*/, 47 /*tnr7_bc_1_2*/, 48 /*odr_tnr_sp_bc_rs4n_1_4*/, 20 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 51 /*tnr7_blend_1_1*/, 54 /*image_upscaler_1_1*/, 58 /*cas_1_1*/, 59 /*odr_ofs_mp_1_4*/, 60 /*b2i_ds_output_1_1*/, 61 /*odr_ofs_dp_1_4*/, 52 /*odr_tnr_fp_yuvn_1_4*/, 53 /*tnr_scaler_fp_1_1*/, 55 /*odr_tnr_scale_fp_yuv4n_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_tnr_bc_1_4*/, 49 /*ifd_segmap_tnr_blend_1_4*/, 56 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 46 /*smurf_tnr_bc_1_0*/, 50 /*smurf_tnr_blend_1_0*/, 57 /*smurf_cas_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[27].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); @@ -673,7 +806,7 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3asPda void IsysPdaf2OuterNode::Init(IsysPdaf2OuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(2, NodeTypes::Isys, 2, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(2, NodeTypes::Isys, 2, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[2] = {11470 /*is_odr_a*/, 55449 /*is_odr_b*/}; uint64_t kernelsRcbBitmap[] = {0x3, 0x0}; // { is_odr_a[0], is_odr_b[1] } @@ -690,7 +823,7 @@ void IsysPdaf2OuterNode::Init(IsysPdaf2OuterNodeConfiguration* selectedGraphConf void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 38, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 38, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[38] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3FFDF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], image_upscaler_1_1[24], odr_ofs_mp_1_4[26], b2i_ds_output_1_1[27], odr_ofs_dp_1_4[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33], ifd_pdaf_1_4[34], pext_1_0[35], pafstatistics_1_2[36], odr_pdaf_1_4[37] } @@ -710,7 +843,7 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf2NoGmvNoTnrNoSapO void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 42, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 42, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[42] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3FFFDF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], image_upscaler_1_1[24], odr_ofs_mp_1_4[26], b2i_ds_output_1_1[27], odr_ofs_dp_1_4[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33], ifd_pdaf_1_4[34], pext_1_0[35], pafstatistics_1_2[36], odr_pdaf_1_4[37], ifd_gmv_1_4[38], gmv_statistics_1_1[39], odr_gmv_feature_1_4[40], odr_gmv_match_1_4[41] } @@ -730,7 +863,7 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf2WithGmvNoTnrNo void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3DD9FFEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_pdaf_1_4[31], pext_1_0[32], pafstatistics_1_2[33], odr_pdaf_1_4[34], ifd_tnr_sp_bc_yuv4nm1_1_4[35], ifd_tnr_sp_bc_rs4nm1_1_4[36], odr_tnr_sp_bc_rs4n_1_4[39], ifd_tnr_fp_blend_yuvnm1_1_4[40], odr_tnr_fp_yuvn_1_4[42], tnr_scaler_fp_1_1[43], image_upscaler_1_1[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48], odr_tnr_scale_fp_yuv4n_1_4[49] } @@ -750,7 +883,7 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf2NoGmvWithTnrNo void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 54, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 54, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[54] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3DD9FFFEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_pdaf_1_4[31], pext_1_0[32], pafstatistics_1_2[33], odr_pdaf_1_4[34], ifd_gmv_1_4[35], gmv_statistics_1_1[36], odr_gmv_feature_1_4[37], odr_gmv_match_1_4[38], ifd_tnr_sp_bc_yuv4nm1_1_4[39], ifd_tnr_sp_bc_rs4nm1_1_4[40], odr_tnr_sp_bc_rs4n_1_4[43], ifd_tnr_fp_blend_yuvnm1_1_4[44], odr_tnr_fp_yuvn_1_4[46], tnr_scaler_fp_1_1[47], image_upscaler_1_1[48], odr_ofs_mp_1_4[50], b2i_ds_output_1_1[51], odr_ofs_dp_1_4[52], odr_tnr_scale_fp_yuv4n_1_4[53] } @@ -768,9 +901,86 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf2WithGmvWithT setInnerNode(None); } +void IsysPdaf2WithCvOuterNode::Init(IsysPdaf2WithCvOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(2, NodeTypes::Isys, 5, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[5] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/, 55449 /*is_odr_b*/}; + uint64_t kernelsRcbBitmap[] = {0x1B, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3], is_odr_b[4] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x1E, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_b}[4] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1F, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_b}[4] } + uint8_t systemApisSizes[5] = {0 /*crop_bpp_adjust_1_0*/, 34 /*upipe_1_0*/, 20 /*isys_drainer_1_0*/, 0 /*is_odr_a*/, 0 /*is_odr_b*/}; + uint16_t runKernelConfigOrder[5] = {0 /*crop_bpp_adjust_1_0*/, 1 /*upipe_1_0*/, 2 /*isys_drainer_1_0*/, 3 /*is_odr_a*/, 4 /*is_odr_b*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BE3187FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], ifd_segmap_cas_1_4[40], smurf_cas_1_0[41], odr_ofs_mp_1_4[43], b2i_ds_output_1_1[44], odr_ofs_dp_1_4[45] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27C738FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {image_upscaler_1_1}[23], {ifd_segmap_cas_1_4}[24], {smurf_cas_1_0}[25], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[26], {odr_ofs_dp_1_4}[27] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FE738FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {image_upscaler_1_1}[28], {ifd_segmap_cas_1_4}[29], {smurf_cas_1_0}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34] } + uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 42 /*cas_1_1*/, 43 /*odr_ofs_mp_1_4*/, 44 /*b2i_ds_output_1_1*/, 45 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 40 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 41 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BFC630FFFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_gmv_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], image_upscaler_1_1[40], gmv_statistics_1_1[41], odr_gmv_feature_1_4[42], odr_gmv_match_1_4[43], ifd_segmap_cas_1_4[44], smurf_cas_1_0[45], odr_ofs_mp_1_4[47], b2i_ds_output_1_1[48], odr_ofs_dp_1_4[49] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27F8E71FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {image_upscaler_1_1}[24], {gmv_statistics_1_1}[25], {odr_gmv_feature_1_4}[26], {odr_gmv_match_1_4}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[30], {odr_ofs_dp_1_4}[31] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFCE71FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_gmv_1_4}[17], {ifd_segmap_bnlm_1_4}[18], {smurf_bnlm_1_0}[19], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[20], {ifd_segmap_xnr_1_4}[21], {smurf_xnr_1_0}[22], {xnr_5_4, vcr_3_1, glim_2_0}[23], {ifd_segmap_acm_1_4}[24], {smurf_acm_1_0}[25], {acm_1_2, gammatm_v4, csc_1_1}[26], {b2i_ds_1_1}[27], {lbff_crop_espa_1_4}[28], {image_upscaler_1_1}[29], {gmv_statistics_1_1}[30], {odr_gmv_feature_1_4}[31], {odr_gmv_match_1_4}[32], {ifd_segmap_cas_1_4}[33], {smurf_cas_1_0}[34], {cas_1_1}[35], {odr_ofs_mp_1_4}[36], {b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } + uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 24 /*bnlm_3_4*/, 25 /*bxt_demosaic*/, 26 /*vcsc_2_0_b*/, 27 /*gltm_2_0*/, 30 /*xnr_5_4*/, 31 /*vcr_3_1*/, 32 /*glim_2_0*/, 35 /*acm_1_2*/, 36 /*gammatm_v4*/, 37 /*csc_1_1*/, 38 /*b2i_ds_1_1*/, 39 /*lbff_crop_espa_1_4*/, 40 /*image_upscaler_1_1*/, 46 /*cas_1_1*/, 47 /*odr_ofs_mp_1_4*/, 48 /*b2i_ds_output_1_1*/, 49 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_gmv_1_4*/, 41 /*gmv_statistics_1_1*/, 42 /*odr_gmv_feature_1_4*/, 43 /*odr_gmv_match_1_4*/, 22 /*ifd_segmap_bnlm_1_4*/, 28 /*ifd_segmap_xnr_1_4*/, 33 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_cas_1_4*/, 23 /*smurf_bnlm_1_0*/, 29 /*smurf_xnr_1_0*/, 34 /*smurf_acm_1_0*/, 45 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[24].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 62, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[62] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BF76B18C3FFFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], ifd_segmap_tnr_bc_1_4[45], smurf_tnr_bc_1_0[46], odr_tnr_sp_bc_rs4n_1_4[48], ifd_segmap_tnr_blend_1_4[49], smurf_tnr_blend_1_0[50], odr_tnr_fp_yuvn_1_4[52], tnr_scaler_fp_1_1[53], image_upscaler_1_1[54], odr_tnr_scale_fp_yuv4n_1_4[55], ifd_segmap_cas_1_4[56], smurf_cas_1_0[57], odr_ofs_mp_1_4[59], b2i_ds_output_1_1[60], odr_ofs_dp_1_4[61] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EF639C7FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[26], {tnr7_ims_1_2}[27], {ifd_segmap_tnr_bc_1_4}[28], {smurf_tnr_bc_1_0}[29], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[30], {ifd_segmap_tnr_blend_1_4}[31], {smurf_tnr_blend_1_0}[32], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34], {ifd_segmap_cas_1_4}[35], {smurf_cas_1_0}[36], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFF39C7FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {ifd_tnr_fp_blend_yuvnm1_1_4}[19], {ifd_segmap_bnlm_1_4}[20], {smurf_bnlm_1_0}[21], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[22], {ifd_segmap_xnr_1_4}[23], {smurf_xnr_1_0}[24], {xnr_5_4, vcr_3_1, glim_2_0}[25], {ifd_segmap_acm_1_4}[26], {smurf_acm_1_0}[27], {acm_1_2, gammatm_v4, csc_1_1}[28], {b2i_ds_1_1}[29], {lbff_crop_espa_1_4}[30], {tnr7_spatial_1_1}[31], {tnr_scaler_lb_1_1}[32], {tnr7_ims_1_2}[33], {ifd_segmap_tnr_bc_1_4}[34], {smurf_tnr_bc_1_0}[35], {tnr7_bc_1_2}[36], {odr_tnr_sp_bc_rs4n_1_4}[37], {ifd_segmap_tnr_blend_1_4}[38], {smurf_tnr_blend_1_0}[39], {tnr7_blend_1_1}[40], {odr_tnr_fp_yuvn_1_4}[41], {tnr_scaler_fp_1_1}[42], {image_upscaler_1_1}[43], {odr_tnr_scale_fp_yuv4n_1_4}[44], {ifd_segmap_cas_1_4}[45], {smurf_cas_1_0}[46], {cas_1_1}[47], {odr_ofs_mp_1_4}[48], {b2i_ds_output_1_1}[49], {odr_ofs_dp_1_4}[50] } + uint8_t systemApisSizes[62] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[62] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 26 /*bnlm_3_4*/, 27 /*bxt_demosaic*/, 28 /*vcsc_2_0_b*/, 29 /*gltm_2_0*/, 32 /*xnr_5_4*/, 33 /*vcr_3_1*/, 34 /*glim_2_0*/, 37 /*acm_1_2*/, 38 /*gammatm_v4*/, 39 /*csc_1_1*/, 40 /*b2i_ds_1_1*/, 41 /*lbff_crop_espa_1_4*/, 42 /*tnr7_spatial_1_1*/, 43 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 22 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 44 /*tnr7_ims_1_2*/, 47 /*tnr7_bc_1_2*/, 48 /*odr_tnr_sp_bc_rs4n_1_4*/, 23 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 51 /*tnr7_blend_1_1*/, 54 /*image_upscaler_1_1*/, 58 /*cas_1_1*/, 59 /*odr_ofs_mp_1_4*/, 60 /*b2i_ds_output_1_1*/, 61 /*odr_ofs_dp_1_4*/, 52 /*odr_tnr_fp_yuvn_1_4*/, 53 /*tnr_scaler_fp_1_1*/, 55 /*odr_tnr_scale_fp_yuv4n_1_4*/, 24 /*ifd_segmap_bnlm_1_4*/, 30 /*ifd_segmap_xnr_1_4*/, 35 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_tnr_bc_1_4*/, 49 /*ifd_segmap_tnr_blend_1_4*/, 56 /*ifd_segmap_cas_1_4*/, 25 /*smurf_bnlm_1_0*/, 31 /*smurf_xnr_1_0*/, 36 /*smurf_acm_1_0*/, 46 /*smurf_tnr_bc_1_0*/, 50 /*smurf_tnr_blend_1_0*/, 57 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[26].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 66, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 66, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[66] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xBF77D63187FFFE31, 0x3}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_gmv_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], gmv_statistics_1_1[46], odr_gmv_feature_1_4[47], odr_gmv_match_1_4[48], ifd_segmap_tnr_bc_1_4[49], smurf_tnr_bc_1_0[50], odr_tnr_sp_bc_rs4n_1_4[52], ifd_segmap_tnr_blend_1_4[53], smurf_tnr_blend_1_0[54], odr_tnr_fp_yuvn_1_4[56], tnr_scaler_fp_1_1[57], image_upscaler_1_1[58], odr_tnr_scale_fp_yuv4n_1_4[59], ifd_segmap_cas_1_4[60], smurf_cas_1_0[61], odr_ofs_mp_1_4[63], b2i_ds_output_1_1[64], odr_ofs_dp_1_4[65] } @@ -790,7 +1000,7 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf2WithGmvWit void LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 37, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 37, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[37] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1FEFC001F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[22], ccm_3a_2_0[23], fr_grid_1_0[24], b2i_ds_1_1[25], lbff_crop_espa_1_4[26], image_upscaler_1_1[27], odr_ofs_mp_1_4[29], b2i_ds_output_1_1[30], odr_ofs_dp_1_4[31], odr_awb_std_1_4[32], odr_awb_sat_1_4[33], aestatistics_2_1[34], odr_ae_1_4[35], odr_af_std_1_4[36] } @@ -810,7 +1020,7 @@ void LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3NoGmvNoTnrNoSapO void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 41, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 41, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[41] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1FFEFC001F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[22], ccm_3a_2_0[23], fr_grid_1_0[24], b2i_ds_1_1[25], lbff_crop_espa_1_4[26], image_upscaler_1_1[27], odr_ofs_mp_1_4[29], b2i_ds_output_1_1[30], odr_ofs_dp_1_4[31], odr_awb_std_1_4[32], odr_awb_sat_1_4[33], aestatistics_2_1[34], odr_ae_1_4[35], odr_af_std_1_4[36], ifd_gmv_1_4[37], gmv_statistics_1_1[38], odr_gmv_feature_1_4[39], odr_gmv_match_1_4[40] } @@ -830,7 +1040,7 @@ void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3WithGmvNoTnrNo void LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EECFF7C001F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[22], ccm_3a_2_0[23], fr_grid_1_0[24], b2i_ds_1_1[25], lbff_crop_espa_1_4[26], tnr_scaler_lb_1_1[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33], ifd_tnr_sp_bc_yuv4nm1_1_4[34], ifd_tnr_sp_bc_rs4nm1_1_4[35], odr_tnr_sp_bc_rs4n_1_4[38], ifd_tnr_fp_blend_yuvnm1_1_4[39], odr_tnr_fp_yuvn_1_4[41], tnr_scaler_fp_1_1[42], image_upscaler_1_1[43], odr_ofs_mp_1_4[45], b2i_ds_output_1_1[46], odr_ofs_dp_1_4[47], odr_tnr_scale_fp_yuv4n_1_4[48] } @@ -850,7 +1060,7 @@ void LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3NoGmvWithTnrNo void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 53, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 53, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[53] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EECFFF7C001F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[22], ccm_3a_2_0[23], fr_grid_1_0[24], b2i_ds_1_1[25], lbff_crop_espa_1_4[26], tnr_scaler_lb_1_1[28], odr_awb_std_1_4[29], odr_awb_sat_1_4[30], aestatistics_2_1[31], odr_ae_1_4[32], odr_af_std_1_4[33], ifd_gmv_1_4[34], gmv_statistics_1_1[35], odr_gmv_feature_1_4[36], odr_gmv_match_1_4[37], ifd_tnr_sp_bc_yuv4nm1_1_4[38], ifd_tnr_sp_bc_rs4nm1_1_4[39], odr_tnr_sp_bc_rs4n_1_4[42], ifd_tnr_fp_blend_yuvnm1_1_4[43], odr_tnr_fp_yuvn_1_4[45], tnr_scaler_fp_1_1[46], image_upscaler_1_1[47], odr_ofs_mp_1_4[49], b2i_ds_output_1_1[50], odr_ofs_dp_1_4[51], odr_tnr_scale_fp_yuv4n_1_4[52] } @@ -868,9 +1078,69 @@ void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3WithGmvWithT setInnerNode(None); } +void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 45, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[45] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1DF18C3FF1F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], image_upscaler_1_1[38], ifd_segmap_cas_1_4[39], smurf_cas_1_0[40], odr_ofs_mp_1_4[42], b2i_ds_output_1_1[43], odr_ofs_dp_1_4[44] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13E39C7F83C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, pext_1_0, rgb_ir_2_0}[1], {pafstatistics_1_2}[2], {odr_pdaf_1_4}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_segmap_bnlm_1_4}[11], {smurf_bnlm_1_0}[12], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[13], {ifd_segmap_xnr_1_4}[14], {smurf_xnr_1_0}[15], {xnr_5_4, vcr_3_1, glim_2_0}[16], {ifd_segmap_acm_1_4}[17], {smurf_acm_1_0}[18], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[19], {lbff_crop_espa_1_4}[20], {image_upscaler_1_1}[21], {ifd_segmap_cas_1_4}[22], {smurf_cas_1_0}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FF39C7FF3F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {pext_1_0}[2], {rgb_ir_2_0}[3], {pafstatistics_1_2}[4], {odr_pdaf_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1}[7], {rgbs_grid_1_1}[8], {ccm_3a_2_0}[9], {fr_grid_1_0}[10], {odr_awb_std_1_4}[11], {odr_awb_sat_1_4}[12], {aestatistics_2_1}[13], {odr_ae_1_4}[14], {odr_af_std_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {image_upscaler_1_1}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1}[30], {odr_ofs_mp_1_4}[31], {b2i_ds_output_1_1}[32], {odr_ofs_dp_1_4}[33] } + uint8_t systemApisSizes[45] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*pext_1_0*/, 0 /*rgb_ir_2_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[45] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*pext_1_0*/, 6 /*pafstatistics_1_2*/, 7 /*odr_pdaf_1_4*/, 8 /*ifd_lsc_1_4*/, 9 /*lsc_1_2*/, 10 /*gd_2_2*/, 11 /*wb_1_1*/, 22 /*bnlm_3_4*/, 23 /*bxt_demosaic*/, 24 /*vcsc_2_0_b*/, 25 /*gltm_2_0*/, 28 /*xnr_5_4*/, 29 /*vcr_3_1*/, 30 /*glim_2_0*/, 33 /*acm_1_2*/, 34 /*gammatm_v4*/, 35 /*csc_1_1*/, 36 /*b2i_ds_1_1*/, 37 /*lbff_crop_espa_1_4*/, 38 /*image_upscaler_1_1*/, 41 /*cas_1_1*/, 42 /*odr_ofs_mp_1_4*/, 43 /*b2i_ds_output_1_1*/, 44 /*odr_ofs_dp_1_4*/, 12 /*rgbs_grid_1_1*/, 15 /*odr_awb_std_1_4*/, 16 /*odr_awb_sat_1_4*/, 13 /*ccm_3a_2_0*/, 17 /*aestatistics_2_1*/, 18 /*odr_ae_1_4*/, 14 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_segmap_bnlm_1_4*/, 26 /*ifd_segmap_xnr_1_4*/, 31 /*ifd_segmap_acm_1_4*/, 39 /*ifd_segmap_cas_1_4*/, 21 /*smurf_bnlm_1_0*/, 27 /*smurf_xnr_1_0*/, 32 /*smurf_acm_1_0*/, 40 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[22].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1DFE3187FF1F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], gmv_statistics_1_1[40], odr_gmv_feature_1_4[41], odr_gmv_match_1_4[42], ifd_segmap_cas_1_4[43], smurf_cas_1_0[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13FC738FF83C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, pext_1_0, rgb_ir_2_0}[1], {pafstatistics_1_2}[2], {odr_pdaf_1_4}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {image_upscaler_1_1}[22], {gmv_statistics_1_1}[23], {odr_gmv_feature_1_4}[24], {odr_gmv_match_1_4}[25], {ifd_segmap_cas_1_4}[26], {smurf_cas_1_0}[27], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[28], {odr_ofs_dp_1_4}[29] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFE738FFF3F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {pext_1_0}[2], {rgb_ir_2_0}[3], {pafstatistics_1_2}[4], {odr_pdaf_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1}[7], {rgbs_grid_1_1}[8], {ccm_3a_2_0}[9], {fr_grid_1_0}[10], {odr_awb_std_1_4}[11], {odr_awb_sat_1_4}[12], {aestatistics_2_1}[13], {odr_ae_1_4}[14], {odr_af_std_1_4}[15], {ifd_gmv_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {image_upscaler_1_1}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_cas_1_4}[32], {smurf_cas_1_0}[33], {cas_1_1}[34], {odr_ofs_mp_1_4}[35], {b2i_ds_output_1_1}[36], {odr_ofs_dp_1_4}[37] } + uint8_t systemApisSizes[49] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*pext_1_0*/, 0 /*rgb_ir_2_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[49] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*pext_1_0*/, 6 /*pafstatistics_1_2*/, 7 /*odr_pdaf_1_4*/, 8 /*ifd_lsc_1_4*/, 9 /*lsc_1_2*/, 10 /*gd_2_2*/, 11 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 12 /*rgbs_grid_1_1*/, 15 /*odr_awb_std_1_4*/, 16 /*odr_awb_sat_1_4*/, 13 /*ccm_3a_2_0*/, 17 /*aestatistics_2_1*/, 18 /*odr_ae_1_4*/, 14 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_gmv_1_4*/, 40 /*gmv_statistics_1_1*/, 41 /*odr_gmv_feature_1_4*/, 42 /*odr_gmv_match_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 43 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 44 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 61, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[61] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1DFBB58C61FFF1F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_tnr_sp_bc_yuv4nm1_1_4[20], ifd_tnr_sp_bc_rs4nm1_1_4[21], ifd_tnr_fp_blend_yuvnm1_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], tnr_scaler_lb_1_1[42], ifd_segmap_tnr_bc_1_4[44], smurf_tnr_bc_1_0[45], odr_tnr_sp_bc_rs4n_1_4[47], ifd_segmap_tnr_blend_1_4[48], smurf_tnr_blend_1_0[49], odr_tnr_fp_yuvn_1_4[51], tnr_scaler_fp_1_1[52], image_upscaler_1_1[53], odr_tnr_scale_fp_yuv4n_1_4[54], ifd_segmap_cas_1_4[55], smurf_cas_1_0[56], odr_ofs_mp_1_4[58], b2i_ds_output_1_1[59], odr_ofs_dp_1_4[60] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13C77B1CE3FF83C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, pext_1_0, rgb_ir_2_0}[1], {pafstatistics_1_2}[2], {odr_pdaf_1_4}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {ifd_tnr_fp_blend_yuvnm1_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[24], {tnr7_ims_1_2}[25], {ifd_segmap_tnr_bc_1_4}[26], {smurf_tnr_bc_1_0}[27], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[28], {ifd_segmap_tnr_blend_1_4}[29], {smurf_tnr_blend_1_0}[30], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[31], {odr_tnr_scale_fp_yuv4n_1_4}[32], {ifd_segmap_cas_1_4}[33], {smurf_cas_1_0}[34], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFFFF9CE3FFF3F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {pext_1_0}[2], {rgb_ir_2_0}[3], {pafstatistics_1_2}[4], {odr_pdaf_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1}[7], {rgbs_grid_1_1}[8], {ccm_3a_2_0}[9], {fr_grid_1_0}[10], {odr_awb_std_1_4}[11], {odr_awb_sat_1_4}[12], {aestatistics_2_1}[13], {odr_ae_1_4}[14], {odr_af_std_1_4}[15], {ifd_tnr_sp_bc_yuv4nm1_1_4}[16], {ifd_tnr_sp_bc_rs4nm1_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {tnr7_spatial_1_1}[30], {tnr_scaler_lb_1_1}[31], {tnr7_ims_1_2}[32], {ifd_segmap_tnr_bc_1_4}[33], {smurf_tnr_bc_1_0}[34], {tnr7_bc_1_2}[35], {odr_tnr_sp_bc_rs4n_1_4}[36], {ifd_segmap_tnr_blend_1_4}[37], {smurf_tnr_blend_1_0}[38], {tnr7_blend_1_1}[39], {odr_tnr_fp_yuvn_1_4}[40], {tnr_scaler_fp_1_1}[41], {image_upscaler_1_1}[42], {odr_tnr_scale_fp_yuv4n_1_4}[43], {ifd_segmap_cas_1_4}[44], {smurf_cas_1_0}[45], {cas_1_1}[46], {odr_ofs_mp_1_4}[47], {b2i_ds_output_1_1}[48], {odr_ofs_dp_1_4}[49] } + uint8_t systemApisSizes[61] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*pext_1_0*/, 0 /*rgb_ir_2_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[61] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*pext_1_0*/, 6 /*pafstatistics_1_2*/, 7 /*odr_pdaf_1_4*/, 8 /*ifd_lsc_1_4*/, 9 /*lsc_1_2*/, 10 /*gd_2_2*/, 11 /*wb_1_1*/, 25 /*bnlm_3_4*/, 26 /*bxt_demosaic*/, 27 /*vcsc_2_0_b*/, 28 /*gltm_2_0*/, 31 /*xnr_5_4*/, 32 /*vcr_3_1*/, 33 /*glim_2_0*/, 36 /*acm_1_2*/, 37 /*gammatm_v4*/, 38 /*csc_1_1*/, 39 /*b2i_ds_1_1*/, 40 /*lbff_crop_espa_1_4*/, 41 /*tnr7_spatial_1_1*/, 42 /*tnr_scaler_lb_1_1*/, 12 /*rgbs_grid_1_1*/, 15 /*odr_awb_std_1_4*/, 16 /*odr_awb_sat_1_4*/, 13 /*ccm_3a_2_0*/, 17 /*aestatistics_2_1*/, 18 /*odr_ae_1_4*/, 14 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 21 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 43 /*tnr7_ims_1_2*/, 46 /*tnr7_bc_1_2*/, 47 /*odr_tnr_sp_bc_rs4n_1_4*/, 22 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 50 /*tnr7_blend_1_1*/, 53 /*image_upscaler_1_1*/, 57 /*cas_1_1*/, 58 /*odr_ofs_mp_1_4*/, 59 /*b2i_ds_output_1_1*/, 60 /*odr_ofs_dp_1_4*/, 51 /*odr_tnr_fp_yuvn_1_4*/, 52 /*tnr_scaler_fp_1_1*/, 54 /*odr_tnr_scale_fp_yuv4n_1_4*/, 23 /*ifd_segmap_bnlm_1_4*/, 29 /*ifd_segmap_xnr_1_4*/, 34 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_tnr_bc_1_4*/, 48 /*ifd_segmap_tnr_blend_1_4*/, 55 /*ifd_segmap_cas_1_4*/, 24 /*smurf_bnlm_1_0*/, 30 /*smurf_xnr_1_0*/, 35 /*smurf_acm_1_0*/, 45 /*smurf_tnr_bc_1_0*/, 49 /*smurf_tnr_blend_1_0*/, 56 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[25].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 65, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 65, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[65] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xDFBBEB18C3FFF1F1, 0x1}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], gmv_statistics_1_1[45], odr_gmv_feature_1_4[46], odr_gmv_match_1_4[47], ifd_segmap_tnr_bc_1_4[48], smurf_tnr_bc_1_0[49], odr_tnr_sp_bc_rs4n_1_4[51], ifd_segmap_tnr_blend_1_4[52], smurf_tnr_blend_1_0[53], odr_tnr_fp_yuvn_1_4[55], tnr_scaler_fp_1_1[56], image_upscaler_1_1[57], odr_tnr_scale_fp_yuv4n_1_4[58], ifd_segmap_cas_1_4[59], smurf_cas_1_0[60], odr_ofs_mp_1_4[62], b2i_ds_output_1_1[63], odr_ofs_dp_1_4[64] } @@ -890,7 +1160,7 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3WithGmvWit void IsysDolOuterNode::Init(IsysDolOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(2, NodeTypes::Isys, 2, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(2, NodeTypes::Isys, 2, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[2] = {11470 /*is_odr_a*/, 50407 /*is_odr_c*/}; uint64_t kernelsRcbBitmap[] = {0x3, 0x0}; // { is_odr_a[0], is_odr_c[1] } @@ -907,7 +1177,7 @@ void IsysDolOuterNode::Init(IsysDolOuterNodeConfiguration* selectedGraphConfigur void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::Init(LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 37, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 37, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[37] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EF0007FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[28], b2i_ds_1_1[29], lbff_crop_espa_1_4[30], image_upscaler_1_1[31], odr_ofs_mp_1_4[33], b2i_ds_output_1_1[34], odr_ofs_dp_1_4[35], odr_af_std_1_4[36] } @@ -927,7 +1197,7 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::Init(LbffDol2InputsNoGmvNoTnrNoSapO void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::Init(LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 41, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 41, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[41] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1FEF0007FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[28], b2i_ds_1_1[29], lbff_crop_espa_1_4[30], image_upscaler_1_1[31], odr_ofs_mp_1_4[33], b2i_ds_output_1_1[34], odr_ofs_dp_1_4[35], odr_af_std_1_4[36], ifd_gmv_1_4[37], gmv_statistics_1_1[38], odr_gmv_feature_1_4[39], odr_gmv_match_1_4[40] } @@ -947,7 +1217,7 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::Init(LbffDol2InputsWithGmvNoTnrNo void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::Init(LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EECF70007FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[28], b2i_ds_1_1[29], lbff_crop_espa_1_4[30], tnr_scaler_lb_1_1[32], odr_af_std_1_4[33], ifd_tnr_sp_bc_yuv4nm1_1_4[34], ifd_tnr_sp_bc_rs4nm1_1_4[35], odr_tnr_sp_bc_rs4n_1_4[38], ifd_tnr_fp_blend_yuvnm1_1_4[39], odr_tnr_fp_yuvn_1_4[41], tnr_scaler_fp_1_1[42], image_upscaler_1_1[43], odr_ofs_mp_1_4[45], b2i_ds_output_1_1[46], odr_ofs_dp_1_4[47], odr_tnr_scale_fp_yuv4n_1_4[48] } @@ -967,7 +1237,7 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::Init(LbffDol2InputsNoGmvWithTnrNo void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::Init(LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 53, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 53, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[53] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EECFF70007FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[28], b2i_ds_1_1[29], lbff_crop_espa_1_4[30], tnr_scaler_lb_1_1[32], odr_af_std_1_4[33], ifd_gmv_1_4[34], gmv_statistics_1_1[35], odr_gmv_feature_1_4[36], odr_gmv_match_1_4[37], ifd_tnr_sp_bc_yuv4nm1_1_4[38], ifd_tnr_sp_bc_rs4nm1_1_4[39], odr_tnr_sp_bc_rs4n_1_4[42], ifd_tnr_fp_blend_yuvnm1_1_4[43], odr_tnr_fp_yuvn_1_4[45], tnr_scaler_fp_1_1[46], image_upscaler_1_1[47], odr_ofs_mp_1_4[49], b2i_ds_output_1_1[50], odr_ofs_dp_1_4[51], odr_tnr_scale_fp_yuv4n_1_4[52] } @@ -985,9 +1255,266 @@ void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::Init(LbffDol2InputsWithGmvWithT setInnerNode(None); } +void IsysDolWithCvOuterNode::Init(IsysDolWithCvOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(2, NodeTypes::Isys, 5, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[5] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/, 50407 /*is_odr_c*/}; + uint64_t kernelsRcbBitmap[] = {0x1B, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3], is_odr_c[4] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x1E, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_c}[4] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1F, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_c}[4] } + uint8_t systemApisSizes[5] = {0 /*crop_bpp_adjust_1_0*/, 34 /*upipe_1_0*/, 20 /*isys_drainer_1_0*/, 0 /*is_odr_a*/, 0 /*is_odr_c*/}; + uint16_t runKernelConfigOrder[5] = {0 /*crop_bpp_adjust_1_0*/, 1 /*upipe_1_0*/, 2 /*isys_drainer_1_0*/, 3 /*is_odr_a*/, 4 /*is_odr_c*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // set default inner Node + setInnerNode(None); +} + +void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::Init(LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 45, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[45] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1DF18C3C7FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], image_upscaler_1_1[38], ifd_segmap_cas_1_4[39], smurf_cas_1_0[40], odr_ofs_mp_1_4[42], b2i_ds_output_1_1[43], odr_ofs_dp_1_4[44] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13E39C78FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_segmap_bnlm_1_4}[11], {smurf_bnlm_1_0}[12], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[13], {ifd_segmap_xnr_1_4}[14], {smurf_xnr_1_0}[15], {xnr_5_4, vcr_3_1, glim_2_0}[16], {ifd_segmap_acm_1_4}[17], {smurf_acm_1_0}[18], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[19], {lbff_crop_espa_1_4}[20], {image_upscaler_1_1}[21], {ifd_segmap_cas_1_4}[22], {smurf_cas_1_0}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FF39C7CFFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1}[23], {b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {image_upscaler_1_1}[26], {ifd_segmap_cas_1_4}[27], {smurf_cas_1_0}[28], {cas_1_1}[29], {odr_ofs_mp_1_4}[30], {b2i_ds_output_1_1}[31], {odr_ofs_dp_1_4}[32] } + uint8_t systemApisSizes[45] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[45] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 22 /*bnlm_3_4*/, 23 /*bxt_demosaic*/, 24 /*vcsc_2_0_b*/, 25 /*gltm_2_0*/, 28 /*xnr_5_4*/, 29 /*vcr_3_1*/, 30 /*glim_2_0*/, 33 /*acm_1_2*/, 34 /*gammatm_v4*/, 35 /*csc_1_1*/, 36 /*b2i_ds_1_1*/, 37 /*lbff_crop_espa_1_4*/, 38 /*image_upscaler_1_1*/, 41 /*cas_1_1*/, 42 /*odr_ofs_mp_1_4*/, 43 /*b2i_ds_output_1_1*/, 44 /*odr_ofs_dp_1_4*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_segmap_bnlm_1_4*/, 26 /*ifd_segmap_xnr_1_4*/, 31 /*ifd_segmap_acm_1_4*/, 39 /*ifd_segmap_cas_1_4*/, 21 /*smurf_bnlm_1_0*/, 27 /*smurf_xnr_1_0*/, 32 /*smurf_acm_1_0*/, 40 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[22].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffDol2InputsWithGmvNoTnrWithSapOuterNode::Init(LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1DFE3187C7FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], gmv_statistics_1_1[40], odr_gmv_feature_1_4[41], odr_gmv_match_1_4[42], ifd_segmap_cas_1_4[43], smurf_cas_1_0[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13FC738F8FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {image_upscaler_1_1}[22], {gmv_statistics_1_1}[23], {odr_gmv_feature_1_4}[24], {odr_gmv_match_1_4}[25], {ifd_segmap_cas_1_4}[26], {smurf_cas_1_0}[27], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[28], {odr_ofs_dp_1_4}[29] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFE738FCFFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_gmv_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {image_upscaler_1_1}[27], {gmv_statistics_1_1}[28], {odr_gmv_feature_1_4}[29], {odr_gmv_match_1_4}[30], {ifd_segmap_cas_1_4}[31], {smurf_cas_1_0}[32], {cas_1_1}[33], {odr_ofs_mp_1_4}[34], {b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36] } + uint8_t systemApisSizes[49] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[49] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_gmv_1_4*/, 40 /*gmv_statistics_1_1*/, 41 /*odr_gmv_feature_1_4*/, 42 /*odr_gmv_match_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 43 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 44 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::Init(LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 61, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[61] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1DFBB58C61FC7FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_tnr_sp_bc_yuv4nm1_1_4[20], ifd_tnr_sp_bc_rs4nm1_1_4[21], ifd_tnr_fp_blend_yuvnm1_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], tnr_scaler_lb_1_1[42], ifd_segmap_tnr_bc_1_4[44], smurf_tnr_bc_1_0[45], odr_tnr_sp_bc_rs4n_1_4[47], ifd_segmap_tnr_blend_1_4[48], smurf_tnr_blend_1_0[49], odr_tnr_fp_yuvn_1_4[51], tnr_scaler_fp_1_1[52], image_upscaler_1_1[53], odr_tnr_scale_fp_yuv4n_1_4[54], ifd_segmap_cas_1_4[55], smurf_cas_1_0[56], odr_ofs_mp_1_4[58], b2i_ds_output_1_1[59], odr_ofs_dp_1_4[60] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13C77B1CE3F8FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {ifd_tnr_fp_blend_yuvnm1_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[24], {tnr7_ims_1_2}[25], {ifd_segmap_tnr_bc_1_4}[26], {smurf_tnr_bc_1_0}[27], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[28], {ifd_segmap_tnr_blend_1_4}[29], {smurf_tnr_blend_1_0}[30], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[31], {odr_tnr_scale_fp_yuv4n_1_4}[32], {ifd_segmap_cas_1_4}[33], {smurf_cas_1_0}[34], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFFFF9CE3FCFFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_tnr_sp_bc_yuv4nm1_1_4}[15], {ifd_tnr_sp_bc_rs4nm1_1_4}[16], {ifd_tnr_fp_blend_yuvnm1_1_4}[17], {ifd_segmap_bnlm_1_4}[18], {smurf_bnlm_1_0}[19], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[20], {ifd_segmap_xnr_1_4}[21], {smurf_xnr_1_0}[22], {xnr_5_4, vcr_3_1, glim_2_0}[23], {ifd_segmap_acm_1_4}[24], {smurf_acm_1_0}[25], {acm_1_2, gammatm_v4, csc_1_1}[26], {b2i_ds_1_1}[27], {lbff_crop_espa_1_4}[28], {tnr7_spatial_1_1}[29], {tnr_scaler_lb_1_1}[30], {tnr7_ims_1_2}[31], {ifd_segmap_tnr_bc_1_4}[32], {smurf_tnr_bc_1_0}[33], {tnr7_bc_1_2}[34], {odr_tnr_sp_bc_rs4n_1_4}[35], {ifd_segmap_tnr_blend_1_4}[36], {smurf_tnr_blend_1_0}[37], {tnr7_blend_1_1}[38], {odr_tnr_fp_yuvn_1_4}[39], {tnr_scaler_fp_1_1}[40], {image_upscaler_1_1}[41], {odr_tnr_scale_fp_yuv4n_1_4}[42], {ifd_segmap_cas_1_4}[43], {smurf_cas_1_0}[44], {cas_1_1}[45], {odr_ofs_mp_1_4}[46], {b2i_ds_output_1_1}[47], {odr_ofs_dp_1_4}[48] } + uint8_t systemApisSizes[61] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[61] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 25 /*bnlm_3_4*/, 26 /*bxt_demosaic*/, 27 /*vcsc_2_0_b*/, 28 /*gltm_2_0*/, 31 /*xnr_5_4*/, 32 /*vcr_3_1*/, 33 /*glim_2_0*/, 36 /*acm_1_2*/, 37 /*gammatm_v4*/, 38 /*csc_1_1*/, 39 /*b2i_ds_1_1*/, 40 /*lbff_crop_espa_1_4*/, 41 /*tnr7_spatial_1_1*/, 42 /*tnr_scaler_lb_1_1*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 21 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 43 /*tnr7_ims_1_2*/, 46 /*tnr7_bc_1_2*/, 47 /*odr_tnr_sp_bc_rs4n_1_4*/, 22 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 50 /*tnr7_blend_1_1*/, 53 /*image_upscaler_1_1*/, 57 /*cas_1_1*/, 58 /*odr_ofs_mp_1_4*/, 59 /*b2i_ds_output_1_1*/, 60 /*odr_ofs_dp_1_4*/, 51 /*odr_tnr_fp_yuvn_1_4*/, 52 /*tnr_scaler_fp_1_1*/, 54 /*odr_tnr_scale_fp_yuv4n_1_4*/, 23 /*ifd_segmap_bnlm_1_4*/, 29 /*ifd_segmap_xnr_1_4*/, 34 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_tnr_bc_1_4*/, 48 /*ifd_segmap_tnr_blend_1_4*/, 55 /*ifd_segmap_cas_1_4*/, 24 /*smurf_bnlm_1_0*/, 30 /*smurf_xnr_1_0*/, 35 /*smurf_acm_1_0*/, 45 /*smurf_tnr_bc_1_0*/, 49 /*smurf_tnr_blend_1_0*/, 56 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[25].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffDol2InputsWithGmvWithTnrWithSapOuterNode::Init(LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 65, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[65] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0xDFBBEB18C3FC7FC3, 0x1}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], gmv_statistics_1_1[45], odr_gmv_feature_1_4[46], odr_gmv_match_1_4[47], ifd_segmap_tnr_bc_1_4[48], smurf_tnr_bc_1_0[49], odr_tnr_sp_bc_rs4n_1_4[51], ifd_segmap_tnr_blend_1_4[52], smurf_tnr_blend_1_0[53], odr_tnr_fp_yuvn_1_4[55], tnr_scaler_fp_1_1[56], image_upscaler_1_1[57], odr_tnr_scale_fp_yuv4n_1_4[58], ifd_segmap_cas_1_4[59], smurf_cas_1_0[60], odr_ofs_mp_1_4[62], b2i_ds_output_1_1[63], odr_ofs_dp_1_4[64] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3C77F639C7F8FE06, 0x1}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {ifd_tnr_sp_bc_yuv4nm1_1_4}[12], {ifd_tnr_sp_bc_rs4nm1_1_4}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[23], {lbff_crop_espa_1_4}[24], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[25], {tnr7_ims_1_2}[26], {gmv_statistics_1_1}[27], {odr_gmv_feature_1_4}[28], {odr_gmv_match_1_4}[29], {ifd_segmap_tnr_bc_1_4}[30], {smurf_tnr_bc_1_0}[31], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[32], {ifd_segmap_tnr_blend_1_4}[33], {smurf_tnr_blend_1_0}[34], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[35], {odr_tnr_scale_fp_yuv4n_1_4}[36], {ifd_segmap_cas_1_4}[37], {smurf_cas_1_0}[38], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[39], {odr_ofs_dp_1_4}[40] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFF39C7FCFFC7, 0x1}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_gmv_1_4}[15], {ifd_tnr_sp_bc_yuv4nm1_1_4}[16], {ifd_tnr_sp_bc_rs4nm1_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {tnr7_spatial_1_1}[30], {tnr_scaler_lb_1_1}[31], {tnr7_ims_1_2}[32], {gmv_statistics_1_1}[33], {odr_gmv_feature_1_4}[34], {odr_gmv_match_1_4}[35], {ifd_segmap_tnr_bc_1_4}[36], {smurf_tnr_bc_1_0}[37], {tnr7_bc_1_2}[38], {odr_tnr_sp_bc_rs4n_1_4}[39], {ifd_segmap_tnr_blend_1_4}[40], {smurf_tnr_blend_1_0}[41], {tnr7_blend_1_1}[42], {odr_tnr_fp_yuvn_1_4}[43], {tnr_scaler_fp_1_1}[44], {image_upscaler_1_1}[45], {odr_tnr_scale_fp_yuv4n_1_4}[46], {ifd_segmap_cas_1_4}[47], {smurf_cas_1_0}[48], {cas_1_1}[49], {odr_ofs_mp_1_4}[50], {b2i_ds_output_1_1}[51], {odr_ofs_dp_1_4}[52] } + uint8_t systemApisSizes[65] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[65] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 26 /*bnlm_3_4*/, 27 /*bxt_demosaic*/, 28 /*vcsc_2_0_b*/, 29 /*gltm_2_0*/, 32 /*xnr_5_4*/, 33 /*vcr_3_1*/, 34 /*glim_2_0*/, 37 /*acm_1_2*/, 38 /*gammatm_v4*/, 39 /*csc_1_1*/, 40 /*b2i_ds_1_1*/, 41 /*lbff_crop_espa_1_4*/, 42 /*tnr7_spatial_1_1*/, 43 /*tnr_scaler_lb_1_1*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_gmv_1_4*/, 45 /*gmv_statistics_1_1*/, 46 /*odr_gmv_feature_1_4*/, 47 /*odr_gmv_match_1_4*/, 21 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 22 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 44 /*tnr7_ims_1_2*/, 50 /*tnr7_bc_1_2*/, 51 /*odr_tnr_sp_bc_rs4n_1_4*/, 23 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 54 /*tnr7_blend_1_1*/, 57 /*image_upscaler_1_1*/, 61 /*cas_1_1*/, 62 /*odr_ofs_mp_1_4*/, 63 /*b2i_ds_output_1_1*/, 64 /*odr_ofs_dp_1_4*/, 55 /*odr_tnr_fp_yuvn_1_4*/, 56 /*tnr_scaler_fp_1_1*/, 58 /*odr_tnr_scale_fp_yuv4n_1_4*/, 24 /*ifd_segmap_bnlm_1_4*/, 30 /*ifd_segmap_xnr_1_4*/, 35 /*ifd_segmap_acm_1_4*/, 48 /*ifd_segmap_tnr_bc_1_4*/, 52 /*ifd_segmap_tnr_blend_1_4*/, 59 /*ifd_segmap_cas_1_4*/, 25 /*smurf_bnlm_1_0*/, 31 /*smurf_xnr_1_0*/, 36 /*smurf_acm_1_0*/, 49 /*smurf_tnr_bc_1_0*/, 53 /*smurf_tnr_blend_1_0*/, 60 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[26].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 39, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[39] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x7FFBF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], image_upscaler_1_1[25], odr_ofs_mp_1_4[27], b2i_ds_output_1_1[28], odr_ofs_dp_1_4[29], odr_awb_std_1_4[30], odr_awb_sat_1_4[31], aestatistics_2_1[32], odr_ae_1_4[33], odr_af_std_1_4[34], ifd_pdaf_1_4[35], pext_1_0[36], pafstatistics_1_2[37], odr_pdaf_1_4[38] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x7FE70000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {image_upscaler_1_1}[5], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[6], {odr_ofs_dp_1_4}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {image_upscaler_1_1}[11], {cas_1_1}[12], {odr_ofs_mp_1_4}[13], {b2i_ds_output_1_1}[14], {odr_ofs_dp_1_4}[15], {odr_awb_std_1_4}[16], {odr_awb_sat_1_4}[17], {aestatistics_2_1}[18], {odr_ae_1_4}[19], {odr_af_std_1_4}[20], {ifd_pdaf_1_4}[21], {pext_1_0}[22], {pafstatistics_1_2}[23], {odr_pdaf_1_4}[24] } + uint8_t systemApisSizes[39] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/}; + uint16_t runKernelConfigOrder[39] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*image_upscaler_1_1*/, 26 /*cas_1_1*/, 27 /*odr_ofs_mp_1_4*/, 28 /*b2i_ds_output_1_1*/, 29 /*odr_ofs_dp_1_4*/, 20 /*rgbs_grid_1_1*/, 30 /*odr_awb_std_1_4*/, 31 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 32 /*aestatistics_2_1*/, 33 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 34 /*odr_af_std_1_4*/, 35 /*ifd_pdaf_1_4*/, 36 /*pext_1_0*/, 37 /*pafstatistics_1_2*/, 38 /*odr_pdaf_1_4*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 43, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[43] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x7FFFBF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], image_upscaler_1_1[25], odr_ofs_mp_1_4[27], b2i_ds_output_1_1[28], odr_ofs_dp_1_4[29], odr_awb_std_1_4[30], odr_awb_sat_1_4[31], aestatistics_2_1[32], odr_ae_1_4[33], odr_af_std_1_4[34], ifd_pdaf_1_4[35], pext_1_0[36], pafstatistics_1_2[37], odr_pdaf_1_4[38], ifd_gmv_1_4[39], gmv_statistics_1_1[40], odr_gmv_feature_1_4[41], odr_gmv_match_1_4[42] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x7FFE70000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {image_upscaler_1_1}[5], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[6], {odr_ofs_dp_1_4}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_gmv_1_4}[17], {gmv_statistics_1_1}[18], {odr_gmv_feature_1_4}[19], {odr_gmv_match_1_4}[20] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FFFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {image_upscaler_1_1}[11], {cas_1_1}[12], {odr_ofs_mp_1_4}[13], {b2i_ds_output_1_1}[14], {odr_ofs_dp_1_4}[15], {odr_awb_std_1_4}[16], {odr_awb_sat_1_4}[17], {aestatistics_2_1}[18], {odr_ae_1_4}[19], {odr_af_std_1_4}[20], {ifd_pdaf_1_4}[21], {pext_1_0}[22], {pafstatistics_1_2}[23], {odr_pdaf_1_4}[24], {ifd_gmv_1_4}[25], {gmv_statistics_1_1}[26], {odr_gmv_feature_1_4}[27], {odr_gmv_match_1_4}[28] } + uint8_t systemApisSizes[43] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/}; + uint16_t runKernelConfigOrder[43] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*image_upscaler_1_1*/, 26 /*cas_1_1*/, 27 /*odr_ofs_mp_1_4*/, 28 /*b2i_ds_output_1_1*/, 29 /*odr_ofs_dp_1_4*/, 20 /*rgbs_grid_1_1*/, 30 /*odr_awb_std_1_4*/, 31 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 32 /*aestatistics_2_1*/, 33 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 34 /*odr_af_std_1_4*/, 35 /*ifd_pdaf_1_4*/, 36 /*pext_1_0*/, 37 /*pafstatistics_1_2*/, 38 /*odr_pdaf_1_4*/, 39 /*ifd_gmv_1_4*/, 40 /*gmv_statistics_1_1*/, 41 /*odr_gmv_feature_1_4*/, 42 /*odr_gmv_match_1_4*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 51, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[51] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x7BB3FFDF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], tnr_scaler_lb_1_1[26], odr_awb_std_1_4[27], odr_awb_sat_1_4[28], aestatistics_2_1[29], odr_ae_1_4[30], odr_af_std_1_4[31], ifd_pdaf_1_4[32], pext_1_0[33], pafstatistics_1_2[34], odr_pdaf_1_4[35], ifd_tnr_sp_bc_yuv4nm1_1_4[36], ifd_tnr_sp_bc_rs4nm1_1_4[37], odr_tnr_sp_bc_rs4n_1_4[40], ifd_tnr_fp_blend_yuvnm1_1_4[41], odr_tnr_fp_yuvn_1_4[43], tnr_scaler_fp_1_1[44], image_upscaler_1_1[45], odr_ofs_mp_1_4[47], b2i_ds_output_1_1[48], odr_ofs_dp_1_4[49], odr_tnr_scale_fp_yuv4n_1_4[50] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x6467FFB0000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_pdaf_1_4}[11], {pext_1_0}[12], {pafstatistics_1_2}[13], {odr_pdaf_1_4}[14], {ifd_tnr_sp_bc_yuv4nm1_1_4}[15], {ifd_tnr_sp_bc_rs4nm1_1_4}[16], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[19], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[20], {odr_ofs_dp_1_4}[21], {odr_tnr_scale_fp_yuv4n_1_4}[22] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FF7FFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {tnr7_spatial_1_1}[11], {tnr_scaler_lb_1_1}[12], {odr_awb_std_1_4}[13], {odr_awb_sat_1_4}[14], {aestatistics_2_1}[15], {odr_ae_1_4}[16], {odr_af_std_1_4}[17], {ifd_pdaf_1_4}[18], {pext_1_0}[19], {pafstatistics_1_2}[20], {odr_pdaf_1_4}[21], {ifd_tnr_sp_bc_yuv4nm1_1_4}[22], {ifd_tnr_sp_bc_rs4nm1_1_4}[23], {tnr7_ims_1_2, tnr7_bc_1_2}[24], {odr_tnr_sp_bc_rs4n_1_4}[25], {ifd_tnr_fp_blend_yuvnm1_1_4}[26], {tnr7_blend_1_1}[27], {odr_tnr_fp_yuvn_1_4}[28], {tnr_scaler_fp_1_1}[29], {image_upscaler_1_1}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34], {odr_tnr_scale_fp_yuv4n_1_4}[35] } + uint8_t systemApisSizes[51] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t runKernelConfigOrder[51] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*tnr7_spatial_1_1*/, 26 /*tnr_scaler_lb_1_1*/, 20 /*rgbs_grid_1_1*/, 27 /*odr_awb_std_1_4*/, 28 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 29 /*aestatistics_2_1*/, 30 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 31 /*odr_af_std_1_4*/, 32 /*ifd_pdaf_1_4*/, 33 /*pext_1_0*/, 34 /*pafstatistics_1_2*/, 35 /*odr_pdaf_1_4*/, 36 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 37 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 38 /*tnr7_ims_1_2*/, 39 /*tnr7_bc_1_2*/, 40 /*odr_tnr_sp_bc_rs4n_1_4*/, 41 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 42 /*tnr7_blend_1_1*/, 45 /*image_upscaler_1_1*/, 46 /*cas_1_1*/, 47 /*odr_ofs_mp_1_4*/, 48 /*b2i_ds_output_1_1*/, 49 /*odr_ofs_dp_1_4*/, 43 /*odr_tnr_fp_yuvn_1_4*/, 44 /*tnr_scaler_fp_1_1*/, 50 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 55, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[55] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x7BB3FFFDF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], tnr_scaler_lb_1_1[26], odr_awb_std_1_4[27], odr_awb_sat_1_4[28], aestatistics_2_1[29], odr_ae_1_4[30], odr_af_std_1_4[31], ifd_pdaf_1_4[32], pext_1_0[33], pafstatistics_1_2[34], odr_pdaf_1_4[35], ifd_gmv_1_4[36], gmv_statistics_1_1[37], odr_gmv_feature_1_4[38], odr_gmv_match_1_4[39], ifd_tnr_sp_bc_yuv4nm1_1_4[40], ifd_tnr_sp_bc_rs4nm1_1_4[41], odr_tnr_sp_bc_rs4n_1_4[44], ifd_tnr_fp_blend_yuvnm1_1_4[45], odr_tnr_fp_yuvn_1_4[47], tnr_scaler_fp_1_1[48], image_upscaler_1_1[49], odr_ofs_mp_1_4[51], b2i_ds_output_1_1[52], odr_ofs_dp_1_4[53], odr_tnr_scale_fp_yuv4n_1_4[54] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x6467FFFB0000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_pdaf_1_4}[11], {pext_1_0}[12], {pafstatistics_1_2}[13], {odr_pdaf_1_4}[14], {ifd_gmv_1_4}[15], {gmv_statistics_1_1}[16], {odr_gmv_feature_1_4}[17], {odr_gmv_match_1_4}[18], {ifd_tnr_sp_bc_yuv4nm1_1_4}[19], {ifd_tnr_sp_bc_rs4nm1_1_4}[20], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[21], {ifd_tnr_fp_blend_yuvnm1_1_4}[22], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25], {odr_tnr_scale_fp_yuv4n_1_4}[26] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FF7FFFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {tnr7_spatial_1_1}[11], {tnr_scaler_lb_1_1}[12], {odr_awb_std_1_4}[13], {odr_awb_sat_1_4}[14], {aestatistics_2_1}[15], {odr_ae_1_4}[16], {odr_af_std_1_4}[17], {ifd_pdaf_1_4}[18], {pext_1_0}[19], {pafstatistics_1_2}[20], {odr_pdaf_1_4}[21], {ifd_gmv_1_4}[22], {gmv_statistics_1_1}[23], {odr_gmv_feature_1_4}[24], {odr_gmv_match_1_4}[25], {ifd_tnr_sp_bc_yuv4nm1_1_4}[26], {ifd_tnr_sp_bc_rs4nm1_1_4}[27], {tnr7_ims_1_2, tnr7_bc_1_2}[28], {odr_tnr_sp_bc_rs4n_1_4}[29], {ifd_tnr_fp_blend_yuvnm1_1_4}[30], {tnr7_blend_1_1}[31], {odr_tnr_fp_yuvn_1_4}[32], {tnr_scaler_fp_1_1}[33], {image_upscaler_1_1}[34], {cas_1_1}[35], {odr_ofs_mp_1_4}[36], {b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38], {odr_tnr_scale_fp_yuv4n_1_4}[39] } + uint8_t systemApisSizes[55] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t runKernelConfigOrder[55] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*tnr7_spatial_1_1*/, 26 /*tnr_scaler_lb_1_1*/, 20 /*rgbs_grid_1_1*/, 27 /*odr_awb_std_1_4*/, 28 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 29 /*aestatistics_2_1*/, 30 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 31 /*odr_af_std_1_4*/, 32 /*ifd_pdaf_1_4*/, 33 /*pext_1_0*/, 34 /*pafstatistics_1_2*/, 35 /*odr_pdaf_1_4*/, 36 /*ifd_gmv_1_4*/, 37 /*gmv_statistics_1_1*/, 38 /*odr_gmv_feature_1_4*/, 39 /*odr_gmv_match_1_4*/, 40 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 41 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 42 /*tnr7_ims_1_2*/, 43 /*tnr7_bc_1_2*/, 44 /*odr_tnr_sp_bc_rs4n_1_4*/, 45 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 46 /*tnr7_blend_1_1*/, 49 /*image_upscaler_1_1*/, 50 /*cas_1_1*/, 51 /*odr_ofs_mp_1_4*/, 52 /*b2i_ds_output_1_1*/, 53 /*odr_ofs_dp_1_4*/, 47 /*odr_tnr_fp_yuvn_1_4*/, 48 /*tnr_scaler_fp_1_1*/, 54 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 47, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[47] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x77C630FFFC71, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], image_upscaler_1_1[40], ifd_segmap_cas_1_4[41], smurf_cas_1_0[42], odr_ofs_mp_1_4[44], b2i_ds_output_1_1[45], odr_ofs_dp_1_4[46] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x4F8E71FFE0C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {image_upscaler_1_1}[23], {ifd_segmap_cas_1_4}[24], {smurf_cas_1_0}[25], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[26], {odr_ofs_dp_1_4}[27] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FCE71FFFCF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_segmap_bnlm_1_4}[18], {smurf_bnlm_1_0}[19], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[20], {ifd_segmap_xnr_1_4}[21], {smurf_xnr_1_0}[22], {xnr_5_4, vcr_3_1, glim_2_0}[23], {ifd_segmap_acm_1_4}[24], {smurf_acm_1_0}[25], {acm_1_2, gammatm_v4, csc_1_1}[26], {b2i_ds_1_1}[27], {lbff_crop_espa_1_4}[28], {image_upscaler_1_1}[29], {ifd_segmap_cas_1_4}[30], {smurf_cas_1_0}[31], {cas_1_1}[32], {odr_ofs_mp_1_4}[33], {b2i_ds_output_1_1}[34], {odr_ofs_dp_1_4}[35] } + uint8_t systemApisSizes[47] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[47] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 24 /*bnlm_3_4*/, 25 /*bxt_demosaic*/, 26 /*vcsc_2_0_b*/, 27 /*gltm_2_0*/, 30 /*xnr_5_4*/, 31 /*vcr_3_1*/, 32 /*glim_2_0*/, 35 /*acm_1_2*/, 36 /*gammatm_v4*/, 37 /*csc_1_1*/, 38 /*b2i_ds_1_1*/, 39 /*lbff_crop_espa_1_4*/, 40 /*image_upscaler_1_1*/, 43 /*cas_1_1*/, 44 /*odr_ofs_mp_1_4*/, 45 /*b2i_ds_output_1_1*/, 46 /*odr_ofs_dp_1_4*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_segmap_bnlm_1_4*/, 28 /*ifd_segmap_xnr_1_4*/, 33 /*ifd_segmap_acm_1_4*/, 41 /*ifd_segmap_cas_1_4*/, 23 /*smurf_bnlm_1_0*/, 29 /*smurf_xnr_1_0*/, 34 /*smurf_acm_1_0*/, 42 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[24].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 51, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[51] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x77F8C61FFFC71, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_gmv_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], image_upscaler_1_1[41], gmv_statistics_1_1[42], odr_gmv_feature_1_4[43], odr_gmv_match_1_4[44], ifd_segmap_cas_1_4[45], smurf_cas_1_0[46], odr_ofs_mp_1_4[48], b2i_ds_output_1_1[49], odr_ofs_dp_1_4[50] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x4FF1CE3FFE0C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {image_upscaler_1_1}[24], {gmv_statistics_1_1}[25], {odr_gmv_feature_1_4}[26], {odr_gmv_match_1_4}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[30], {odr_ofs_dp_1_4}[31] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FF9CE3FFFCF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_gmv_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {image_upscaler_1_1}[30], {gmv_statistics_1_1}[31], {odr_gmv_feature_1_4}[32], {odr_gmv_match_1_4}[33], {ifd_segmap_cas_1_4}[34], {smurf_cas_1_0}[35], {cas_1_1}[36], {odr_ofs_mp_1_4}[37], {b2i_ds_output_1_1}[38], {odr_ofs_dp_1_4}[39] } + uint8_t systemApisSizes[51] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[51] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 25 /*bnlm_3_4*/, 26 /*bxt_demosaic*/, 27 /*vcsc_2_0_b*/, 28 /*gltm_2_0*/, 31 /*xnr_5_4*/, 32 /*vcr_3_1*/, 33 /*glim_2_0*/, 36 /*acm_1_2*/, 37 /*gammatm_v4*/, 38 /*csc_1_1*/, 39 /*b2i_ds_1_1*/, 40 /*lbff_crop_espa_1_4*/, 41 /*image_upscaler_1_1*/, 47 /*cas_1_1*/, 48 /*odr_ofs_mp_1_4*/, 49 /*b2i_ds_output_1_1*/, 50 /*odr_ofs_dp_1_4*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_gmv_1_4*/, 42 /*gmv_statistics_1_1*/, 43 /*odr_gmv_feature_1_4*/, 44 /*odr_gmv_match_1_4*/, 23 /*ifd_segmap_bnlm_1_4*/, 29 /*ifd_segmap_xnr_1_4*/, 34 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_cas_1_4*/, 24 /*smurf_bnlm_1_0*/, 30 /*smurf_xnr_1_0*/, 35 /*smurf_acm_1_0*/, 46 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[25].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 63, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[63] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x77EED63187FFFC71, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], ifd_segmap_tnr_bc_1_4[46], smurf_tnr_bc_1_0[47], odr_tnr_sp_bc_rs4n_1_4[49], ifd_segmap_tnr_blend_1_4[50], smurf_tnr_blend_1_0[51], odr_tnr_fp_yuvn_1_4[53], tnr_scaler_fp_1_1[54], image_upscaler_1_1[55], odr_tnr_scale_fp_yuv4n_1_4[56], ifd_segmap_cas_1_4[57], smurf_cas_1_0[58], odr_ofs_mp_1_4[60], b2i_ds_output_1_1[61], odr_ofs_dp_1_4[62] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x4F1DEC738FFFE0C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[26], {tnr7_ims_1_2}[27], {ifd_segmap_tnr_bc_1_4}[28], {smurf_tnr_bc_1_0}[29], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[30], {ifd_segmap_tnr_blend_1_4}[31], {smurf_tnr_blend_1_0}[32], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[33], {odr_tnr_scale_fp_yuv4n_1_4}[34], {ifd_segmap_cas_1_4}[35], {smurf_cas_1_0}[36], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FFFFE738FFFFCF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_tnr_sp_bc_yuv4nm1_1_4}[18], {ifd_tnr_sp_bc_rs4nm1_1_4}[19], {ifd_tnr_fp_blend_yuvnm1_1_4}[20], {ifd_segmap_bnlm_1_4}[21], {smurf_bnlm_1_0}[22], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[23], {ifd_segmap_xnr_1_4}[24], {smurf_xnr_1_0}[25], {xnr_5_4, vcr_3_1, glim_2_0}[26], {ifd_segmap_acm_1_4}[27], {smurf_acm_1_0}[28], {acm_1_2, gammatm_v4, csc_1_1}[29], {b2i_ds_1_1}[30], {lbff_crop_espa_1_4}[31], {tnr7_spatial_1_1}[32], {tnr_scaler_lb_1_1}[33], {tnr7_ims_1_2}[34], {ifd_segmap_tnr_bc_1_4}[35], {smurf_tnr_bc_1_0}[36], {tnr7_bc_1_2}[37], {odr_tnr_sp_bc_rs4n_1_4}[38], {ifd_segmap_tnr_blend_1_4}[39], {smurf_tnr_blend_1_0}[40], {tnr7_blend_1_1}[41], {odr_tnr_fp_yuvn_1_4}[42], {tnr_scaler_fp_1_1}[43], {image_upscaler_1_1}[44], {odr_tnr_scale_fp_yuv4n_1_4}[45], {ifd_segmap_cas_1_4}[46], {smurf_cas_1_0}[47], {cas_1_1}[48], {odr_ofs_mp_1_4}[49], {b2i_ds_output_1_1}[50], {odr_ofs_dp_1_4}[51] } + uint8_t systemApisSizes[63] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[63] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 27 /*bnlm_3_4*/, 28 /*bxt_demosaic*/, 29 /*vcsc_2_0_b*/, 30 /*gltm_2_0*/, 33 /*xnr_5_4*/, 34 /*vcr_3_1*/, 35 /*glim_2_0*/, 38 /*acm_1_2*/, 39 /*gammatm_v4*/, 40 /*csc_1_1*/, 41 /*b2i_ds_1_1*/, 42 /*lbff_crop_espa_1_4*/, 43 /*tnr7_spatial_1_1*/, 44 /*tnr_scaler_lb_1_1*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 23 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 45 /*tnr7_ims_1_2*/, 48 /*tnr7_bc_1_2*/, 49 /*odr_tnr_sp_bc_rs4n_1_4*/, 24 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 52 /*tnr7_blend_1_1*/, 55 /*image_upscaler_1_1*/, 59 /*cas_1_1*/, 60 /*odr_ofs_mp_1_4*/, 61 /*b2i_ds_output_1_1*/, 62 /*odr_ofs_dp_1_4*/, 53 /*odr_tnr_fp_yuvn_1_4*/, 54 /*tnr_scaler_fp_1_1*/, 56 /*odr_tnr_scale_fp_yuv4n_1_4*/, 25 /*ifd_segmap_bnlm_1_4*/, 31 /*ifd_segmap_xnr_1_4*/, 36 /*ifd_segmap_acm_1_4*/, 46 /*ifd_segmap_tnr_bc_1_4*/, 50 /*ifd_segmap_tnr_blend_1_4*/, 57 /*ifd_segmap_cas_1_4*/, 26 /*smurf_bnlm_1_0*/, 32 /*smurf_xnr_1_0*/, 37 /*smurf_acm_1_0*/, 47 /*smurf_tnr_bc_1_0*/, 51 /*smurf_tnr_blend_1_0*/, 58 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[27].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 67, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[67] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x7EEFAC630FFFFC71, 0x7}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_gmv_1_4[22], ifd_tnr_sp_bc_yuv4nm1_1_4[23], ifd_tnr_sp_bc_rs4nm1_1_4[24], ifd_tnr_fp_blend_yuvnm1_1_4[25], ifd_segmap_bnlm_1_4[26], smurf_bnlm_1_0[27], ifd_segmap_xnr_1_4[32], smurf_xnr_1_0[33], ifd_segmap_acm_1_4[37], smurf_acm_1_0[38], b2i_ds_1_1[42], lbff_crop_espa_1_4[43], tnr_scaler_lb_1_1[45], gmv_statistics_1_1[47], odr_gmv_feature_1_4[48], odr_gmv_match_1_4[49], ifd_segmap_tnr_bc_1_4[50], smurf_tnr_bc_1_0[51], odr_tnr_sp_bc_rs4n_1_4[53], ifd_segmap_tnr_blend_1_4[54], smurf_tnr_blend_1_0[55], odr_tnr_fp_yuvn_1_4[57], tnr_scaler_fp_1_1[58], image_upscaler_1_1[59], odr_tnr_scale_fp_yuv4n_1_4[60], ifd_segmap_cas_1_4[61], smurf_cas_1_0[62], odr_ofs_mp_1_4[64], b2i_ds_output_1_1[65], odr_ofs_dp_1_4[66] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0xF1DFD8E71FFFE0C2, 0x4}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_tnr_sp_bc_yuv4nm1_1_4}[14], {ifd_tnr_sp_bc_rs4nm1_1_4}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[27], {tnr7_ims_1_2}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_tnr_bc_1_4}[32], {smurf_tnr_bc_1_0}[33], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[34], {ifd_segmap_tnr_blend_1_4}[35], {smurf_tnr_blend_1_0}[36], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[37], {odr_tnr_scale_fp_yuv4n_1_4}[38], {ifd_segmap_cas_1_4}[39], {smurf_cas_1_0}[40], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[41], {odr_ofs_dp_1_4}[42] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFCE71FFFFCF3, 0x7}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_gmv_1_4}[18], {ifd_tnr_sp_bc_yuv4nm1_1_4}[19], {ifd_tnr_sp_bc_rs4nm1_1_4}[20], {ifd_tnr_fp_blend_yuvnm1_1_4}[21], {ifd_segmap_bnlm_1_4}[22], {smurf_bnlm_1_0}[23], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[24], {ifd_segmap_xnr_1_4}[25], {smurf_xnr_1_0}[26], {xnr_5_4, vcr_3_1, glim_2_0}[27], {ifd_segmap_acm_1_4}[28], {smurf_acm_1_0}[29], {acm_1_2, gammatm_v4, csc_1_1}[30], {b2i_ds_1_1}[31], {lbff_crop_espa_1_4}[32], {tnr7_spatial_1_1}[33], {tnr_scaler_lb_1_1}[34], {tnr7_ims_1_2}[35], {gmv_statistics_1_1}[36], {odr_gmv_feature_1_4}[37], {odr_gmv_match_1_4}[38], {ifd_segmap_tnr_bc_1_4}[39], {smurf_tnr_bc_1_0}[40], {tnr7_bc_1_2}[41], {odr_tnr_sp_bc_rs4n_1_4}[42], {ifd_segmap_tnr_blend_1_4}[43], {smurf_tnr_blend_1_0}[44], {tnr7_blend_1_1}[45], {odr_tnr_fp_yuvn_1_4}[46], {tnr_scaler_fp_1_1}[47], {image_upscaler_1_1}[48], {odr_tnr_scale_fp_yuv4n_1_4}[49], {ifd_segmap_cas_1_4}[50], {smurf_cas_1_0}[51], {cas_1_1}[52], {odr_ofs_mp_1_4}[53], {b2i_ds_output_1_1}[54], {odr_ofs_dp_1_4}[55] } + uint8_t systemApisSizes[67] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[67] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 28 /*bnlm_3_4*/, 29 /*bxt_demosaic*/, 30 /*vcsc_2_0_b*/, 31 /*gltm_2_0*/, 34 /*xnr_5_4*/, 35 /*vcr_3_1*/, 36 /*glim_2_0*/, 39 /*acm_1_2*/, 40 /*gammatm_v4*/, 41 /*csc_1_1*/, 42 /*b2i_ds_1_1*/, 43 /*lbff_crop_espa_1_4*/, 44 /*tnr7_spatial_1_1*/, 45 /*tnr_scaler_lb_1_1*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_gmv_1_4*/, 47 /*gmv_statistics_1_1*/, 48 /*odr_gmv_feature_1_4*/, 49 /*odr_gmv_match_1_4*/, 23 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 24 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 46 /*tnr7_ims_1_2*/, 52 /*tnr7_bc_1_2*/, 53 /*odr_tnr_sp_bc_rs4n_1_4*/, 25 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 56 /*tnr7_blend_1_1*/, 59 /*image_upscaler_1_1*/, 63 /*cas_1_1*/, 64 /*odr_ofs_mp_1_4*/, 65 /*b2i_ds_output_1_1*/, 66 /*odr_ofs_dp_1_4*/, 57 /*odr_tnr_fp_yuvn_1_4*/, 58 /*tnr_scaler_fp_1_1*/, 60 /*odr_tnr_scale_fp_yuv4n_1_4*/, 26 /*ifd_segmap_bnlm_1_4*/, 32 /*ifd_segmap_xnr_1_4*/, 37 /*ifd_segmap_acm_1_4*/, 50 /*ifd_segmap_tnr_bc_1_4*/, 54 /*ifd_segmap_tnr_blend_1_4*/, 61 /*ifd_segmap_cas_1_4*/, 27 /*smurf_bnlm_1_0*/, 33 /*smurf_xnr_1_0*/, 38 /*smurf_acm_1_0*/, 51 /*smurf_tnr_bc_1_0*/, 55 /*smurf_tnr_blend_1_0*/, 62 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[28].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + void LbffDolSmoothOuterNode::Init(LbffDolSmoothOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 8, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 8, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[8] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 53535 /*odr_bnlm_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x81, 0x0}; // { ifd_pipe_1_4[0], odr_bnlm_1_4[7] } @@ -1007,7 +1534,7 @@ void LbffDolSmoothOuterNode::Init(LbffDolSmoothOuterNodeConfiguration* selectedG void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::Init(LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 38, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 38, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[38] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3DE000FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[29], b2i_ds_1_1[30], lbff_crop_espa_1_4[31], image_upscaler_1_1[32], odr_ofs_mp_1_4[34], b2i_ds_output_1_1[35], odr_ofs_dp_1_4[36], odr_af_std_1_4[37] } @@ -1027,7 +1554,7 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::Init(LbffDol3InputsNoGmvNoTnrNoSapO void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::Init(LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 42, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 42, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[42] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3FDE000FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[29], b2i_ds_1_1[30], lbff_crop_espa_1_4[31], image_upscaler_1_1[32], odr_ofs_mp_1_4[34], b2i_ds_output_1_1[35], odr_ofs_dp_1_4[36], odr_af_std_1_4[37], ifd_gmv_1_4[38], gmv_statistics_1_1[39], odr_gmv_feature_1_4[40], odr_gmv_match_1_4[41] } @@ -1047,7 +1574,7 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::Init(LbffDol3InputsWithGmvNoTnrNo void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::Init(LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3DD9EE000FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[29], b2i_ds_1_1[30], lbff_crop_espa_1_4[31], tnr_scaler_lb_1_1[33], odr_af_std_1_4[34], ifd_tnr_sp_bc_yuv4nm1_1_4[35], ifd_tnr_sp_bc_rs4nm1_1_4[36], odr_tnr_sp_bc_rs4n_1_4[39], ifd_tnr_fp_blend_yuvnm1_1_4[40], odr_tnr_fp_yuvn_1_4[42], tnr_scaler_fp_1_1[43], image_upscaler_1_1[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48], odr_tnr_scale_fp_yuv4n_1_4[49] } @@ -1067,7 +1594,7 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::Init(LbffDol3InputsNoGmvWithTnrNo void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::Init(LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 54, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 54, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[54] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x3DD9FEE000FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[29], b2i_ds_1_1[30], lbff_crop_espa_1_4[31], tnr_scaler_lb_1_1[33], odr_af_std_1_4[34], ifd_gmv_1_4[35], gmv_statistics_1_1[36], odr_gmv_feature_1_4[37], odr_gmv_match_1_4[38], ifd_tnr_sp_bc_yuv4nm1_1_4[39], ifd_tnr_sp_bc_rs4nm1_1_4[40], odr_tnr_sp_bc_rs4n_1_4[43], ifd_tnr_fp_blend_yuvnm1_1_4[44], odr_tnr_fp_yuvn_1_4[46], tnr_scaler_fp_1_1[47], image_upscaler_1_1[48], odr_ofs_mp_1_4[50], b2i_ds_output_1_1[51], odr_ofs_dp_1_4[52], odr_tnr_scale_fp_yuv4n_1_4[53] } @@ -1085,9 +1612,109 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::Init(LbffDol3InputsWithGmvWithT setInnerNode(None); } +void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::Init(LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BE31878FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], ifd_segmap_cas_1_4[40], smurf_cas_1_0[41], odr_ofs_mp_1_4[43], b2i_ds_output_1_1[44], odr_ofs_dp_1_4[45] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27C738F1FC0E, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {image_upscaler_1_1}[22], {ifd_segmap_cas_1_4}[23], {smurf_cas_1_0}[24], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[25], {odr_ofs_dp_1_4}[26] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FE738F9FF8F, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {image_upscaler_1_1}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1}[30], {odr_ofs_mp_1_4}[31], {b2i_ds_output_1_1}[32], {odr_ofs_dp_1_4}[33] } + uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 42 /*cas_1_1*/, 43 /*odr_ofs_mp_1_4*/, 44 /*b2i_ds_output_1_1*/, 45 /*odr_ofs_dp_1_4*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 40 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 41 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::Init(LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BFC630F8FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_gmv_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], image_upscaler_1_1[40], gmv_statistics_1_1[41], odr_gmv_feature_1_4[42], odr_gmv_match_1_4[43], ifd_segmap_cas_1_4[44], smurf_cas_1_0[45], odr_ofs_mp_1_4[47], b2i_ds_output_1_1[48], odr_ofs_dp_1_4[49] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27F8E71F1FC0E, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_gmv_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {image_upscaler_1_1}[23], {gmv_statistics_1_1}[24], {odr_gmv_feature_1_4}[25], {odr_gmv_match_1_4}[26], {ifd_segmap_cas_1_4}[27], {smurf_cas_1_0}[28], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[29], {odr_ofs_dp_1_4}[30] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFCE71F9FF8F, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_gmv_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {image_upscaler_1_1}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_cas_1_4}[32], {smurf_cas_1_0}[33], {cas_1_1}[34], {odr_ofs_mp_1_4}[35], {b2i_ds_output_1_1}[36], {odr_ofs_dp_1_4}[37] } + uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 24 /*bnlm_3_4*/, 25 /*bxt_demosaic*/, 26 /*vcsc_2_0_b*/, 27 /*gltm_2_0*/, 30 /*xnr_5_4*/, 31 /*vcr_3_1*/, 32 /*glim_2_0*/, 35 /*acm_1_2*/, 36 /*gammatm_v4*/, 37 /*csc_1_1*/, 38 /*b2i_ds_1_1*/, 39 /*lbff_crop_espa_1_4*/, 40 /*image_upscaler_1_1*/, 46 /*cas_1_1*/, 47 /*odr_ofs_mp_1_4*/, 48 /*b2i_ds_output_1_1*/, 49 /*odr_ofs_dp_1_4*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_gmv_1_4*/, 41 /*gmv_statistics_1_1*/, 42 /*odr_gmv_feature_1_4*/, 43 /*odr_gmv_match_1_4*/, 22 /*ifd_segmap_bnlm_1_4*/, 28 /*ifd_segmap_xnr_1_4*/, 33 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_cas_1_4*/, 23 /*smurf_bnlm_1_0*/, 29 /*smurf_xnr_1_0*/, 34 /*smurf_acm_1_0*/, 45 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[24].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::Init(LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 62, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[62] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3BF76B18C3F8FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], ifd_segmap_tnr_bc_1_4[45], smurf_tnr_bc_1_0[46], odr_tnr_sp_bc_rs4n_1_4[48], ifd_segmap_tnr_blend_1_4[49], smurf_tnr_blend_1_0[50], odr_tnr_fp_yuvn_1_4[52], tnr_scaler_fp_1_1[53], image_upscaler_1_1[54], odr_tnr_scale_fp_yuv4n_1_4[55], ifd_segmap_cas_1_4[56], smurf_cas_1_0[57], odr_ofs_mp_1_4[59], b2i_ds_output_1_1[60], odr_ofs_dp_1_4[61] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EF639C7F1FC0E, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_tnr_sp_bc_yuv4nm1_1_4}[12], {ifd_tnr_sp_bc_rs4nm1_1_4}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[23], {lbff_crop_espa_1_4}[24], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[25], {tnr7_ims_1_2}[26], {ifd_segmap_tnr_bc_1_4}[27], {smurf_tnr_bc_1_0}[28], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[29], {ifd_segmap_tnr_blend_1_4}[30], {smurf_tnr_blend_1_0}[31], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[32], {odr_tnr_scale_fp_yuv4n_1_4}[33], {ifd_segmap_cas_1_4}[34], {smurf_cas_1_0}[35], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[36], {odr_ofs_dp_1_4}[37] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFF39C7F9FF8F, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_tnr_sp_bc_yuv4nm1_1_4}[16], {ifd_tnr_sp_bc_rs4nm1_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {tnr7_spatial_1_1}[30], {tnr_scaler_lb_1_1}[31], {tnr7_ims_1_2}[32], {ifd_segmap_tnr_bc_1_4}[33], {smurf_tnr_bc_1_0}[34], {tnr7_bc_1_2}[35], {odr_tnr_sp_bc_rs4n_1_4}[36], {ifd_segmap_tnr_blend_1_4}[37], {smurf_tnr_blend_1_0}[38], {tnr7_blend_1_1}[39], {odr_tnr_fp_yuvn_1_4}[40], {tnr_scaler_fp_1_1}[41], {image_upscaler_1_1}[42], {odr_tnr_scale_fp_yuv4n_1_4}[43], {ifd_segmap_cas_1_4}[44], {smurf_cas_1_0}[45], {cas_1_1}[46], {odr_ofs_mp_1_4}[47], {b2i_ds_output_1_1}[48], {odr_ofs_dp_1_4}[49] } + uint8_t systemApisSizes[62] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[62] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 26 /*bnlm_3_4*/, 27 /*bxt_demosaic*/, 28 /*vcsc_2_0_b*/, 29 /*gltm_2_0*/, 32 /*xnr_5_4*/, 33 /*vcr_3_1*/, 34 /*glim_2_0*/, 37 /*acm_1_2*/, 38 /*gammatm_v4*/, 39 /*csc_1_1*/, 40 /*b2i_ds_1_1*/, 41 /*lbff_crop_espa_1_4*/, 42 /*tnr7_spatial_1_1*/, 43 /*tnr_scaler_lb_1_1*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 22 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 44 /*tnr7_ims_1_2*/, 47 /*tnr7_bc_1_2*/, 48 /*odr_tnr_sp_bc_rs4n_1_4*/, 23 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 51 /*tnr7_blend_1_1*/, 54 /*image_upscaler_1_1*/, 58 /*cas_1_1*/, 59 /*odr_ofs_mp_1_4*/, 60 /*b2i_ds_output_1_1*/, 61 /*odr_ofs_dp_1_4*/, 52 /*odr_tnr_fp_yuvn_1_4*/, 53 /*tnr_scaler_fp_1_1*/, 55 /*odr_tnr_scale_fp_yuv4n_1_4*/, 24 /*ifd_segmap_bnlm_1_4*/, 30 /*ifd_segmap_xnr_1_4*/, 35 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_tnr_bc_1_4*/, 49 /*ifd_segmap_tnr_blend_1_4*/, 56 /*ifd_segmap_cas_1_4*/, 25 /*smurf_bnlm_1_0*/, 31 /*smurf_xnr_1_0*/, 36 /*smurf_acm_1_0*/, 46 /*smurf_tnr_bc_1_0*/, 50 /*smurf_tnr_blend_1_0*/, 57 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[26].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffDol3InputsWithGmvWithTnrWithSapOuterNode::Init(LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 66, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[66] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0xBF77D63187F8FF87, 0x3}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_gmv_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], gmv_statistics_1_1[46], odr_gmv_feature_1_4[47], odr_gmv_match_1_4[48], ifd_segmap_tnr_bc_1_4[49], smurf_tnr_bc_1_0[50], odr_tnr_sp_bc_rs4n_1_4[52], ifd_segmap_tnr_blend_1_4[53], smurf_tnr_blend_1_0[54], odr_tnr_fp_yuvn_1_4[56], tnr_scaler_fp_1_1[57], image_upscaler_1_1[58], odr_tnr_scale_fp_yuv4n_1_4[59], ifd_segmap_cas_1_4[60], smurf_cas_1_0[61], odr_ofs_mp_1_4[63], b2i_ds_output_1_1[64], odr_ofs_dp_1_4[65] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x78EFEC738FF1FC0E, 0x2}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_gmv_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[26], {tnr7_ims_1_2}[27], {gmv_statistics_1_1}[28], {odr_gmv_feature_1_4}[29], {odr_gmv_match_1_4}[30], {ifd_segmap_tnr_bc_1_4}[31], {smurf_tnr_bc_1_0}[32], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[33], {ifd_segmap_tnr_blend_1_4}[34], {smurf_tnr_blend_1_0}[35], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[36], {odr_tnr_scale_fp_yuv4n_1_4}[37], {ifd_segmap_cas_1_4}[38], {smurf_cas_1_0}[39], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[40], {odr_ofs_dp_1_4}[41] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFE738FF9FF8F, 0x3}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_gmv_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {ifd_tnr_fp_blend_yuvnm1_1_4}[19], {ifd_segmap_bnlm_1_4}[20], {smurf_bnlm_1_0}[21], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[22], {ifd_segmap_xnr_1_4}[23], {smurf_xnr_1_0}[24], {xnr_5_4, vcr_3_1, glim_2_0}[25], {ifd_segmap_acm_1_4}[26], {smurf_acm_1_0}[27], {acm_1_2, gammatm_v4, csc_1_1}[28], {b2i_ds_1_1}[29], {lbff_crop_espa_1_4}[30], {tnr7_spatial_1_1}[31], {tnr_scaler_lb_1_1}[32], {tnr7_ims_1_2}[33], {gmv_statistics_1_1}[34], {odr_gmv_feature_1_4}[35], {odr_gmv_match_1_4}[36], {ifd_segmap_tnr_bc_1_4}[37], {smurf_tnr_bc_1_0}[38], {tnr7_bc_1_2}[39], {odr_tnr_sp_bc_rs4n_1_4}[40], {ifd_segmap_tnr_blend_1_4}[41], {smurf_tnr_blend_1_0}[42], {tnr7_blend_1_1}[43], {odr_tnr_fp_yuvn_1_4}[44], {tnr_scaler_fp_1_1}[45], {image_upscaler_1_1}[46], {odr_tnr_scale_fp_yuv4n_1_4}[47], {ifd_segmap_cas_1_4}[48], {smurf_cas_1_0}[49], {cas_1_1}[50], {odr_ofs_mp_1_4}[51], {b2i_ds_output_1_1}[52], {odr_ofs_dp_1_4}[53] } + uint8_t systemApisSizes[66] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[66] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 27 /*bnlm_3_4*/, 28 /*bxt_demosaic*/, 29 /*vcsc_2_0_b*/, 30 /*gltm_2_0*/, 33 /*xnr_5_4*/, 34 /*vcr_3_1*/, 35 /*glim_2_0*/, 38 /*acm_1_2*/, 39 /*gammatm_v4*/, 40 /*csc_1_1*/, 41 /*b2i_ds_1_1*/, 42 /*lbff_crop_espa_1_4*/, 43 /*tnr7_spatial_1_1*/, 44 /*tnr_scaler_lb_1_1*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_gmv_1_4*/, 46 /*gmv_statistics_1_1*/, 47 /*odr_gmv_feature_1_4*/, 48 /*odr_gmv_match_1_4*/, 22 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 23 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 45 /*tnr7_ims_1_2*/, 51 /*tnr7_bc_1_2*/, 52 /*odr_tnr_sp_bc_rs4n_1_4*/, 24 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 55 /*tnr7_blend_1_1*/, 58 /*image_upscaler_1_1*/, 62 /*cas_1_1*/, 63 /*odr_ofs_mp_1_4*/, 64 /*b2i_ds_output_1_1*/, 65 /*odr_ofs_dp_1_4*/, 56 /*odr_tnr_fp_yuvn_1_4*/, 57 /*tnr_scaler_fp_1_1*/, 59 /*odr_tnr_scale_fp_yuv4n_1_4*/, 25 /*ifd_segmap_bnlm_1_4*/, 31 /*ifd_segmap_xnr_1_4*/, 36 /*ifd_segmap_acm_1_4*/, 49 /*ifd_segmap_tnr_bc_1_4*/, 53 /*ifd_segmap_tnr_blend_1_4*/, 60 /*ifd_segmap_cas_1_4*/, 26 /*smurf_bnlm_1_0*/, 32 /*smurf_xnr_1_0*/, 37 /*smurf_acm_1_0*/, 50 /*smurf_tnr_bc_1_0*/, 54 /*smurf_tnr_blend_1_0*/, 61 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[27].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + +void LbffBayerPdaf2WithTnrWithSapOuterNode::Init(LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) +{ + OuterNode::Init(0, NodeTypes::Cb, 66, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + + uint16_t kernelsUuids[66] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0xBF77D63187FFFE31, 0x3}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_gmv_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], gmv_statistics_1_1[46], odr_gmv_feature_1_4[47], odr_gmv_match_1_4[48], ifd_segmap_tnr_bc_1_4[49], smurf_tnr_bc_1_0[50], odr_tnr_sp_bc_rs4n_1_4[52], ifd_segmap_tnr_blend_1_4[53], smurf_tnr_blend_1_0[54], odr_tnr_fp_yuvn_1_4[56], tnr_scaler_fp_1_1[57], image_upscaler_1_1[58], odr_tnr_scale_fp_yuv4n_1_4[59], ifd_segmap_cas_1_4[60], smurf_cas_1_0[61], odr_ofs_mp_1_4[63], b2i_ds_output_1_1[64], odr_ofs_dp_1_4[65] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x78EFEC738FFFF062, 0x2}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_tnr_sp_bc_yuv4nm1_1_4}[14], {ifd_tnr_sp_bc_rs4nm1_1_4}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[27], {tnr7_ims_1_2}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_tnr_bc_1_4}[32], {smurf_tnr_bc_1_0}[33], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[34], {ifd_segmap_tnr_blend_1_4}[35], {smurf_tnr_blend_1_0}[36], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[37], {odr_tnr_scale_fp_yuv4n_1_4}[38], {ifd_segmap_cas_1_4}[39], {smurf_cas_1_0}[40], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[41], {odr_ofs_dp_1_4}[42] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFE738FFFFE73, 0x3}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_gmv_1_4}[17], {ifd_tnr_sp_bc_yuv4nm1_1_4}[18], {ifd_tnr_sp_bc_rs4nm1_1_4}[19], {ifd_tnr_fp_blend_yuvnm1_1_4}[20], {ifd_segmap_bnlm_1_4}[21], {smurf_bnlm_1_0}[22], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[23], {ifd_segmap_xnr_1_4}[24], {smurf_xnr_1_0}[25], {xnr_5_4, vcr_3_1, glim_2_0}[26], {ifd_segmap_acm_1_4}[27], {smurf_acm_1_0}[28], {acm_1_2, gammatm_v4, csc_1_1}[29], {b2i_ds_1_1}[30], {lbff_crop_espa_1_4}[31], {tnr7_spatial_1_1}[32], {tnr_scaler_lb_1_1}[33], {tnr7_ims_1_2}[34], {gmv_statistics_1_1}[35], {odr_gmv_feature_1_4}[36], {odr_gmv_match_1_4}[37], {ifd_segmap_tnr_bc_1_4}[38], {smurf_tnr_bc_1_0}[39], {tnr7_bc_1_2}[40], {odr_tnr_sp_bc_rs4n_1_4}[41], {ifd_segmap_tnr_blend_1_4}[42], {smurf_tnr_blend_1_0}[43], {tnr7_blend_1_1}[44], {odr_tnr_fp_yuvn_1_4}[45], {tnr_scaler_fp_1_1}[46], {image_upscaler_1_1}[47], {odr_tnr_scale_fp_yuv4n_1_4}[48], {ifd_segmap_cas_1_4}[49], {smurf_cas_1_0}[50], {cas_1_1}[51], {odr_ofs_mp_1_4}[52], {b2i_ds_output_1_1}[53], {odr_ofs_dp_1_4}[54] } + uint8_t systemApisSizes[66] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[66] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 27 /*bnlm_3_4*/, 28 /*bxt_demosaic*/, 29 /*vcsc_2_0_b*/, 30 /*gltm_2_0*/, 33 /*xnr_5_4*/, 34 /*vcr_3_1*/, 35 /*glim_2_0*/, 38 /*acm_1_2*/, 39 /*gammatm_v4*/, 40 /*csc_1_1*/, 41 /*b2i_ds_1_1*/, 42 /*lbff_crop_espa_1_4*/, 43 /*tnr7_spatial_1_1*/, 44 /*tnr_scaler_lb_1_1*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_gmv_1_4*/, 46 /*gmv_statistics_1_1*/, 47 /*odr_gmv_feature_1_4*/, 48 /*odr_gmv_match_1_4*/, 22 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 23 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 45 /*tnr7_ims_1_2*/, 51 /*tnr7_bc_1_2*/, 52 /*odr_tnr_sp_bc_rs4n_1_4*/, 24 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 55 /*tnr7_blend_1_1*/, 58 /*image_upscaler_1_1*/, 62 /*cas_1_1*/, 63 /*odr_ofs_mp_1_4*/, 64 /*b2i_ds_output_1_1*/, 65 /*odr_ofs_dp_1_4*/, 56 /*odr_tnr_fp_yuvn_1_4*/, 57 /*tnr_scaler_fp_1_1*/, 59 /*odr_tnr_scale_fp_yuv4n_1_4*/, 25 /*ifd_segmap_bnlm_1_4*/, 31 /*ifd_segmap_xnr_1_4*/, 36 /*ifd_segmap_acm_1_4*/, 49 /*ifd_segmap_tnr_bc_1_4*/, 53 /*ifd_segmap_tnr_blend_1_4*/, 60 /*ifd_segmap_cas_1_4*/, 26 /*smurf_bnlm_1_0*/, 32 /*smurf_xnr_1_0*/, 37 /*smurf_acm_1_0*/, 50 /*smurf_tnr_bc_1_0*/, 54 /*smurf_tnr_blend_1_0*/, 61 /*smurf_cas_1_0*/}; + + InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); + + // Metadata update + nodeKernels.kernelList[27].run_kernel.metadata[0] = 1; // bnlm_3_4 + + // set default inner Node + setInnerNode(None); +} + void LbffRgbIrNoGmvNoTnrNoSapOuterNode::Init(LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 36, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 36, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[36] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xFDF0007F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[24], fr_grid_1_0[25], b2i_ds_1_1[26], lbff_crop_espa_1_4[27], image_upscaler_1_1[28], odr_ofs_mp_1_4[30], b2i_ds_output_1_1[31], odr_ofs_dp_1_4[32], aestatistics_2_1[33], odr_ae_1_4[34], odr_af_std_1_4[35] } @@ -1107,7 +1734,7 @@ void LbffRgbIrNoGmvNoTnrNoSapOuterNode::Init(LbffRgbIrNoGmvNoTnrNoSapOuterNodeCo void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::Init(LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 32, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 32, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[32] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xFF7E0009, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[17], ccm_3a_2_0[18], fr_grid_1_0[19], b2i_ds_1_1[20], lbff_crop_espa_1_4[21], image_upscaler_1_1[22], odr_ofs_mp_1_4[24], b2i_ds_output_1_1[25], odr_ofs_dp_1_4[26], odr_awb_std_1_4[27], odr_awb_sat_1_4[28], aestatistics_2_1[29], odr_ae_1_4[30], odr_af_std_1_4[31] } @@ -1127,7 +1754,7 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::Init(LbffRgbIrIrNoGmvNoTnrNoSapOuterNo void LbffRgbIrWithGmvNoTnrNoSapOuterNode::Init(LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 40, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 40, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[40] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xFFDF0007F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[24], fr_grid_1_0[25], b2i_ds_1_1[26], lbff_crop_espa_1_4[27], image_upscaler_1_1[28], odr_ofs_mp_1_4[30], b2i_ds_output_1_1[31], odr_ofs_dp_1_4[32], aestatistics_2_1[33], odr_ae_1_4[34], odr_af_std_1_4[35], ifd_gmv_1_4[36], gmv_statistics_1_1[37], odr_gmv_feature_1_4[38], odr_gmv_match_1_4[39] } @@ -1147,7 +1774,7 @@ void LbffRgbIrWithGmvNoTnrNoSapOuterNode::Init(LbffRgbIrWithGmvNoTnrNoSapOuterNo void LbffRgbIrNoGmvWithTnrNoSapOuterNode::Init(LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 48, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 48, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[48] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xF767EF0007F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[24], fr_grid_1_0[25], b2i_ds_1_1[26], lbff_crop_espa_1_4[27], tnr_scaler_lb_1_1[29], aestatistics_2_1[30], odr_ae_1_4[31], odr_af_std_1_4[32], ifd_tnr_sp_bc_yuv4nm1_1_4[33], ifd_tnr_sp_bc_rs4nm1_1_4[34], odr_tnr_sp_bc_rs4n_1_4[37], ifd_tnr_fp_blend_yuvnm1_1_4[38], odr_tnr_fp_yuvn_1_4[40], tnr_scaler_fp_1_1[41], image_upscaler_1_1[42], odr_ofs_mp_1_4[44], b2i_ds_output_1_1[45], odr_ofs_dp_1_4[46], odr_tnr_scale_fp_yuv4n_1_4[47] } @@ -1167,7 +1794,7 @@ void LbffRgbIrNoGmvWithTnrNoSapOuterNode::Init(LbffRgbIrNoGmvWithTnrNoSapOuterNo void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::Init(LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 44, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 44, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[44] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xF767FBE0009, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[17], ccm_3a_2_0[18], fr_grid_1_0[19], b2i_ds_1_1[20], lbff_crop_espa_1_4[21], tnr_scaler_lb_1_1[23], odr_awb_std_1_4[24], odr_awb_sat_1_4[25], aestatistics_2_1[26], odr_ae_1_4[27], odr_af_std_1_4[28], ifd_tnr_sp_bc_yuv4nm1_1_4[29], ifd_tnr_sp_bc_rs4nm1_1_4[30], odr_tnr_sp_bc_rs4n_1_4[33], ifd_tnr_fp_blend_yuvnm1_1_4[34], odr_tnr_fp_yuvn_1_4[36], tnr_scaler_fp_1_1[37], image_upscaler_1_1[38], odr_ofs_mp_1_4[40], b2i_ds_output_1_1[41], odr_ofs_dp_1_4[42], odr_tnr_scale_fp_yuv4n_1_4[43] } @@ -1187,7 +1814,7 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::Init(LbffRgbIrIrNoGmvWithTnrNoSapOut void LbffRgbIrWithGmvWithTnrNoSapOuterNode::Init(LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 52, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 52, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[52] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xF767FEF0007F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[24], fr_grid_1_0[25], b2i_ds_1_1[26], lbff_crop_espa_1_4[27], tnr_scaler_lb_1_1[29], aestatistics_2_1[30], odr_ae_1_4[31], odr_af_std_1_4[32], ifd_gmv_1_4[33], gmv_statistics_1_1[34], odr_gmv_feature_1_4[35], odr_gmv_match_1_4[36], ifd_tnr_sp_bc_yuv4nm1_1_4[37], ifd_tnr_sp_bc_rs4nm1_1_4[38], odr_tnr_sp_bc_rs4n_1_4[41], ifd_tnr_fp_blend_yuvnm1_1_4[42], odr_tnr_fp_yuvn_1_4[44], tnr_scaler_fp_1_1[45], image_upscaler_1_1[46], odr_ofs_mp_1_4[48], b2i_ds_output_1_1[49], odr_ofs_dp_1_4[50], odr_tnr_scale_fp_yuv4n_1_4[51] } @@ -1207,7 +1834,7 @@ void LbffRgbIrWithGmvWithTnrNoSapOuterNode::Init(LbffRgbIrWithGmvWithTnrNoSapOut void LbffIrNoGmvNoTnrNoSapOuterNode::Init(LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 33, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 33, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[33] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1FEFC0009, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[18], ccm_3a_2_0[19], fr_grid_1_0[20], b2i_ds_1_1[21], lbff_crop_espa_1_4[22], image_upscaler_1_1[23], odr_ofs_mp_1_4[25], b2i_ds_output_1_1[26], odr_ofs_dp_1_4[27], odr_awb_std_1_4[28], odr_awb_sat_1_4[29], aestatistics_2_1[30], odr_ae_1_4[31], odr_af_std_1_4[32] } @@ -1227,7 +1854,7 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::Init(LbffIrNoGmvNoTnrNoSapOuterNodeConfigur void LbffIrWithGmvNoTnrNoSapOuterNode::Init(LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 37, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 37, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[37] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1FFEFC0009, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[18], ccm_3a_2_0[19], fr_grid_1_0[20], b2i_ds_1_1[21], lbff_crop_espa_1_4[22], image_upscaler_1_1[23], odr_ofs_mp_1_4[25], b2i_ds_output_1_1[26], odr_ofs_dp_1_4[27], odr_awb_std_1_4[28], odr_awb_sat_1_4[29], aestatistics_2_1[30], odr_ae_1_4[31], odr_af_std_1_4[32], ifd_gmv_1_4[33], gmv_statistics_1_1[34], odr_gmv_feature_1_4[35], odr_gmv_match_1_4[36] } @@ -1247,7 +1874,7 @@ void LbffIrWithGmvNoTnrNoSapOuterNode::Init(LbffIrWithGmvNoTnrNoSapOuterNodeConf void LbffIrNoGmvWithTnrNoSapOuterNode::Init(LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 45, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 45, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[45] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EECFF7C0009, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[18], ccm_3a_2_0[19], fr_grid_1_0[20], b2i_ds_1_1[21], lbff_crop_espa_1_4[22], tnr_scaler_lb_1_1[24], odr_awb_std_1_4[25], odr_awb_sat_1_4[26], aestatistics_2_1[27], odr_ae_1_4[28], odr_af_std_1_4[29], ifd_tnr_sp_bc_yuv4nm1_1_4[30], ifd_tnr_sp_bc_rs4nm1_1_4[31], odr_tnr_sp_bc_rs4n_1_4[34], ifd_tnr_fp_blend_yuvnm1_1_4[35], odr_tnr_fp_yuvn_1_4[37], tnr_scaler_fp_1_1[38], image_upscaler_1_1[39], odr_ofs_mp_1_4[41], b2i_ds_output_1_1[42], odr_ofs_dp_1_4[43], odr_tnr_scale_fp_yuv4n_1_4[44] } @@ -1267,7 +1894,7 @@ void LbffIrNoGmvWithTnrNoSapOuterNode::Init(LbffIrNoGmvWithTnrNoSapOuterNodeConf void LbffIrWithGmvWithTnrNoSapOuterNode::Init(LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x1EECFFF7C0009, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[18], ccm_3a_2_0[19], fr_grid_1_0[20], b2i_ds_1_1[21], lbff_crop_espa_1_4[22], tnr_scaler_lb_1_1[24], odr_awb_std_1_4[25], odr_awb_sat_1_4[26], aestatistics_2_1[27], odr_ae_1_4[28], odr_af_std_1_4[29], ifd_gmv_1_4[30], gmv_statistics_1_1[31], odr_gmv_feature_1_4[32], odr_gmv_match_1_4[33], ifd_tnr_sp_bc_yuv4nm1_1_4[34], ifd_tnr_sp_bc_rs4nm1_1_4[35], odr_tnr_sp_bc_rs4n_1_4[38], ifd_tnr_fp_blend_yuvnm1_1_4[39], odr_tnr_fp_yuvn_1_4[41], tnr_scaler_fp_1_1[42], image_upscaler_1_1[43], odr_ofs_mp_1_4[45], b2i_ds_output_1_1[46], odr_ofs_dp_1_4[47], odr_tnr_scale_fp_yuv4n_1_4[48] } @@ -1285,446 +1912,69 @@ void LbffIrWithGmvWithTnrNoSapOuterNode::Init(LbffIrWithGmvWithTnrNoSapOuterNode setInnerNode(None); } -void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffBayerNoGmvWithTnrWithOpacityOuterNode::Init(LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 39, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[39] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x7FFBF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], image_upscaler_1_1[25], odr_ofs_mp_1_4[27], b2i_ds_output_1_1[28], odr_ofs_dp_1_4[29], odr_awb_std_1_4[30], odr_awb_sat_1_4[31], aestatistics_2_1[32], odr_ae_1_4[33], odr_af_std_1_4[34], ifd_pdaf_1_4[35], pext_1_0[36], pafstatistics_1_2[37], odr_pdaf_1_4[38] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x7FE70000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {image_upscaler_1_1}[5], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[6], {odr_ofs_dp_1_4}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {image_upscaler_1_1}[11], {cas_1_1}[12], {odr_ofs_mp_1_4}[13], {b2i_ds_output_1_1}[14], {odr_ofs_dp_1_4}[15], {odr_awb_std_1_4}[16], {odr_awb_sat_1_4}[17], {aestatistics_2_1}[18], {odr_ae_1_4}[19], {odr_af_std_1_4}[20], {ifd_pdaf_1_4}[21], {pext_1_0}[22], {pafstatistics_1_2}[23], {odr_pdaf_1_4}[24] } - uint8_t systemApisSizes[39] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/}; - uint16_t runKernelConfigOrder[39] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*image_upscaler_1_1*/, 26 /*cas_1_1*/, 27 /*odr_ofs_mp_1_4*/, 28 /*b2i_ds_output_1_1*/, 29 /*odr_ofs_dp_1_4*/, 20 /*rgbs_grid_1_1*/, 30 /*odr_awb_std_1_4*/, 31 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 32 /*aestatistics_2_1*/, 33 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 34 /*odr_af_std_1_4*/, 35 /*ifd_pdaf_1_4*/, 36 /*pext_1_0*/, 37 /*pafstatistics_1_2*/, 38 /*odr_pdaf_1_4*/}; + uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x3DDDDFEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_tnr_sp_bc_yuv4nm1_1_4[31], ifd_tnr_sp_bc_rs4nm1_1_4[32], ifd_tnr_fp_blend_yuvnm1_1_4[34], ifd_segmap_tnr_bc_1_4[35], smurf_tnr_bc_1_0[36], odr_tnr_sp_bc_rs4n_1_4[38], ifd_segmap_tnr_blend_1_4[39], smurf_tnr_blend_1_0[40], odr_tnr_fp_yuvn_1_4[42], tnr_scaler_fp_1_1[43], image_upscaler_1_1[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48], odr_tnr_scale_fp_yuv4n_1_4[49] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x323BFFD800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {tnr7_ims_1_2}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {ifd_segmap_tnr_bc_1_4}[15], {smurf_tnr_bc_1_0}[16], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[17], {ifd_segmap_tnr_blend_1_4}[18], {smurf_tnr_blend_1_0}[19], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[20], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[21], {odr_ofs_dp_1_4}[22], {odr_tnr_scale_fp_yuv4n_1_4}[23] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {tnr7_spatial_1_1}[10], {tnr_scaler_lb_1_1}[11], {odr_awb_std_1_4}[12], {odr_awb_sat_1_4}[13], {aestatistics_2_1}[14], {odr_ae_1_4}[15], {odr_af_std_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {tnr7_ims_1_2}[19], {ifd_tnr_fp_blend_yuvnm1_1_4}[20], {ifd_segmap_tnr_bc_1_4}[21], {smurf_tnr_bc_1_0}[22], {tnr7_bc_1_2}[23], {odr_tnr_sp_bc_rs4n_1_4}[24], {ifd_segmap_tnr_blend_1_4}[25], {smurf_tnr_blend_1_0}[26], {tnr7_blend_1_1}[27], {odr_tnr_fp_yuvn_1_4}[28], {tnr_scaler_fp_1_1}[29], {image_upscaler_1_1}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34], {odr_tnr_scale_fp_yuv4n_1_4}[35] } + uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*tnr7_spatial_1_1*/, 25 /*tnr_scaler_lb_1_1*/, 19 /*rgbs_grid_1_1*/, 26 /*odr_awb_std_1_4*/, 27 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 28 /*aestatistics_2_1*/, 29 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 30 /*odr_af_std_1_4*/, 31 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 32 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 33 /*tnr7_ims_1_2*/, 37 /*tnr7_bc_1_2*/, 38 /*odr_tnr_sp_bc_rs4n_1_4*/, 34 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 41 /*tnr7_blend_1_1*/, 44 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 42 /*odr_tnr_fp_yuvn_1_4*/, 43 /*tnr_scaler_fp_1_1*/, 49 /*odr_tnr_scale_fp_yuv4n_1_4*/, 35 /*ifd_segmap_tnr_bc_1_4*/, 39 /*ifd_segmap_tnr_blend_1_4*/, 36 /*smurf_tnr_bc_1_0*/, 40 /*smurf_tnr_blend_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode::Init(LbffDol2InputsNoGmvWithTnrWithOpacityOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 43, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 53, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[43] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x7FFFBF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], image_upscaler_1_1[25], odr_ofs_mp_1_4[27], b2i_ds_output_1_1[28], odr_ofs_dp_1_4[29], odr_awb_std_1_4[30], odr_awb_sat_1_4[31], aestatistics_2_1[32], odr_ae_1_4[33], odr_af_std_1_4[34], ifd_pdaf_1_4[35], pext_1_0[36], pafstatistics_1_2[37], odr_pdaf_1_4[38], ifd_gmv_1_4[39], gmv_statistics_1_1[40], odr_gmv_feature_1_4[41], odr_gmv_match_1_4[42] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x7FFE70000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {image_upscaler_1_1}[5], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[6], {odr_ofs_dp_1_4}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_gmv_1_4}[17], {gmv_statistics_1_1}[18], {odr_gmv_feature_1_4}[19], {odr_gmv_match_1_4}[20] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FFFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {image_upscaler_1_1}[11], {cas_1_1}[12], {odr_ofs_mp_1_4}[13], {b2i_ds_output_1_1}[14], {odr_ofs_dp_1_4}[15], {odr_awb_std_1_4}[16], {odr_awb_sat_1_4}[17], {aestatistics_2_1}[18], {odr_ae_1_4}[19], {odr_af_std_1_4}[20], {ifd_pdaf_1_4}[21], {pext_1_0}[22], {pafstatistics_1_2}[23], {odr_pdaf_1_4}[24], {ifd_gmv_1_4}[25], {gmv_statistics_1_1}[26], {odr_gmv_feature_1_4}[27], {odr_gmv_match_1_4}[28] } - uint8_t systemApisSizes[43] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/}; - uint16_t runKernelConfigOrder[43] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*image_upscaler_1_1*/, 26 /*cas_1_1*/, 27 /*odr_ofs_mp_1_4*/, 28 /*b2i_ds_output_1_1*/, 29 /*odr_ofs_dp_1_4*/, 20 /*rgbs_grid_1_1*/, 30 /*odr_awb_std_1_4*/, 31 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 32 /*aestatistics_2_1*/, 33 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 34 /*odr_af_std_1_4*/, 35 /*ifd_pdaf_1_4*/, 36 /*pext_1_0*/, 37 /*pafstatistics_1_2*/, 38 /*odr_pdaf_1_4*/, 39 /*ifd_gmv_1_4*/, 40 /*gmv_statistics_1_1*/, 41 /*odr_gmv_feature_1_4*/, 42 /*odr_gmv_match_1_4*/}; + uint16_t kernelsUuids[53] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0x1EEEEF70007FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[28], b2i_ds_1_1[29], lbff_crop_espa_1_4[30], tnr_scaler_lb_1_1[32], odr_af_std_1_4[33], ifd_tnr_sp_bc_yuv4nm1_1_4[34], ifd_tnr_sp_bc_rs4nm1_1_4[35], ifd_tnr_fp_blend_yuvnm1_1_4[37], ifd_segmap_tnr_bc_1_4[38], smurf_tnr_bc_1_0[39], odr_tnr_sp_bc_rs4n_1_4[41], ifd_segmap_tnr_blend_1_4[42], smurf_tnr_blend_1_0[43], odr_tnr_fp_yuvn_1_4[45], tnr_scaler_fp_1_1[46], image_upscaler_1_1[47], odr_ofs_mp_1_4[49], b2i_ds_output_1_1[50], odr_ofs_dp_1_4[51], odr_tnr_scale_fp_yuv4n_1_4[52] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x191DFEC000FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, fr_grid_1_0, b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[11], {odr_af_std_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {tnr7_ims_1_2}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_tnr_bc_1_4}[17], {smurf_tnr_bc_1_0}[18], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[19], {ifd_segmap_tnr_blend_1_4}[20], {smurf_tnr_blend_1_0}[21], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[22], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[23], {odr_ofs_dp_1_4}[24], {odr_tnr_scale_fp_yuv4n_1_4}[25] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFFFFF000FFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[12], {fr_grid_1_0}[13], {b2i_ds_1_1}[14], {lbff_crop_espa_1_4}[15], {tnr7_spatial_1_1}[16], {tnr_scaler_lb_1_1}[17], {odr_af_std_1_4}[18], {ifd_tnr_sp_bc_yuv4nm1_1_4}[19], {ifd_tnr_sp_bc_rs4nm1_1_4}[20], {tnr7_ims_1_2}[21], {ifd_tnr_fp_blend_yuvnm1_1_4}[22], {ifd_segmap_tnr_bc_1_4}[23], {smurf_tnr_bc_1_0}[24], {tnr7_bc_1_2}[25], {odr_tnr_sp_bc_rs4n_1_4}[26], {ifd_segmap_tnr_blend_1_4}[27], {smurf_tnr_blend_1_0}[28], {tnr7_blend_1_1}[29], {odr_tnr_fp_yuvn_1_4}[30], {tnr_scaler_fp_1_1}[31], {image_upscaler_1_1}[32], {cas_1_1}[33], {odr_ofs_mp_1_4}[34], {b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36], {odr_tnr_scale_fp_yuv4n_1_4}[37] } + uint8_t systemApisSizes[53] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t runKernelConfigOrder[53] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 18 /*bnlm_3_4*/, 19 /*bxt_demosaic*/, 20 /*vcsc_2_0_b*/, 21 /*gltm_2_0*/, 22 /*xnr_5_4*/, 23 /*vcr_3_1*/, 24 /*glim_2_0*/, 25 /*acm_1_2*/, 26 /*gammatm_v4*/, 27 /*csc_1_1*/, 29 /*b2i_ds_1_1*/, 30 /*lbff_crop_espa_1_4*/, 31 /*tnr7_spatial_1_1*/, 32 /*tnr_scaler_lb_1_1*/, 28 /*fr_grid_1_0*/, 33 /*odr_af_std_1_4*/, 34 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 35 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 36 /*tnr7_ims_1_2*/, 40 /*tnr7_bc_1_2*/, 41 /*odr_tnr_sp_bc_rs4n_1_4*/, 37 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 44 /*tnr7_blend_1_1*/, 47 /*image_upscaler_1_1*/, 48 /*cas_1_1*/, 49 /*odr_ofs_mp_1_4*/, 50 /*b2i_ds_output_1_1*/, 51 /*odr_ofs_dp_1_4*/, 45 /*odr_tnr_fp_yuvn_1_4*/, 46 /*tnr_scaler_fp_1_1*/, 52 /*odr_tnr_scale_fp_yuv4n_1_4*/, 38 /*ifd_segmap_tnr_bc_1_4*/, 42 /*ifd_segmap_tnr_blend_1_4*/, 39 /*smurf_tnr_bc_1_0*/, 43 /*smurf_tnr_blend_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[18].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffRgbIrNoGmvNoTnrWithSapOuterNode::Init(LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 51, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 44, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - uint16_t kernelsUuids[51] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x7BB3FFDF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], tnr_scaler_lb_1_1[26], odr_awb_std_1_4[27], odr_awb_sat_1_4[28], aestatistics_2_1[29], odr_ae_1_4[30], odr_af_std_1_4[31], ifd_pdaf_1_4[32], pext_1_0[33], pafstatistics_1_2[34], odr_pdaf_1_4[35], ifd_tnr_sp_bc_yuv4nm1_1_4[36], ifd_tnr_sp_bc_rs4nm1_1_4[37], odr_tnr_sp_bc_rs4n_1_4[40], ifd_tnr_fp_blend_yuvnm1_1_4[41], odr_tnr_fp_yuvn_1_4[43], tnr_scaler_fp_1_1[44], image_upscaler_1_1[45], odr_ofs_mp_1_4[47], b2i_ds_output_1_1[48], odr_ofs_dp_1_4[49], odr_tnr_scale_fp_yuv4n_1_4[50] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x6467FFB0000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_pdaf_1_4}[11], {pext_1_0}[12], {pafstatistics_1_2}[13], {odr_pdaf_1_4}[14], {ifd_tnr_sp_bc_yuv4nm1_1_4}[15], {ifd_tnr_sp_bc_rs4nm1_1_4}[16], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[19], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[20], {odr_ofs_dp_1_4}[21], {odr_tnr_scale_fp_yuv4n_1_4}[22] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FF7FFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {tnr7_spatial_1_1}[11], {tnr_scaler_lb_1_1}[12], {odr_awb_std_1_4}[13], {odr_awb_sat_1_4}[14], {aestatistics_2_1}[15], {odr_ae_1_4}[16], {odr_af_std_1_4}[17], {ifd_pdaf_1_4}[18], {pext_1_0}[19], {pafstatistics_1_2}[20], {odr_pdaf_1_4}[21], {ifd_tnr_sp_bc_yuv4nm1_1_4}[22], {ifd_tnr_sp_bc_rs4nm1_1_4}[23], {tnr7_ims_1_2, tnr7_bc_1_2}[24], {odr_tnr_sp_bc_rs4n_1_4}[25], {ifd_tnr_fp_blend_yuvnm1_1_4}[26], {tnr7_blend_1_1}[27], {odr_tnr_fp_yuvn_1_4}[28], {tnr_scaler_fp_1_1}[29], {image_upscaler_1_1}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34], {odr_tnr_scale_fp_yuv4n_1_4}[35] } - uint8_t systemApisSizes[51] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint16_t runKernelConfigOrder[51] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*tnr7_spatial_1_1*/, 26 /*tnr_scaler_lb_1_1*/, 20 /*rgbs_grid_1_1*/, 27 /*odr_awb_std_1_4*/, 28 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 29 /*aestatistics_2_1*/, 30 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 31 /*odr_af_std_1_4*/, 32 /*ifd_pdaf_1_4*/, 33 /*pext_1_0*/, 34 /*pafstatistics_1_2*/, 35 /*odr_pdaf_1_4*/, 36 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 37 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 38 /*tnr7_ims_1_2*/, 39 /*tnr7_bc_1_2*/, 40 /*odr_tnr_sp_bc_rs4n_1_4*/, 41 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 42 /*tnr7_blend_1_1*/, 45 /*image_upscaler_1_1*/, 46 /*cas_1_1*/, 47 /*odr_ofs_mp_1_4*/, 48 /*b2i_ds_output_1_1*/, 49 /*odr_ofs_dp_1_4*/, 43 /*odr_tnr_fp_yuvn_1_4*/, 44 /*tnr_scaler_fp_1_1*/, 50 /*odr_tnr_scale_fp_yuv4n_1_4*/}; + uint16_t kernelsUuids[44] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; + uint64_t kernelsRcbBitmap[] = {0xEF8C61FC7F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[14], fr_grid_1_0[15], aestatistics_2_1[16], odr_ae_1_4[17], odr_af_std_1_4[18], ifd_segmap_bnlm_1_4[19], smurf_bnlm_1_0[20], ifd_segmap_xnr_1_4[25], smurf_xnr_1_0[26], ifd_segmap_acm_1_4[30], smurf_acm_1_0[31], b2i_ds_1_1[35], lbff_crop_espa_1_4[36], image_upscaler_1_1[37], ifd_segmap_cas_1_4[38], smurf_cas_1_0[39], odr_ofs_mp_1_4[41], b2i_ds_output_1_1[42], odr_ofs_dp_1_4[43] } + uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x9F1CE3F0FC2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, rgb_ir_2_0}[1], {odr_ir_1_4}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1, ccm_3a_2_0, fr_grid_1_0}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_segmap_bnlm_1_4}[11], {smurf_bnlm_1_0}[12], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[13], {ifd_segmap_xnr_1_4}[14], {smurf_xnr_1_0}[15], {xnr_5_4, vcr_3_1, glim_2_0}[16], {ifd_segmap_acm_1_4}[17], {smurf_acm_1_0}[18], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[19], {lbff_crop_espa_1_4}[20], {image_upscaler_1_1}[21], {ifd_segmap_cas_1_4}[22], {smurf_cas_1_0}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25] } + uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFF9CE3FCFF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgbs_grid_1_1}[2], {rgb_ir_2_0}[3], {odr_ir_1_4}[4], {odr_awb_std_1_4}[5], {odr_awb_sve_1_4}[6], {odr_awb_sat_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1}[9], {ccm_3a_2_0}[10], {fr_grid_1_0}[11], {aestatistics_2_1}[12], {odr_ae_1_4}[13], {odr_af_std_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1}[23], {b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {image_upscaler_1_1}[26], {ifd_segmap_cas_1_4}[27], {smurf_cas_1_0}[28], {cas_1_1}[29], {odr_ofs_mp_1_4}[30], {b2i_ds_output_1_1}[31], {odr_ofs_dp_1_4}[32] } + uint8_t systemApisSizes[44] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 0 /*rgb_ir_2_0*/, 220 /*odr_ir_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; + uint16_t runKernelConfigOrder[44] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 6 /*odr_ir_1_4*/, 4 /*rgbs_grid_1_1*/, 7 /*odr_awb_std_1_4*/, 8 /*odr_awb_sve_1_4*/, 9 /*odr_awb_sat_1_4*/, 10 /*ifd_lsc_1_4*/, 11 /*lsc_1_2*/, 12 /*gd_2_2*/, 13 /*wb_1_1*/, 21 /*bnlm_3_4*/, 22 /*bxt_demosaic*/, 23 /*vcsc_2_0_b*/, 24 /*gltm_2_0*/, 27 /*xnr_5_4*/, 28 /*vcr_3_1*/, 29 /*glim_2_0*/, 32 /*acm_1_2*/, 33 /*gammatm_v4*/, 34 /*csc_1_1*/, 35 /*b2i_ds_1_1*/, 36 /*lbff_crop_espa_1_4*/, 37 /*image_upscaler_1_1*/, 40 /*cas_1_1*/, 41 /*odr_ofs_mp_1_4*/, 42 /*b2i_ds_output_1_1*/, 43 /*odr_ofs_dp_1_4*/, 14 /*ccm_3a_2_0*/, 16 /*aestatistics_2_1*/, 17 /*odr_ae_1_4*/, 15 /*fr_grid_1_0*/, 18 /*odr_af_std_1_4*/, 19 /*ifd_segmap_bnlm_1_4*/, 25 /*ifd_segmap_xnr_1_4*/, 30 /*ifd_segmap_acm_1_4*/, 38 /*ifd_segmap_cas_1_4*/, 20 /*smurf_bnlm_1_0*/, 26 /*smurf_xnr_1_0*/, 31 /*smurf_acm_1_0*/, 39 /*smurf_cas_1_0*/}; InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); // Metadata update - nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 + nodeKernels.kernelList[21].run_kernel.metadata[0] = 1; // bnlm_3_4 // set default inner Node setInnerNode(None); } -void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration) +void LbffRgbIrWithGmvNoTnrWithSapOuterNode::Init(LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 55, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[55] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x7BB3FFFDF00071, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[20], ccm_3a_2_0[21], fr_grid_1_0[22], b2i_ds_1_1[23], lbff_crop_espa_1_4[24], tnr_scaler_lb_1_1[26], odr_awb_std_1_4[27], odr_awb_sat_1_4[28], aestatistics_2_1[29], odr_ae_1_4[30], odr_af_std_1_4[31], ifd_pdaf_1_4[32], pext_1_0[33], pafstatistics_1_2[34], odr_pdaf_1_4[35], ifd_gmv_1_4[36], gmv_statistics_1_1[37], odr_gmv_feature_1_4[38], odr_gmv_match_1_4[39], ifd_tnr_sp_bc_yuv4nm1_1_4[40], ifd_tnr_sp_bc_rs4nm1_1_4[41], odr_tnr_sp_bc_rs4n_1_4[44], ifd_tnr_fp_blend_yuvnm1_1_4[45], odr_tnr_fp_yuvn_1_4[47], tnr_scaler_fp_1_1[48], image_upscaler_1_1[49], odr_ofs_mp_1_4[51], b2i_ds_output_1_1[52], odr_ofs_dp_1_4[53], odr_tnr_scale_fp_yuv4n_1_4[54] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x6467FFFB0000C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_pdaf_1_4}[11], {pext_1_0}[12], {pafstatistics_1_2}[13], {odr_pdaf_1_4}[14], {ifd_gmv_1_4}[15], {gmv_statistics_1_1}[16], {odr_gmv_feature_1_4}[17], {odr_gmv_match_1_4}[18], {ifd_tnr_sp_bc_yuv4nm1_1_4}[19], {ifd_tnr_sp_bc_rs4nm1_1_4}[20], {tnr7_ims_1_2, tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[21], {ifd_tnr_fp_blend_yuvnm1_1_4}[22], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25], {odr_tnr_scale_fp_yuv4n_1_4}[26] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FF7FFFFF000F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {b2i_ds_1_1}[9], {lbff_crop_espa_1_4}[10], {tnr7_spatial_1_1}[11], {tnr_scaler_lb_1_1}[12], {odr_awb_std_1_4}[13], {odr_awb_sat_1_4}[14], {aestatistics_2_1}[15], {odr_ae_1_4}[16], {odr_af_std_1_4}[17], {ifd_pdaf_1_4}[18], {pext_1_0}[19], {pafstatistics_1_2}[20], {odr_pdaf_1_4}[21], {ifd_gmv_1_4}[22], {gmv_statistics_1_1}[23], {odr_gmv_feature_1_4}[24], {odr_gmv_match_1_4}[25], {ifd_tnr_sp_bc_yuv4nm1_1_4}[26], {ifd_tnr_sp_bc_rs4nm1_1_4}[27], {tnr7_ims_1_2, tnr7_bc_1_2}[28], {odr_tnr_sp_bc_rs4n_1_4}[29], {ifd_tnr_fp_blend_yuvnm1_1_4}[30], {tnr7_blend_1_1}[31], {odr_tnr_fp_yuvn_1_4}[32], {tnr_scaler_fp_1_1}[33], {image_upscaler_1_1}[34], {cas_1_1}[35], {odr_ofs_mp_1_4}[36], {b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38], {odr_tnr_scale_fp_yuv4n_1_4}[39] } - uint8_t systemApisSizes[55] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint16_t runKernelConfigOrder[55] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 10 /*bnlm_3_4*/, 11 /*bxt_demosaic*/, 12 /*vcsc_2_0_b*/, 13 /*gltm_2_0*/, 14 /*xnr_5_4*/, 15 /*vcr_3_1*/, 16 /*glim_2_0*/, 17 /*acm_1_2*/, 18 /*gammatm_v4*/, 19 /*csc_1_1*/, 23 /*b2i_ds_1_1*/, 24 /*lbff_crop_espa_1_4*/, 25 /*tnr7_spatial_1_1*/, 26 /*tnr_scaler_lb_1_1*/, 20 /*rgbs_grid_1_1*/, 27 /*odr_awb_std_1_4*/, 28 /*odr_awb_sat_1_4*/, 21 /*ccm_3a_2_0*/, 29 /*aestatistics_2_1*/, 30 /*odr_ae_1_4*/, 22 /*fr_grid_1_0*/, 31 /*odr_af_std_1_4*/, 32 /*ifd_pdaf_1_4*/, 33 /*pext_1_0*/, 34 /*pafstatistics_1_2*/, 35 /*odr_pdaf_1_4*/, 36 /*ifd_gmv_1_4*/, 37 /*gmv_statistics_1_1*/, 38 /*odr_gmv_feature_1_4*/, 39 /*odr_gmv_match_1_4*/, 40 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 41 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 42 /*tnr7_ims_1_2*/, 43 /*tnr7_bc_1_2*/, 44 /*odr_tnr_sp_bc_rs4n_1_4*/, 45 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 46 /*tnr7_blend_1_1*/, 49 /*image_upscaler_1_1*/, 50 /*cas_1_1*/, 51 /*odr_ofs_mp_1_4*/, 52 /*b2i_ds_output_1_1*/, 53 /*odr_ofs_dp_1_4*/, 47 /*odr_tnr_fp_yuvn_1_4*/, 48 /*tnr_scaler_fp_1_1*/, 54 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[10].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 67, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[67] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x7EEFAC630FFFFC71, 0x7}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_gmv_1_4[22], ifd_tnr_sp_bc_yuv4nm1_1_4[23], ifd_tnr_sp_bc_rs4nm1_1_4[24], ifd_tnr_fp_blend_yuvnm1_1_4[25], ifd_segmap_bnlm_1_4[26], smurf_bnlm_1_0[27], ifd_segmap_xnr_1_4[32], smurf_xnr_1_0[33], ifd_segmap_acm_1_4[37], smurf_acm_1_0[38], b2i_ds_1_1[42], lbff_crop_espa_1_4[43], tnr_scaler_lb_1_1[45], gmv_statistics_1_1[47], odr_gmv_feature_1_4[48], odr_gmv_match_1_4[49], ifd_segmap_tnr_bc_1_4[50], smurf_tnr_bc_1_0[51], odr_tnr_sp_bc_rs4n_1_4[53], ifd_segmap_tnr_blend_1_4[54], smurf_tnr_blend_1_0[55], odr_tnr_fp_yuvn_1_4[57], tnr_scaler_fp_1_1[58], image_upscaler_1_1[59], odr_tnr_scale_fp_yuv4n_1_4[60], ifd_segmap_cas_1_4[61], smurf_cas_1_0[62], odr_ofs_mp_1_4[64], b2i_ds_output_1_1[65], odr_ofs_dp_1_4[66] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0xF1DFD8E71FFFE0C2, 0x4}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_tnr_sp_bc_yuv4nm1_1_4}[14], {ifd_tnr_sp_bc_rs4nm1_1_4}[15], {ifd_tnr_fp_blend_yuvnm1_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[27], {tnr7_ims_1_2}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_tnr_bc_1_4}[32], {smurf_tnr_bc_1_0}[33], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[34], {ifd_segmap_tnr_blend_1_4}[35], {smurf_tnr_blend_1_0}[36], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[37], {odr_tnr_scale_fp_yuv4n_1_4}[38], {ifd_segmap_cas_1_4}[39], {smurf_cas_1_0}[40], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[41], {odr_ofs_dp_1_4}[42] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFCE71FFFFCF3, 0x7}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_gmv_1_4}[18], {ifd_tnr_sp_bc_yuv4nm1_1_4}[19], {ifd_tnr_sp_bc_rs4nm1_1_4}[20], {ifd_tnr_fp_blend_yuvnm1_1_4}[21], {ifd_segmap_bnlm_1_4}[22], {smurf_bnlm_1_0}[23], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[24], {ifd_segmap_xnr_1_4}[25], {smurf_xnr_1_0}[26], {xnr_5_4, vcr_3_1, glim_2_0}[27], {ifd_segmap_acm_1_4}[28], {smurf_acm_1_0}[29], {acm_1_2, gammatm_v4, csc_1_1}[30], {b2i_ds_1_1}[31], {lbff_crop_espa_1_4}[32], {tnr7_spatial_1_1}[33], {tnr_scaler_lb_1_1}[34], {tnr7_ims_1_2}[35], {gmv_statistics_1_1}[36], {odr_gmv_feature_1_4}[37], {odr_gmv_match_1_4}[38], {ifd_segmap_tnr_bc_1_4}[39], {smurf_tnr_bc_1_0}[40], {tnr7_bc_1_2}[41], {odr_tnr_sp_bc_rs4n_1_4}[42], {ifd_segmap_tnr_blend_1_4}[43], {smurf_tnr_blend_1_0}[44], {tnr7_blend_1_1}[45], {odr_tnr_fp_yuvn_1_4}[46], {tnr_scaler_fp_1_1}[47], {image_upscaler_1_1}[48], {odr_tnr_scale_fp_yuv4n_1_4}[49], {ifd_segmap_cas_1_4}[50], {smurf_cas_1_0}[51], {cas_1_1}[52], {odr_ofs_mp_1_4}[53], {b2i_ds_output_1_1}[54], {odr_ofs_dp_1_4}[55] } - uint8_t systemApisSizes[67] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[67] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 28 /*bnlm_3_4*/, 29 /*bxt_demosaic*/, 30 /*vcsc_2_0_b*/, 31 /*gltm_2_0*/, 34 /*xnr_5_4*/, 35 /*vcr_3_1*/, 36 /*glim_2_0*/, 39 /*acm_1_2*/, 40 /*gammatm_v4*/, 41 /*csc_1_1*/, 42 /*b2i_ds_1_1*/, 43 /*lbff_crop_espa_1_4*/, 44 /*tnr7_spatial_1_1*/, 45 /*tnr_scaler_lb_1_1*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_gmv_1_4*/, 47 /*gmv_statistics_1_1*/, 48 /*odr_gmv_feature_1_4*/, 49 /*odr_gmv_match_1_4*/, 23 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 24 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 46 /*tnr7_ims_1_2*/, 52 /*tnr7_bc_1_2*/, 53 /*odr_tnr_sp_bc_rs4n_1_4*/, 25 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 56 /*tnr7_blend_1_1*/, 59 /*image_upscaler_1_1*/, 63 /*cas_1_1*/, 64 /*odr_ofs_mp_1_4*/, 65 /*b2i_ds_output_1_1*/, 66 /*odr_ofs_dp_1_4*/, 57 /*odr_tnr_fp_yuvn_1_4*/, 58 /*tnr_scaler_fp_1_1*/, 60 /*odr_tnr_scale_fp_yuv4n_1_4*/, 26 /*ifd_segmap_bnlm_1_4*/, 32 /*ifd_segmap_xnr_1_4*/, 37 /*ifd_segmap_acm_1_4*/, 50 /*ifd_segmap_tnr_bc_1_4*/, 54 /*ifd_segmap_tnr_blend_1_4*/, 61 /*ifd_segmap_cas_1_4*/, 27 /*smurf_bnlm_1_0*/, 33 /*smurf_xnr_1_0*/, 38 /*smurf_acm_1_0*/, 51 /*smurf_tnr_bc_1_0*/, 55 /*smurf_tnr_blend_1_0*/, 62 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[28].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerNoGmvNoTnrWithSapOuterNode::Init(LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 42, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[42] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BE3187FE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_segmap_bnlm_1_4[17], smurf_bnlm_1_0[18], ifd_segmap_xnr_1_4[23], smurf_xnr_1_0[24], ifd_segmap_acm_1_4[28], smurf_acm_1_0[29], b2i_ds_1_1[33], lbff_crop_espa_1_4[34], image_upscaler_1_1[35], ifd_segmap_cas_1_4[36], smurf_cas_1_0[37], odr_ofs_mp_1_4[39], b2i_ds_output_1_1[40], odr_ofs_dp_1_4[41] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27C738FF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_segmap_bnlm_1_4}[9], {smurf_bnlm_1_0}[10], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[11], {ifd_segmap_xnr_1_4}[12], {smurf_xnr_1_0}[13], {xnr_5_4, vcr_3_1, glim_2_0}[14], {ifd_segmap_acm_1_4}[15], {smurf_acm_1_0}[16], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[17], {lbff_crop_espa_1_4}[18], {image_upscaler_1_1}[19], {ifd_segmap_cas_1_4}[20], {smurf_cas_1_0}[21], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[22], {odr_ofs_dp_1_4}[23] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FE738FFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1}[21], {b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {image_upscaler_1_1}[24], {ifd_segmap_cas_1_4}[25], {smurf_cas_1_0}[26], {cas_1_1}[27], {odr_ofs_mp_1_4}[28], {b2i_ds_output_1_1}[29], {odr_ofs_dp_1_4}[30] } - uint8_t systemApisSizes[42] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[42] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 19 /*bnlm_3_4*/, 20 /*bxt_demosaic*/, 21 /*vcsc_2_0_b*/, 22 /*gltm_2_0*/, 25 /*xnr_5_4*/, 26 /*vcr_3_1*/, 27 /*glim_2_0*/, 30 /*acm_1_2*/, 31 /*gammatm_v4*/, 32 /*csc_1_1*/, 33 /*b2i_ds_1_1*/, 34 /*lbff_crop_espa_1_4*/, 35 /*image_upscaler_1_1*/, 38 /*cas_1_1*/, 39 /*odr_ofs_mp_1_4*/, 40 /*b2i_ds_output_1_1*/, 41 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_segmap_bnlm_1_4*/, 23 /*ifd_segmap_xnr_1_4*/, 28 /*ifd_segmap_acm_1_4*/, 36 /*ifd_segmap_cas_1_4*/, 18 /*smurf_bnlm_1_0*/, 24 /*smurf_xnr_1_0*/, 29 /*smurf_acm_1_0*/, 37 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[19].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerWithGmvNoTnrWithSapOuterNode::Init(LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BFC630FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_gmv_1_4[17], ifd_segmap_bnlm_1_4[18], smurf_bnlm_1_0[19], ifd_segmap_xnr_1_4[24], smurf_xnr_1_0[25], ifd_segmap_acm_1_4[29], smurf_acm_1_0[30], b2i_ds_1_1[34], lbff_crop_espa_1_4[35], image_upscaler_1_1[36], gmv_statistics_1_1[37], odr_gmv_feature_1_4[38], odr_gmv_match_1_4[39], ifd_segmap_cas_1_4[40], smurf_cas_1_0[41], odr_ofs_mp_1_4[43], b2i_ds_output_1_1[44], odr_ofs_dp_1_4[45] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27F8E71FF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_gmv_1_4}[9], {ifd_segmap_bnlm_1_4}[10], {smurf_bnlm_1_0}[11], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[12], {ifd_segmap_xnr_1_4}[13], {smurf_xnr_1_0}[14], {xnr_5_4, vcr_3_1, glim_2_0}[15], {ifd_segmap_acm_1_4}[16], {smurf_acm_1_0}[17], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[18], {lbff_crop_espa_1_4}[19], {image_upscaler_1_1}[20], {gmv_statistics_1_1}[21], {odr_gmv_feature_1_4}[22], {odr_gmv_match_1_4}[23], {ifd_segmap_cas_1_4}[24], {smurf_cas_1_0}[25], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[26], {odr_ofs_dp_1_4}[27] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFCE71FFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_gmv_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1}[22], {b2i_ds_1_1}[23], {lbff_crop_espa_1_4}[24], {image_upscaler_1_1}[25], {gmv_statistics_1_1}[26], {odr_gmv_feature_1_4}[27], {odr_gmv_match_1_4}[28], {ifd_segmap_cas_1_4}[29], {smurf_cas_1_0}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34] } - uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 20 /*bnlm_3_4*/, 21 /*bxt_demosaic*/, 22 /*vcsc_2_0_b*/, 23 /*gltm_2_0*/, 26 /*xnr_5_4*/, 27 /*vcr_3_1*/, 28 /*glim_2_0*/, 31 /*acm_1_2*/, 32 /*gammatm_v4*/, 33 /*csc_1_1*/, 34 /*b2i_ds_1_1*/, 35 /*lbff_crop_espa_1_4*/, 36 /*image_upscaler_1_1*/, 42 /*cas_1_1*/, 43 /*odr_ofs_mp_1_4*/, 44 /*b2i_ds_output_1_1*/, 45 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_gmv_1_4*/, 37 /*gmv_statistics_1_1*/, 38 /*odr_gmv_feature_1_4*/, 39 /*odr_gmv_match_1_4*/, 18 /*ifd_segmap_bnlm_1_4*/, 24 /*ifd_segmap_xnr_1_4*/, 29 /*ifd_segmap_acm_1_4*/, 40 /*ifd_segmap_cas_1_4*/, 19 /*smurf_bnlm_1_0*/, 25 /*smurf_xnr_1_0*/, 30 /*smurf_acm_1_0*/, 41 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[20].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerNoGmvWithTnrWithOpacityOuterNode::Init(LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 23639 /*tnr7_ims_1_2*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3DDDDFEF80031, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[19], ccm_3a_2_0[20], fr_grid_1_0[21], b2i_ds_1_1[22], lbff_crop_espa_1_4[23], tnr_scaler_lb_1_1[25], odr_awb_std_1_4[26], odr_awb_sat_1_4[27], aestatistics_2_1[28], odr_ae_1_4[29], odr_af_std_1_4[30], ifd_tnr_sp_bc_yuv4nm1_1_4[31], ifd_tnr_sp_bc_rs4nm1_1_4[32], ifd_tnr_fp_blend_yuvnm1_1_4[34], ifd_segmap_tnr_bc_1_4[35], smurf_tnr_bc_1_0[36], odr_tnr_sp_bc_rs4n_1_4[38], ifd_segmap_tnr_blend_1_4[39], smurf_tnr_blend_1_0[40], odr_tnr_fp_yuvn_1_4[42], tnr_scaler_fp_1_1[43], image_upscaler_1_1[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48], odr_tnr_scale_fp_yuv4n_1_4[49] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x323BFFD800062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0, b2i_ds_1_1}[3], {lbff_crop_espa_1_4}[4], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {tnr7_ims_1_2}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {ifd_segmap_tnr_bc_1_4}[15], {smurf_tnr_bc_1_0}[16], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[17], {ifd_segmap_tnr_blend_1_4}[18], {smurf_tnr_blend_1_0}[19], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[20], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[21], {odr_ofs_dp_1_4}[22], {odr_tnr_scale_fp_yuv4n_1_4}[23] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFFFF80073, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1, bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0, xnr_5_4, vcr_3_1, glim_2_0, acm_1_2, gammatm_v4, csc_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {b2i_ds_1_1}[8], {lbff_crop_espa_1_4}[9], {tnr7_spatial_1_1}[10], {tnr_scaler_lb_1_1}[11], {odr_awb_std_1_4}[12], {odr_awb_sat_1_4}[13], {aestatistics_2_1}[14], {odr_ae_1_4}[15], {odr_af_std_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {tnr7_ims_1_2}[19], {ifd_tnr_fp_blend_yuvnm1_1_4}[20], {ifd_segmap_tnr_bc_1_4}[21], {smurf_tnr_bc_1_0}[22], {tnr7_bc_1_2}[23], {odr_tnr_sp_bc_rs4n_1_4}[24], {ifd_segmap_tnr_blend_1_4}[25], {smurf_tnr_blend_1_0}[26], {tnr7_blend_1_1}[27], {odr_tnr_fp_yuvn_1_4}[28], {tnr_scaler_fp_1_1}[29], {image_upscaler_1_1}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34], {odr_tnr_scale_fp_yuv4n_1_4}[35] } - uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/}; - uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 9 /*bnlm_3_4*/, 10 /*bxt_demosaic*/, 11 /*vcsc_2_0_b*/, 12 /*gltm_2_0*/, 13 /*xnr_5_4*/, 14 /*vcr_3_1*/, 15 /*glim_2_0*/, 16 /*acm_1_2*/, 17 /*gammatm_v4*/, 18 /*csc_1_1*/, 22 /*b2i_ds_1_1*/, 23 /*lbff_crop_espa_1_4*/, 24 /*tnr7_spatial_1_1*/, 25 /*tnr_scaler_lb_1_1*/, 19 /*rgbs_grid_1_1*/, 26 /*odr_awb_std_1_4*/, 27 /*odr_awb_sat_1_4*/, 20 /*ccm_3a_2_0*/, 28 /*aestatistics_2_1*/, 29 /*odr_ae_1_4*/, 21 /*fr_grid_1_0*/, 30 /*odr_af_std_1_4*/, 31 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 32 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 33 /*tnr7_ims_1_2*/, 37 /*tnr7_bc_1_2*/, 38 /*odr_tnr_sp_bc_rs4n_1_4*/, 34 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 41 /*tnr7_blend_1_1*/, 44 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 42 /*odr_tnr_fp_yuvn_1_4*/, 43 /*tnr_scaler_fp_1_1*/, 49 /*odr_tnr_scale_fp_yuv4n_1_4*/, 35 /*ifd_segmap_tnr_bc_1_4*/, 39 /*ifd_segmap_tnr_blend_1_4*/, 36 /*smurf_tnr_bc_1_0*/, 40 /*smurf_tnr_blend_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[9].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BE3187FFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], ifd_segmap_cas_1_4[40], smurf_cas_1_0[41], odr_ofs_mp_1_4[43], b2i_ds_output_1_1[44], odr_ofs_dp_1_4[45] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27C738FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {image_upscaler_1_1}[23], {ifd_segmap_cas_1_4}[24], {smurf_cas_1_0}[25], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[26], {odr_ofs_dp_1_4}[27] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FE738FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {image_upscaler_1_1}[28], {ifd_segmap_cas_1_4}[29], {smurf_cas_1_0}[30], {cas_1_1}[31], {odr_ofs_mp_1_4}[32], {b2i_ds_output_1_1}[33], {odr_ofs_dp_1_4}[34] } - uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 42 /*cas_1_1*/, 43 /*odr_ofs_mp_1_4*/, 44 /*b2i_ds_output_1_1*/, 45 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 40 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 41 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BFC630FFFE31, 0x0}; // { ifd_pipe_1_4[0], rgb_ir_2_0[4], ifd_lsc_1_4[5], rgbs_grid_1_1[9], ccm_3a_2_0[10], fr_grid_1_0[11], odr_awb_std_1_4[12], odr_awb_sat_1_4[13], aestatistics_2_1[14], odr_ae_1_4[15], odr_af_std_1_4[16], ifd_pdaf_1_4[17], pext_1_0[18], pafstatistics_1_2[19], odr_pdaf_1_4[20], ifd_gmv_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], image_upscaler_1_1[40], gmv_statistics_1_1[41], odr_gmv_feature_1_4[42], odr_gmv_match_1_4[43], ifd_segmap_cas_1_4[44], smurf_cas_1_0[45], odr_ofs_mp_1_4[47], b2i_ds_output_1_1[48], odr_ofs_dp_1_4[49] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27F8E71FFF062, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {image_upscaler_1_1}[24], {gmv_statistics_1_1}[25], {odr_gmv_feature_1_4}[26], {odr_gmv_match_1_4}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[30], {odr_ofs_dp_1_4}[31] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFCE71FFFE73, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgb_ir_2_0}[2], {ifd_lsc_1_4}[3], {lsc_1_2, gd_2_2, wb_1_1}[4], {rgbs_grid_1_1}[5], {ccm_3a_2_0}[6], {fr_grid_1_0}[7], {odr_awb_std_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {odr_af_std_1_4}[12], {ifd_pdaf_1_4}[13], {pext_1_0}[14], {pafstatistics_1_2}[15], {odr_pdaf_1_4}[16], {ifd_gmv_1_4}[17], {ifd_segmap_bnlm_1_4}[18], {smurf_bnlm_1_0}[19], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[20], {ifd_segmap_xnr_1_4}[21], {smurf_xnr_1_0}[22], {xnr_5_4, vcr_3_1, glim_2_0}[23], {ifd_segmap_acm_1_4}[24], {smurf_acm_1_0}[25], {acm_1_2, gammatm_v4, csc_1_1}[26], {b2i_ds_1_1}[27], {lbff_crop_espa_1_4}[28], {image_upscaler_1_1}[29], {gmv_statistics_1_1}[30], {odr_gmv_feature_1_4}[31], {odr_gmv_match_1_4}[32], {ifd_segmap_cas_1_4}[33], {smurf_cas_1_0}[34], {cas_1_1}[35], {odr_ofs_mp_1_4}[36], {b2i_ds_output_1_1}[37], {odr_ofs_dp_1_4}[38] } - uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 4 /*rgb_ir_2_0*/, 5 /*ifd_lsc_1_4*/, 6 /*lsc_1_2*/, 7 /*gd_2_2*/, 8 /*wb_1_1*/, 24 /*bnlm_3_4*/, 25 /*bxt_demosaic*/, 26 /*vcsc_2_0_b*/, 27 /*gltm_2_0*/, 30 /*xnr_5_4*/, 31 /*vcr_3_1*/, 32 /*glim_2_0*/, 35 /*acm_1_2*/, 36 /*gammatm_v4*/, 37 /*csc_1_1*/, 38 /*b2i_ds_1_1*/, 39 /*lbff_crop_espa_1_4*/, 40 /*image_upscaler_1_1*/, 46 /*cas_1_1*/, 47 /*odr_ofs_mp_1_4*/, 48 /*b2i_ds_output_1_1*/, 49 /*odr_ofs_dp_1_4*/, 9 /*rgbs_grid_1_1*/, 12 /*odr_awb_std_1_4*/, 13 /*odr_awb_sat_1_4*/, 10 /*ccm_3a_2_0*/, 14 /*aestatistics_2_1*/, 15 /*odr_ae_1_4*/, 11 /*fr_grid_1_0*/, 16 /*odr_af_std_1_4*/, 17 /*ifd_pdaf_1_4*/, 18 /*pext_1_0*/, 19 /*pafstatistics_1_2*/, 20 /*odr_pdaf_1_4*/, 21 /*ifd_gmv_1_4*/, 41 /*gmv_statistics_1_1*/, 42 /*odr_gmv_feature_1_4*/, 43 /*odr_gmv_match_1_4*/, 22 /*ifd_segmap_bnlm_1_4*/, 28 /*ifd_segmap_xnr_1_4*/, 33 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_cas_1_4*/, 23 /*smurf_bnlm_1_0*/, 29 /*smurf_xnr_1_0*/, 34 /*smurf_acm_1_0*/, 45 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[24].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 45, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[45] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x1DF18C3FF1F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], image_upscaler_1_1[38], ifd_segmap_cas_1_4[39], smurf_cas_1_0[40], odr_ofs_mp_1_4[42], b2i_ds_output_1_1[43], odr_ofs_dp_1_4[44] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13E39C7F83C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, pext_1_0, rgb_ir_2_0}[1], {pafstatistics_1_2}[2], {odr_pdaf_1_4}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_segmap_bnlm_1_4}[11], {smurf_bnlm_1_0}[12], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[13], {ifd_segmap_xnr_1_4}[14], {smurf_xnr_1_0}[15], {xnr_5_4, vcr_3_1, glim_2_0}[16], {ifd_segmap_acm_1_4}[17], {smurf_acm_1_0}[18], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[19], {lbff_crop_espa_1_4}[20], {image_upscaler_1_1}[21], {ifd_segmap_cas_1_4}[22], {smurf_cas_1_0}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FF39C7FF3F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {pext_1_0}[2], {rgb_ir_2_0}[3], {pafstatistics_1_2}[4], {odr_pdaf_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1}[7], {rgbs_grid_1_1}[8], {ccm_3a_2_0}[9], {fr_grid_1_0}[10], {odr_awb_std_1_4}[11], {odr_awb_sat_1_4}[12], {aestatistics_2_1}[13], {odr_ae_1_4}[14], {odr_af_std_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {image_upscaler_1_1}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1}[30], {odr_ofs_mp_1_4}[31], {b2i_ds_output_1_1}[32], {odr_ofs_dp_1_4}[33] } - uint8_t systemApisSizes[45] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*pext_1_0*/, 0 /*rgb_ir_2_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[45] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*pext_1_0*/, 6 /*pafstatistics_1_2*/, 7 /*odr_pdaf_1_4*/, 8 /*ifd_lsc_1_4*/, 9 /*lsc_1_2*/, 10 /*gd_2_2*/, 11 /*wb_1_1*/, 22 /*bnlm_3_4*/, 23 /*bxt_demosaic*/, 24 /*vcsc_2_0_b*/, 25 /*gltm_2_0*/, 28 /*xnr_5_4*/, 29 /*vcr_3_1*/, 30 /*glim_2_0*/, 33 /*acm_1_2*/, 34 /*gammatm_v4*/, 35 /*csc_1_1*/, 36 /*b2i_ds_1_1*/, 37 /*lbff_crop_espa_1_4*/, 38 /*image_upscaler_1_1*/, 41 /*cas_1_1*/, 42 /*odr_ofs_mp_1_4*/, 43 /*b2i_ds_output_1_1*/, 44 /*odr_ofs_dp_1_4*/, 12 /*rgbs_grid_1_1*/, 15 /*odr_awb_std_1_4*/, 16 /*odr_awb_sat_1_4*/, 13 /*ccm_3a_2_0*/, 17 /*aestatistics_2_1*/, 18 /*odr_ae_1_4*/, 14 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_segmap_bnlm_1_4*/, 26 /*ifd_segmap_xnr_1_4*/, 31 /*ifd_segmap_acm_1_4*/, 39 /*ifd_segmap_cas_1_4*/, 21 /*smurf_bnlm_1_0*/, 27 /*smurf_xnr_1_0*/, 32 /*smurf_acm_1_0*/, 40 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[22].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 43213 /*pext_1_0*/, 14488 /*rgb_ir_2_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x1DFE3187FF1F1, 0x0}; // { ifd_pipe_1_4[0], pext_1_0[4], rgb_ir_2_0[5], pafstatistics_1_2[6], odr_pdaf_1_4[7], ifd_lsc_1_4[8], rgbs_grid_1_1[12], ccm_3a_2_0[13], fr_grid_1_0[14], odr_awb_std_1_4[15], odr_awb_sat_1_4[16], aestatistics_2_1[17], odr_ae_1_4[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], gmv_statistics_1_1[40], odr_gmv_feature_1_4[41], odr_gmv_match_1_4[42], ifd_segmap_cas_1_4[43], smurf_cas_1_0[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13FC738FF83C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, pext_1_0, rgb_ir_2_0}[1], {pafstatistics_1_2}[2], {odr_pdaf_1_4}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sat_1_4}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {image_upscaler_1_1}[22], {gmv_statistics_1_1}[23], {odr_gmv_feature_1_4}[24], {odr_gmv_match_1_4}[25], {ifd_segmap_cas_1_4}[26], {smurf_cas_1_0}[27], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[28], {odr_ofs_dp_1_4}[29] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFE738FFF3F3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {pext_1_0}[2], {rgb_ir_2_0}[3], {pafstatistics_1_2}[4], {odr_pdaf_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1}[7], {rgbs_grid_1_1}[8], {ccm_3a_2_0}[9], {fr_grid_1_0}[10], {odr_awb_std_1_4}[11], {odr_awb_sat_1_4}[12], {aestatistics_2_1}[13], {odr_ae_1_4}[14], {odr_af_std_1_4}[15], {ifd_gmv_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {image_upscaler_1_1}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_cas_1_4}[32], {smurf_cas_1_0}[33], {cas_1_1}[34], {odr_ofs_mp_1_4}[35], {b2i_ds_output_1_1}[36], {odr_ofs_dp_1_4}[37] } - uint8_t systemApisSizes[49] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*pext_1_0*/, 0 /*rgb_ir_2_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[49] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*pext_1_0*/, 6 /*pafstatistics_1_2*/, 7 /*odr_pdaf_1_4*/, 8 /*ifd_lsc_1_4*/, 9 /*lsc_1_2*/, 10 /*gd_2_2*/, 11 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 12 /*rgbs_grid_1_1*/, 15 /*odr_awb_std_1_4*/, 16 /*odr_awb_sat_1_4*/, 13 /*ccm_3a_2_0*/, 17 /*aestatistics_2_1*/, 18 /*odr_ae_1_4*/, 14 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_gmv_1_4*/, 40 /*gmv_statistics_1_1*/, 41 /*odr_gmv_feature_1_4*/, 42 /*odr_gmv_match_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 43 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 44 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void IsysDolWithCvOuterNode::Init(IsysDolWithCvOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(2, NodeTypes::Isys, 5, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[5] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/, 50407 /*is_odr_c*/}; - uint64_t kernelsRcbBitmap[] = {0x1B, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3], is_odr_c[4] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x1E, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_c}[4] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1F, 0x0}; // {{crop_bpp_adjust_1_0}[0], {upipe_1_0}[1], {isys_drainer_1_0}[2], {is_odr_a}[3], {is_odr_c}[4] } - uint8_t systemApisSizes[5] = {0 /*crop_bpp_adjust_1_0*/, 34 /*upipe_1_0*/, 20 /*isys_drainer_1_0*/, 0 /*is_odr_a*/, 0 /*is_odr_c*/}; - uint16_t runKernelConfigOrder[5] = {0 /*crop_bpp_adjust_1_0*/, 1 /*upipe_1_0*/, 2 /*isys_drainer_1_0*/, 3 /*is_odr_a*/, 4 /*is_odr_c*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // set default inner Node - setInnerNode(None); -} - -void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::Init(LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 45, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[45] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x1DF18C3C7FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], image_upscaler_1_1[38], ifd_segmap_cas_1_4[39], smurf_cas_1_0[40], odr_ofs_mp_1_4[42], b2i_ds_output_1_1[43], odr_ofs_dp_1_4[44] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13E39C78FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_segmap_bnlm_1_4}[11], {smurf_bnlm_1_0}[12], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[13], {ifd_segmap_xnr_1_4}[14], {smurf_xnr_1_0}[15], {xnr_5_4, vcr_3_1, glim_2_0}[16], {ifd_segmap_acm_1_4}[17], {smurf_acm_1_0}[18], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[19], {lbff_crop_espa_1_4}[20], {image_upscaler_1_1}[21], {ifd_segmap_cas_1_4}[22], {smurf_cas_1_0}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FF39C7CFFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1}[23], {b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {image_upscaler_1_1}[26], {ifd_segmap_cas_1_4}[27], {smurf_cas_1_0}[28], {cas_1_1}[29], {odr_ofs_mp_1_4}[30], {b2i_ds_output_1_1}[31], {odr_ofs_dp_1_4}[32] } - uint8_t systemApisSizes[45] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[45] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 22 /*bnlm_3_4*/, 23 /*bxt_demosaic*/, 24 /*vcsc_2_0_b*/, 25 /*gltm_2_0*/, 28 /*xnr_5_4*/, 29 /*vcr_3_1*/, 30 /*glim_2_0*/, 33 /*acm_1_2*/, 34 /*gammatm_v4*/, 35 /*csc_1_1*/, 36 /*b2i_ds_1_1*/, 37 /*lbff_crop_espa_1_4*/, 38 /*image_upscaler_1_1*/, 41 /*cas_1_1*/, 42 /*odr_ofs_mp_1_4*/, 43 /*b2i_ds_output_1_1*/, 44 /*odr_ofs_dp_1_4*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_segmap_bnlm_1_4*/, 26 /*ifd_segmap_xnr_1_4*/, 31 /*ifd_segmap_acm_1_4*/, 39 /*ifd_segmap_cas_1_4*/, 21 /*smurf_bnlm_1_0*/, 27 /*smurf_xnr_1_0*/, 32 /*smurf_acm_1_0*/, 40 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[22].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol2InputsWithGmvNoTnrWithSapOuterNode::Init(LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 49, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[49] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x1DFE3187C7FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], gmv_statistics_1_1[40], odr_gmv_feature_1_4[41], odr_gmv_match_1_4[42], ifd_segmap_cas_1_4[43], smurf_cas_1_0[44], odr_ofs_mp_1_4[46], b2i_ds_output_1_1[47], odr_ofs_dp_1_4[48] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13FC738F8FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {image_upscaler_1_1}[22], {gmv_statistics_1_1}[23], {odr_gmv_feature_1_4}[24], {odr_gmv_match_1_4}[25], {ifd_segmap_cas_1_4}[26], {smurf_cas_1_0}[27], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[28], {odr_ofs_dp_1_4}[29] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFE738FCFFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_gmv_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {image_upscaler_1_1}[27], {gmv_statistics_1_1}[28], {odr_gmv_feature_1_4}[29], {odr_gmv_match_1_4}[30], {ifd_segmap_cas_1_4}[31], {smurf_cas_1_0}[32], {cas_1_1}[33], {odr_ofs_mp_1_4}[34], {b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36] } - uint8_t systemApisSizes[49] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[49] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 45 /*cas_1_1*/, 46 /*odr_ofs_mp_1_4*/, 47 /*b2i_ds_output_1_1*/, 48 /*odr_ofs_dp_1_4*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_gmv_1_4*/, 40 /*gmv_statistics_1_1*/, 41 /*odr_gmv_feature_1_4*/, 42 /*odr_gmv_match_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 43 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 44 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::Init(LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 61, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[61] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x1DFBB58C61FC7FC3, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_tnr_sp_bc_yuv4nm1_1_4[20], ifd_tnr_sp_bc_rs4nm1_1_4[21], ifd_tnr_fp_blend_yuvnm1_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], tnr_scaler_lb_1_1[42], ifd_segmap_tnr_bc_1_4[44], smurf_tnr_bc_1_0[45], odr_tnr_sp_bc_rs4n_1_4[47], ifd_segmap_tnr_blend_1_4[48], smurf_tnr_blend_1_0[49], odr_tnr_fp_yuvn_1_4[51], tnr_scaler_fp_1_1[52], image_upscaler_1_1[53], odr_tnr_scale_fp_yuv4n_1_4[54], ifd_segmap_cas_1_4[55], smurf_cas_1_0[56], odr_ofs_mp_1_4[58], b2i_ds_output_1_1[59], odr_ofs_dp_1_4[60] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x13C77B1CE3F8FE06, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_tnr_sp_bc_yuv4nm1_1_4}[11], {ifd_tnr_sp_bc_rs4nm1_1_4}[12], {ifd_tnr_fp_blend_yuvnm1_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[24], {tnr7_ims_1_2}[25], {ifd_segmap_tnr_bc_1_4}[26], {smurf_tnr_bc_1_0}[27], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[28], {ifd_segmap_tnr_blend_1_4}[29], {smurf_tnr_blend_1_0}[30], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[31], {odr_tnr_scale_fp_yuv4n_1_4}[32], {ifd_segmap_cas_1_4}[33], {smurf_cas_1_0}[34], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[35], {odr_ofs_dp_1_4}[36] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x1FFFFF9CE3FCFFC7, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_tnr_sp_bc_yuv4nm1_1_4}[15], {ifd_tnr_sp_bc_rs4nm1_1_4}[16], {ifd_tnr_fp_blend_yuvnm1_1_4}[17], {ifd_segmap_bnlm_1_4}[18], {smurf_bnlm_1_0}[19], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[20], {ifd_segmap_xnr_1_4}[21], {smurf_xnr_1_0}[22], {xnr_5_4, vcr_3_1, glim_2_0}[23], {ifd_segmap_acm_1_4}[24], {smurf_acm_1_0}[25], {acm_1_2, gammatm_v4, csc_1_1}[26], {b2i_ds_1_1}[27], {lbff_crop_espa_1_4}[28], {tnr7_spatial_1_1}[29], {tnr_scaler_lb_1_1}[30], {tnr7_ims_1_2}[31], {ifd_segmap_tnr_bc_1_4}[32], {smurf_tnr_bc_1_0}[33], {tnr7_bc_1_2}[34], {odr_tnr_sp_bc_rs4n_1_4}[35], {ifd_segmap_tnr_blend_1_4}[36], {smurf_tnr_blend_1_0}[37], {tnr7_blend_1_1}[38], {odr_tnr_fp_yuvn_1_4}[39], {tnr_scaler_fp_1_1}[40], {image_upscaler_1_1}[41], {odr_tnr_scale_fp_yuv4n_1_4}[42], {ifd_segmap_cas_1_4}[43], {smurf_cas_1_0}[44], {cas_1_1}[45], {odr_ofs_mp_1_4}[46], {b2i_ds_output_1_1}[47], {odr_ofs_dp_1_4}[48] } - uint8_t systemApisSizes[61] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[61] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 25 /*bnlm_3_4*/, 26 /*bxt_demosaic*/, 27 /*vcsc_2_0_b*/, 28 /*gltm_2_0*/, 31 /*xnr_5_4*/, 32 /*vcr_3_1*/, 33 /*glim_2_0*/, 36 /*acm_1_2*/, 37 /*gammatm_v4*/, 38 /*csc_1_1*/, 39 /*b2i_ds_1_1*/, 40 /*lbff_crop_espa_1_4*/, 41 /*tnr7_spatial_1_1*/, 42 /*tnr_scaler_lb_1_1*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 21 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 43 /*tnr7_ims_1_2*/, 46 /*tnr7_bc_1_2*/, 47 /*odr_tnr_sp_bc_rs4n_1_4*/, 22 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 50 /*tnr7_blend_1_1*/, 53 /*image_upscaler_1_1*/, 57 /*cas_1_1*/, 58 /*odr_ofs_mp_1_4*/, 59 /*b2i_ds_output_1_1*/, 60 /*odr_ofs_dp_1_4*/, 51 /*odr_tnr_fp_yuvn_1_4*/, 52 /*tnr_scaler_fp_1_1*/, 54 /*odr_tnr_scale_fp_yuv4n_1_4*/, 23 /*ifd_segmap_bnlm_1_4*/, 29 /*ifd_segmap_xnr_1_4*/, 34 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_tnr_bc_1_4*/, 48 /*ifd_segmap_tnr_blend_1_4*/, 55 /*ifd_segmap_cas_1_4*/, 24 /*smurf_bnlm_1_0*/, 30 /*smurf_xnr_1_0*/, 35 /*smurf_acm_1_0*/, 45 /*smurf_tnr_bc_1_0*/, 49 /*smurf_tnr_blend_1_0*/, 56 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[25].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol2InputsWithGmvWithTnrWithSapOuterNode::Init(LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 65, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[65] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0xDFBBEB18C3FC7FC3, 0x1}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], rgbs_grid_1_1[6], ccm_3a_2_0[7], rgb_ir_2_0[8], odr_awb_std_1_4[9], odr_awb_sve_1_4[10], odr_awb_sat_1_4[11], aestatistics_2_1[12], odr_ae_1_4[13], ifd_lsc_1_4[14], fr_grid_1_0[18], odr_af_std_1_4[19], ifd_gmv_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], gmv_statistics_1_1[45], odr_gmv_feature_1_4[46], odr_gmv_match_1_4[47], ifd_segmap_tnr_bc_1_4[48], smurf_tnr_bc_1_0[49], odr_tnr_sp_bc_rs4n_1_4[51], ifd_segmap_tnr_blend_1_4[52], smurf_tnr_blend_1_0[53], odr_tnr_fp_yuvn_1_4[55], tnr_scaler_fp_1_1[56], image_upscaler_1_1[57], odr_tnr_scale_fp_yuv4n_1_4[58], ifd_segmap_cas_1_4[59], smurf_cas_1_0[60], odr_ofs_mp_1_4[62], b2i_ds_output_1_1[63], odr_ofs_dp_1_4[64] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x3C77F639C7F8FE06, 0x1}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[9], {odr_af_std_1_4}[10], {ifd_gmv_1_4}[11], {ifd_tnr_sp_bc_yuv4nm1_1_4}[12], {ifd_tnr_sp_bc_rs4nm1_1_4}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[23], {lbff_crop_espa_1_4}[24], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[25], {tnr7_ims_1_2}[26], {gmv_statistics_1_1}[27], {odr_gmv_feature_1_4}[28], {odr_gmv_match_1_4}[29], {ifd_segmap_tnr_bc_1_4}[30], {smurf_tnr_bc_1_0}[31], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[32], {ifd_segmap_tnr_blend_1_4}[33], {smurf_tnr_blend_1_0}[34], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[35], {odr_tnr_scale_fp_yuv4n_1_4}[36], {ifd_segmap_cas_1_4}[37], {smurf_cas_1_0}[38], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[39], {odr_ofs_dp_1_4}[40] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFF39C7FCFFC7, 0x1}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[2], {rgbs_grid_1_1}[3], {ccm_3a_2_0}[4], {rgb_ir_2_0}[5], {odr_awb_std_1_4}[6], {odr_awb_sve_1_4}[7], {odr_awb_sat_1_4}[8], {aestatistics_2_1}[9], {odr_ae_1_4}[10], {ifd_lsc_1_4}[11], {lsc_1_2, gd_2_2, wb_1_1}[12], {fr_grid_1_0}[13], {odr_af_std_1_4}[14], {ifd_gmv_1_4}[15], {ifd_tnr_sp_bc_yuv4nm1_1_4}[16], {ifd_tnr_sp_bc_rs4nm1_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {tnr7_spatial_1_1}[30], {tnr_scaler_lb_1_1}[31], {tnr7_ims_1_2}[32], {gmv_statistics_1_1}[33], {odr_gmv_feature_1_4}[34], {odr_gmv_match_1_4}[35], {ifd_segmap_tnr_bc_1_4}[36], {smurf_tnr_bc_1_0}[37], {tnr7_bc_1_2}[38], {odr_tnr_sp_bc_rs4n_1_4}[39], {ifd_segmap_tnr_blend_1_4}[40], {smurf_tnr_blend_1_0}[41], {tnr7_blend_1_1}[42], {odr_tnr_fp_yuvn_1_4}[43], {tnr_scaler_fp_1_1}[44], {image_upscaler_1_1}[45], {odr_tnr_scale_fp_yuv4n_1_4}[46], {ifd_segmap_cas_1_4}[47], {smurf_cas_1_0}[48], {cas_1_1}[49], {odr_ofs_mp_1_4}[50], {b2i_ds_output_1_1}[51], {odr_ofs_dp_1_4}[52] } - uint8_t systemApisSizes[65] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[65] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*dol_lite_1_2*/, 3 /*bxt_blc*/, 4 /*linearization2_0*/, 5 /*dpc_2_2*/, 8 /*rgb_ir_2_0*/, 6 /*rgbs_grid_1_1*/, 9 /*odr_awb_std_1_4*/, 10 /*odr_awb_sve_1_4*/, 11 /*odr_awb_sat_1_4*/, 7 /*ccm_3a_2_0*/, 12 /*aestatistics_2_1*/, 13 /*odr_ae_1_4*/, 14 /*ifd_lsc_1_4*/, 15 /*lsc_1_2*/, 16 /*gd_2_2*/, 17 /*wb_1_1*/, 26 /*bnlm_3_4*/, 27 /*bxt_demosaic*/, 28 /*vcsc_2_0_b*/, 29 /*gltm_2_0*/, 32 /*xnr_5_4*/, 33 /*vcr_3_1*/, 34 /*glim_2_0*/, 37 /*acm_1_2*/, 38 /*gammatm_v4*/, 39 /*csc_1_1*/, 40 /*b2i_ds_1_1*/, 41 /*lbff_crop_espa_1_4*/, 42 /*tnr7_spatial_1_1*/, 43 /*tnr_scaler_lb_1_1*/, 18 /*fr_grid_1_0*/, 19 /*odr_af_std_1_4*/, 20 /*ifd_gmv_1_4*/, 45 /*gmv_statistics_1_1*/, 46 /*odr_gmv_feature_1_4*/, 47 /*odr_gmv_match_1_4*/, 21 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 22 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 44 /*tnr7_ims_1_2*/, 50 /*tnr7_bc_1_2*/, 51 /*odr_tnr_sp_bc_rs4n_1_4*/, 23 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 54 /*tnr7_blend_1_1*/, 57 /*image_upscaler_1_1*/, 61 /*cas_1_1*/, 62 /*odr_ofs_mp_1_4*/, 63 /*b2i_ds_output_1_1*/, 64 /*odr_ofs_dp_1_4*/, 55 /*odr_tnr_fp_yuvn_1_4*/, 56 /*tnr_scaler_fp_1_1*/, 58 /*odr_tnr_scale_fp_yuv4n_1_4*/, 24 /*ifd_segmap_bnlm_1_4*/, 30 /*ifd_segmap_xnr_1_4*/, 35 /*ifd_segmap_acm_1_4*/, 48 /*ifd_segmap_tnr_bc_1_4*/, 52 /*ifd_segmap_tnr_blend_1_4*/, 59 /*ifd_segmap_cas_1_4*/, 25 /*smurf_bnlm_1_0*/, 31 /*smurf_xnr_1_0*/, 36 /*smurf_acm_1_0*/, 49 /*smurf_tnr_bc_1_0*/, 53 /*smurf_tnr_blend_1_0*/, 60 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[26].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::Init(LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 46, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[46] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BE31878FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_segmap_bnlm_1_4[21], smurf_bnlm_1_0[22], ifd_segmap_xnr_1_4[27], smurf_xnr_1_0[28], ifd_segmap_acm_1_4[32], smurf_acm_1_0[33], b2i_ds_1_1[37], lbff_crop_espa_1_4[38], image_upscaler_1_1[39], ifd_segmap_cas_1_4[40], smurf_cas_1_0[41], odr_ofs_mp_1_4[43], b2i_ds_output_1_1[44], odr_ofs_dp_1_4[45] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27C738F1FC0E, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_segmap_bnlm_1_4}[12], {smurf_bnlm_1_0}[13], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[14], {ifd_segmap_xnr_1_4}[15], {smurf_xnr_1_0}[16], {xnr_5_4, vcr_3_1, glim_2_0}[17], {ifd_segmap_acm_1_4}[18], {smurf_acm_1_0}[19], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[20], {lbff_crop_espa_1_4}[21], {image_upscaler_1_1}[22], {ifd_segmap_cas_1_4}[23], {smurf_cas_1_0}[24], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[25], {odr_ofs_dp_1_4}[26] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FE738F9FF8F, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1}[24], {b2i_ds_1_1}[25], {lbff_crop_espa_1_4}[26], {image_upscaler_1_1}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1}[30], {odr_ofs_mp_1_4}[31], {b2i_ds_output_1_1}[32], {odr_ofs_dp_1_4}[33] } - uint8_t systemApisSizes[46] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[46] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 23 /*bnlm_3_4*/, 24 /*bxt_demosaic*/, 25 /*vcsc_2_0_b*/, 26 /*gltm_2_0*/, 29 /*xnr_5_4*/, 30 /*vcr_3_1*/, 31 /*glim_2_0*/, 34 /*acm_1_2*/, 35 /*gammatm_v4*/, 36 /*csc_1_1*/, 37 /*b2i_ds_1_1*/, 38 /*lbff_crop_espa_1_4*/, 39 /*image_upscaler_1_1*/, 42 /*cas_1_1*/, 43 /*odr_ofs_mp_1_4*/, 44 /*b2i_ds_output_1_1*/, 45 /*odr_ofs_dp_1_4*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_segmap_bnlm_1_4*/, 27 /*ifd_segmap_xnr_1_4*/, 32 /*ifd_segmap_acm_1_4*/, 40 /*ifd_segmap_cas_1_4*/, 22 /*smurf_bnlm_1_0*/, 28 /*smurf_xnr_1_0*/, 33 /*smurf_acm_1_0*/, 41 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[23].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::Init(LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 50, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[50] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BFC630F8FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_gmv_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], image_upscaler_1_1[40], gmv_statistics_1_1[41], odr_gmv_feature_1_4[42], odr_gmv_match_1_4[43], ifd_segmap_cas_1_4[44], smurf_cas_1_0[45], odr_ofs_mp_1_4[47], b2i_ds_output_1_1[48], odr_ofs_dp_1_4[49] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x27F8E71F1FC0E, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_gmv_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {image_upscaler_1_1}[23], {gmv_statistics_1_1}[24], {odr_gmv_feature_1_4}[25], {odr_gmv_match_1_4}[26], {ifd_segmap_cas_1_4}[27], {smurf_cas_1_0}[28], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[29], {odr_ofs_dp_1_4}[30] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFCE71F9FF8F, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_gmv_1_4}[16], {ifd_segmap_bnlm_1_4}[17], {smurf_bnlm_1_0}[18], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[19], {ifd_segmap_xnr_1_4}[20], {smurf_xnr_1_0}[21], {xnr_5_4, vcr_3_1, glim_2_0}[22], {ifd_segmap_acm_1_4}[23], {smurf_acm_1_0}[24], {acm_1_2, gammatm_v4, csc_1_1}[25], {b2i_ds_1_1}[26], {lbff_crop_espa_1_4}[27], {image_upscaler_1_1}[28], {gmv_statistics_1_1}[29], {odr_gmv_feature_1_4}[30], {odr_gmv_match_1_4}[31], {ifd_segmap_cas_1_4}[32], {smurf_cas_1_0}[33], {cas_1_1}[34], {odr_ofs_mp_1_4}[35], {b2i_ds_output_1_1}[36], {odr_ofs_dp_1_4}[37] } - uint8_t systemApisSizes[50] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[50] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 24 /*bnlm_3_4*/, 25 /*bxt_demosaic*/, 26 /*vcsc_2_0_b*/, 27 /*gltm_2_0*/, 30 /*xnr_5_4*/, 31 /*vcr_3_1*/, 32 /*glim_2_0*/, 35 /*acm_1_2*/, 36 /*gammatm_v4*/, 37 /*csc_1_1*/, 38 /*b2i_ds_1_1*/, 39 /*lbff_crop_espa_1_4*/, 40 /*image_upscaler_1_1*/, 46 /*cas_1_1*/, 47 /*odr_ofs_mp_1_4*/, 48 /*b2i_ds_output_1_1*/, 49 /*odr_ofs_dp_1_4*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_gmv_1_4*/, 41 /*gmv_statistics_1_1*/, 42 /*odr_gmv_feature_1_4*/, 43 /*odr_gmv_match_1_4*/, 22 /*ifd_segmap_bnlm_1_4*/, 28 /*ifd_segmap_xnr_1_4*/, 33 /*ifd_segmap_acm_1_4*/, 44 /*ifd_segmap_cas_1_4*/, 23 /*smurf_bnlm_1_0*/, 29 /*smurf_xnr_1_0*/, 34 /*smurf_acm_1_0*/, 45 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[24].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::Init(LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 62, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[62] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x3BF76B18C3F8FF87, 0x0}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_tnr_sp_bc_yuv4nm1_1_4[21], ifd_tnr_sp_bc_rs4nm1_1_4[22], ifd_tnr_fp_blend_yuvnm1_1_4[23], ifd_segmap_bnlm_1_4[24], smurf_bnlm_1_0[25], ifd_segmap_xnr_1_4[30], smurf_xnr_1_0[31], ifd_segmap_acm_1_4[35], smurf_acm_1_0[36], b2i_ds_1_1[40], lbff_crop_espa_1_4[41], tnr_scaler_lb_1_1[43], ifd_segmap_tnr_bc_1_4[45], smurf_tnr_bc_1_0[46], odr_tnr_sp_bc_rs4n_1_4[48], ifd_segmap_tnr_blend_1_4[49], smurf_tnr_blend_1_0[50], odr_tnr_fp_yuvn_1_4[52], tnr_scaler_fp_1_1[53], image_upscaler_1_1[54], odr_tnr_scale_fp_yuv4n_1_4[55], ifd_segmap_cas_1_4[56], smurf_cas_1_0[57], odr_ofs_mp_1_4[59], b2i_ds_output_1_1[60], odr_ofs_dp_1_4[61] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x278EF639C7F1FC0E, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_tnr_sp_bc_yuv4nm1_1_4}[12], {ifd_tnr_sp_bc_rs4nm1_1_4}[13], {ifd_tnr_fp_blend_yuvnm1_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[23], {lbff_crop_espa_1_4}[24], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[25], {tnr7_ims_1_2}[26], {ifd_segmap_tnr_bc_1_4}[27], {smurf_tnr_bc_1_0}[28], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[29], {ifd_segmap_tnr_blend_1_4}[30], {smurf_tnr_blend_1_0}[31], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[32], {odr_tnr_scale_fp_yuv4n_1_4}[33], {ifd_segmap_cas_1_4}[34], {smurf_cas_1_0}[35], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[36], {odr_ofs_dp_1_4}[37] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x3FFFFF39C7F9FF8F, 0x0}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_tnr_sp_bc_yuv4nm1_1_4}[16], {ifd_tnr_sp_bc_rs4nm1_1_4}[17], {ifd_tnr_fp_blend_yuvnm1_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {tnr7_spatial_1_1}[30], {tnr_scaler_lb_1_1}[31], {tnr7_ims_1_2}[32], {ifd_segmap_tnr_bc_1_4}[33], {smurf_tnr_bc_1_0}[34], {tnr7_bc_1_2}[35], {odr_tnr_sp_bc_rs4n_1_4}[36], {ifd_segmap_tnr_blend_1_4}[37], {smurf_tnr_blend_1_0}[38], {tnr7_blend_1_1}[39], {odr_tnr_fp_yuvn_1_4}[40], {tnr_scaler_fp_1_1}[41], {image_upscaler_1_1}[42], {odr_tnr_scale_fp_yuv4n_1_4}[43], {ifd_segmap_cas_1_4}[44], {smurf_cas_1_0}[45], {cas_1_1}[46], {odr_ofs_mp_1_4}[47], {b2i_ds_output_1_1}[48], {odr_ofs_dp_1_4}[49] } - uint8_t systemApisSizes[62] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[62] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 26 /*bnlm_3_4*/, 27 /*bxt_demosaic*/, 28 /*vcsc_2_0_b*/, 29 /*gltm_2_0*/, 32 /*xnr_5_4*/, 33 /*vcr_3_1*/, 34 /*glim_2_0*/, 37 /*acm_1_2*/, 38 /*gammatm_v4*/, 39 /*csc_1_1*/, 40 /*b2i_ds_1_1*/, 41 /*lbff_crop_espa_1_4*/, 42 /*tnr7_spatial_1_1*/, 43 /*tnr_scaler_lb_1_1*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 22 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 44 /*tnr7_ims_1_2*/, 47 /*tnr7_bc_1_2*/, 48 /*odr_tnr_sp_bc_rs4n_1_4*/, 23 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 51 /*tnr7_blend_1_1*/, 54 /*image_upscaler_1_1*/, 58 /*cas_1_1*/, 59 /*odr_ofs_mp_1_4*/, 60 /*b2i_ds_output_1_1*/, 61 /*odr_ofs_dp_1_4*/, 52 /*odr_tnr_fp_yuvn_1_4*/, 53 /*tnr_scaler_fp_1_1*/, 55 /*odr_tnr_scale_fp_yuv4n_1_4*/, 24 /*ifd_segmap_bnlm_1_4*/, 30 /*ifd_segmap_xnr_1_4*/, 35 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_tnr_bc_1_4*/, 49 /*ifd_segmap_tnr_blend_1_4*/, 56 /*ifd_segmap_cas_1_4*/, 25 /*smurf_bnlm_1_0*/, 31 /*smurf_xnr_1_0*/, 36 /*smurf_acm_1_0*/, 46 /*smurf_tnr_bc_1_0*/, 50 /*smurf_tnr_blend_1_0*/, 57 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[26].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffDol3InputsWithGmvWithTnrWithSapOuterNode::Init(LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 66, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[66] = {52446 /*ifd_pipe_1_4*/, 24678 /*ifd_pipe_long_1_4*/, 4386 /*ifd_pipe_short_smth_1_4*/, 54871 /*dol_lite_1_2*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 14488 /*rgb_ir_2_0*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 26958 /*fr_grid_1_0*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0xBF77D63187F8FF87, 0x3}; // { ifd_pipe_1_4[0], ifd_pipe_long_1_4[1], ifd_pipe_short_smth_1_4[2], rgbs_grid_1_1[7], ccm_3a_2_0[8], rgb_ir_2_0[9], odr_awb_std_1_4[10], odr_awb_sve_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], ifd_lsc_1_4[15], fr_grid_1_0[19], odr_af_std_1_4[20], ifd_gmv_1_4[21], ifd_tnr_sp_bc_yuv4nm1_1_4[22], ifd_tnr_sp_bc_rs4nm1_1_4[23], ifd_tnr_fp_blend_yuvnm1_1_4[24], ifd_segmap_bnlm_1_4[25], smurf_bnlm_1_0[26], ifd_segmap_xnr_1_4[31], smurf_xnr_1_0[32], ifd_segmap_acm_1_4[36], smurf_acm_1_0[37], b2i_ds_1_1[41], lbff_crop_espa_1_4[42], tnr_scaler_lb_1_1[44], gmv_statistics_1_1[46], odr_gmv_feature_1_4[47], odr_gmv_match_1_4[48], ifd_segmap_tnr_bc_1_4[49], smurf_tnr_bc_1_0[50], odr_tnr_sp_bc_rs4n_1_4[52], ifd_segmap_tnr_blend_1_4[53], smurf_tnr_blend_1_0[54], odr_tnr_fp_yuvn_1_4[56], tnr_scaler_fp_1_1[57], image_upscaler_1_1[58], odr_tnr_scale_fp_yuv4n_1_4[59], ifd_segmap_cas_1_4[60], smurf_cas_1_0[61], odr_ofs_mp_1_4[63], b2i_ds_output_1_1[64], odr_ofs_dp_1_4[65] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x78EFEC738FF1FC0E, 0x2}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, ccm_3a_2_0, rgb_ir_2_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sve_1_4}[5], {odr_awb_sat_1_4}[6], {aestatistics_2_1}[7], {odr_ae_1_4}[8], {ifd_lsc_1_4}[9], {lsc_1_2, gd_2_2, wb_1_1, fr_grid_1_0}[10], {odr_af_std_1_4}[11], {ifd_gmv_1_4}[12], {ifd_tnr_sp_bc_yuv4nm1_1_4}[13], {ifd_tnr_sp_bc_rs4nm1_1_4}[14], {ifd_tnr_fp_blend_yuvnm1_1_4}[15], {ifd_segmap_bnlm_1_4}[16], {smurf_bnlm_1_0}[17], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[18], {ifd_segmap_xnr_1_4}[19], {smurf_xnr_1_0}[20], {xnr_5_4, vcr_3_1, glim_2_0}[21], {ifd_segmap_acm_1_4}[22], {smurf_acm_1_0}[23], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {tnr7_spatial_1_1, tnr_scaler_lb_1_1}[26], {tnr7_ims_1_2}[27], {gmv_statistics_1_1}[28], {odr_gmv_feature_1_4}[29], {odr_gmv_match_1_4}[30], {ifd_segmap_tnr_bc_1_4}[31], {smurf_tnr_bc_1_0}[32], {tnr7_bc_1_2, odr_tnr_sp_bc_rs4n_1_4}[33], {ifd_segmap_tnr_blend_1_4}[34], {smurf_tnr_blend_1_0}[35], {tnr7_blend_1_1, odr_tnr_fp_yuvn_1_4, tnr_scaler_fp_1_1, image_upscaler_1_1}[36], {odr_tnr_scale_fp_yuv4n_1_4}[37], {ifd_segmap_cas_1_4}[38], {smurf_cas_1_0}[39], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[40], {odr_ofs_dp_1_4}[41] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFFFFFE738FF9FF8F, 0x3}; // {{ifd_pipe_1_4}[0], {ifd_pipe_long_1_4}[1], {ifd_pipe_short_smth_1_4}[2], {dol_lite_1_2, bxt_blc, linearization2_0, dpc_2_2}[3], {rgbs_grid_1_1}[4], {ccm_3a_2_0}[5], {rgb_ir_2_0}[6], {odr_awb_std_1_4}[7], {odr_awb_sve_1_4}[8], {odr_awb_sat_1_4}[9], {aestatistics_2_1}[10], {odr_ae_1_4}[11], {ifd_lsc_1_4}[12], {lsc_1_2, gd_2_2, wb_1_1}[13], {fr_grid_1_0}[14], {odr_af_std_1_4}[15], {ifd_gmv_1_4}[16], {ifd_tnr_sp_bc_yuv4nm1_1_4}[17], {ifd_tnr_sp_bc_rs4nm1_1_4}[18], {ifd_tnr_fp_blend_yuvnm1_1_4}[19], {ifd_segmap_bnlm_1_4}[20], {smurf_bnlm_1_0}[21], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[22], {ifd_segmap_xnr_1_4}[23], {smurf_xnr_1_0}[24], {xnr_5_4, vcr_3_1, glim_2_0}[25], {ifd_segmap_acm_1_4}[26], {smurf_acm_1_0}[27], {acm_1_2, gammatm_v4, csc_1_1}[28], {b2i_ds_1_1}[29], {lbff_crop_espa_1_4}[30], {tnr7_spatial_1_1}[31], {tnr_scaler_lb_1_1}[32], {tnr7_ims_1_2}[33], {gmv_statistics_1_1}[34], {odr_gmv_feature_1_4}[35], {odr_gmv_match_1_4}[36], {ifd_segmap_tnr_bc_1_4}[37], {smurf_tnr_bc_1_0}[38], {tnr7_bc_1_2}[39], {odr_tnr_sp_bc_rs4n_1_4}[40], {ifd_segmap_tnr_blend_1_4}[41], {smurf_tnr_blend_1_0}[42], {tnr7_blend_1_1}[43], {odr_tnr_fp_yuvn_1_4}[44], {tnr_scaler_fp_1_1}[45], {image_upscaler_1_1}[46], {odr_tnr_scale_fp_yuv4n_1_4}[47], {ifd_segmap_cas_1_4}[48], {smurf_cas_1_0}[49], {cas_1_1}[50], {odr_ofs_mp_1_4}[51], {b2i_ds_output_1_1}[52], {odr_ofs_dp_1_4}[53] } - uint8_t systemApisSizes[66] = {220 /*ifd_pipe_1_4*/, 220 /*ifd_pipe_long_1_4*/, 220 /*ifd_pipe_short_smth_1_4*/, 5 /*dol_lite_1_2*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 0 /*rgb_ir_2_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 20 /*fr_grid_1_0*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 220 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 220 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*tnr7_spatial_1_1*/, 0 /*tnr_scaler_lb_1_1*/, 0 /*tnr7_ims_1_2*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_tnr_bc_1_4*/, 0 /*smurf_tnr_bc_1_0*/, 5 /*tnr7_bc_1_2*/, 220 /*odr_tnr_sp_bc_rs4n_1_4*/, 220 /*ifd_segmap_tnr_blend_1_4*/, 0 /*smurf_tnr_blend_1_0*/, 5 /*tnr7_blend_1_1*/, 220 /*odr_tnr_fp_yuvn_1_4*/, 0 /*tnr_scaler_fp_1_1*/, 0 /*image_upscaler_1_1*/, 220 /*odr_tnr_scale_fp_yuv4n_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[66] = {0 /*ifd_pipe_1_4*/, 1 /*ifd_pipe_long_1_4*/, 2 /*ifd_pipe_short_smth_1_4*/, 3 /*dol_lite_1_2*/, 4 /*bxt_blc*/, 5 /*linearization2_0*/, 6 /*dpc_2_2*/, 9 /*rgb_ir_2_0*/, 7 /*rgbs_grid_1_1*/, 10 /*odr_awb_std_1_4*/, 11 /*odr_awb_sve_1_4*/, 12 /*odr_awb_sat_1_4*/, 8 /*ccm_3a_2_0*/, 13 /*aestatistics_2_1*/, 14 /*odr_ae_1_4*/, 15 /*ifd_lsc_1_4*/, 16 /*lsc_1_2*/, 17 /*gd_2_2*/, 18 /*wb_1_1*/, 27 /*bnlm_3_4*/, 28 /*bxt_demosaic*/, 29 /*vcsc_2_0_b*/, 30 /*gltm_2_0*/, 33 /*xnr_5_4*/, 34 /*vcr_3_1*/, 35 /*glim_2_0*/, 38 /*acm_1_2*/, 39 /*gammatm_v4*/, 40 /*csc_1_1*/, 41 /*b2i_ds_1_1*/, 42 /*lbff_crop_espa_1_4*/, 43 /*tnr7_spatial_1_1*/, 44 /*tnr_scaler_lb_1_1*/, 19 /*fr_grid_1_0*/, 20 /*odr_af_std_1_4*/, 21 /*ifd_gmv_1_4*/, 46 /*gmv_statistics_1_1*/, 47 /*odr_gmv_feature_1_4*/, 48 /*odr_gmv_match_1_4*/, 22 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 23 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 45 /*tnr7_ims_1_2*/, 51 /*tnr7_bc_1_2*/, 52 /*odr_tnr_sp_bc_rs4n_1_4*/, 24 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 55 /*tnr7_blend_1_1*/, 58 /*image_upscaler_1_1*/, 62 /*cas_1_1*/, 63 /*odr_ofs_mp_1_4*/, 64 /*b2i_ds_output_1_1*/, 65 /*odr_ofs_dp_1_4*/, 56 /*odr_tnr_fp_yuvn_1_4*/, 57 /*tnr_scaler_fp_1_1*/, 59 /*odr_tnr_scale_fp_yuv4n_1_4*/, 25 /*ifd_segmap_bnlm_1_4*/, 31 /*ifd_segmap_xnr_1_4*/, 36 /*ifd_segmap_acm_1_4*/, 49 /*ifd_segmap_tnr_bc_1_4*/, 53 /*ifd_segmap_tnr_blend_1_4*/, 60 /*ifd_segmap_cas_1_4*/, 26 /*smurf_bnlm_1_0*/, 32 /*smurf_xnr_1_0*/, 37 /*smurf_acm_1_0*/, 50 /*smurf_tnr_bc_1_0*/, 54 /*smurf_tnr_blend_1_0*/, 61 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[27].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffRgbIrNoGmvNoTnrWithSapOuterNode::Init(LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 44, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[44] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0xEF8C61FC7F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[14], fr_grid_1_0[15], aestatistics_2_1[16], odr_ae_1_4[17], odr_af_std_1_4[18], ifd_segmap_bnlm_1_4[19], smurf_bnlm_1_0[20], ifd_segmap_xnr_1_4[25], smurf_xnr_1_0[26], ifd_segmap_acm_1_4[30], smurf_acm_1_0[31], b2i_ds_1_1[35], lbff_crop_espa_1_4[36], image_upscaler_1_1[37], ifd_segmap_cas_1_4[38], smurf_cas_1_0[39], odr_ofs_mp_1_4[41], b2i_ds_output_1_1[42], odr_ofs_dp_1_4[43] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x9F1CE3F0FC2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, rgbs_grid_1_1, rgb_ir_2_0}[1], {odr_ir_1_4}[2], {odr_awb_std_1_4}[3], {odr_awb_sve_1_4}[4], {odr_awb_sat_1_4}[5], {ifd_lsc_1_4}[6], {lsc_1_2, gd_2_2, wb_1_1, ccm_3a_2_0, fr_grid_1_0}[7], {aestatistics_2_1}[8], {odr_ae_1_4}[9], {odr_af_std_1_4}[10], {ifd_segmap_bnlm_1_4}[11], {smurf_bnlm_1_0}[12], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[13], {ifd_segmap_xnr_1_4}[14], {smurf_xnr_1_0}[15], {xnr_5_4, vcr_3_1, glim_2_0}[16], {ifd_segmap_acm_1_4}[17], {smurf_acm_1_0}[18], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[19], {lbff_crop_espa_1_4}[20], {image_upscaler_1_1}[21], {ifd_segmap_cas_1_4}[22], {smurf_cas_1_0}[23], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[24], {odr_ofs_dp_1_4}[25] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0xFF9CE3FCFF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {rgbs_grid_1_1}[2], {rgb_ir_2_0}[3], {odr_ir_1_4}[4], {odr_awb_std_1_4}[5], {odr_awb_sve_1_4}[6], {odr_awb_sat_1_4}[7], {ifd_lsc_1_4}[8], {lsc_1_2, gd_2_2, wb_1_1}[9], {ccm_3a_2_0}[10], {fr_grid_1_0}[11], {aestatistics_2_1}[12], {odr_ae_1_4}[13], {odr_af_std_1_4}[14], {ifd_segmap_bnlm_1_4}[15], {smurf_bnlm_1_0}[16], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[17], {ifd_segmap_xnr_1_4}[18], {smurf_xnr_1_0}[19], {xnr_5_4, vcr_3_1, glim_2_0}[20], {ifd_segmap_acm_1_4}[21], {smurf_acm_1_0}[22], {acm_1_2, gammatm_v4, csc_1_1}[23], {b2i_ds_1_1}[24], {lbff_crop_espa_1_4}[25], {image_upscaler_1_1}[26], {ifd_segmap_cas_1_4}[27], {smurf_cas_1_0}[28], {cas_1_1}[29], {odr_ofs_mp_1_4}[30], {b2i_ds_output_1_1}[31], {odr_ofs_dp_1_4}[32] } - uint8_t systemApisSizes[44] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 24 /*rgbs_grid_1_1*/, 0 /*rgb_ir_2_0*/, 220 /*odr_ir_1_4*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sve_1_4*/, 220 /*odr_awb_sat_1_4*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[44] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 6 /*odr_ir_1_4*/, 4 /*rgbs_grid_1_1*/, 7 /*odr_awb_std_1_4*/, 8 /*odr_awb_sve_1_4*/, 9 /*odr_awb_sat_1_4*/, 10 /*ifd_lsc_1_4*/, 11 /*lsc_1_2*/, 12 /*gd_2_2*/, 13 /*wb_1_1*/, 21 /*bnlm_3_4*/, 22 /*bxt_demosaic*/, 23 /*vcsc_2_0_b*/, 24 /*gltm_2_0*/, 27 /*xnr_5_4*/, 28 /*vcr_3_1*/, 29 /*glim_2_0*/, 32 /*acm_1_2*/, 33 /*gammatm_v4*/, 34 /*csc_1_1*/, 35 /*b2i_ds_1_1*/, 36 /*lbff_crop_espa_1_4*/, 37 /*image_upscaler_1_1*/, 40 /*cas_1_1*/, 41 /*odr_ofs_mp_1_4*/, 42 /*b2i_ds_output_1_1*/, 43 /*odr_ofs_dp_1_4*/, 14 /*ccm_3a_2_0*/, 16 /*aestatistics_2_1*/, 17 /*odr_ae_1_4*/, 15 /*fr_grid_1_0*/, 18 /*odr_af_std_1_4*/, 19 /*ifd_segmap_bnlm_1_4*/, 25 /*ifd_segmap_xnr_1_4*/, 30 /*ifd_segmap_acm_1_4*/, 38 /*ifd_segmap_cas_1_4*/, 20 /*smurf_bnlm_1_0*/, 26 /*smurf_xnr_1_0*/, 31 /*smurf_acm_1_0*/, 39 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[21].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffRgbIrWithGmvNoTnrWithSapOuterNode::Init(LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 48, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 48, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[48] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xEFF18C3FC7F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[14], fr_grid_1_0[15], aestatistics_2_1[16], odr_ae_1_4[17], odr_af_std_1_4[18], ifd_gmv_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], ifd_segmap_acm_1_4[31], smurf_acm_1_0[32], b2i_ds_1_1[36], lbff_crop_espa_1_4[37], image_upscaler_1_1[38], gmv_statistics_1_1[39], odr_gmv_feature_1_4[40], odr_gmv_match_1_4[41], ifd_segmap_cas_1_4[42], smurf_cas_1_0[43], odr_ofs_mp_1_4[45], b2i_ds_output_1_1[46], odr_ofs_dp_1_4[47] } @@ -1744,7 +1994,7 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::Init(LbffRgbIrWithGmvNoTnrWithSapOut void LbffRgbIrNoGmvWithTnrWithSapOuterNode::Init(LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 60, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 60, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[60] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xEFDDAC630FFC7F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[14], fr_grid_1_0[15], aestatistics_2_1[16], odr_ae_1_4[17], odr_af_std_1_4[18], ifd_tnr_sp_bc_yuv4nm1_1_4[19], ifd_tnr_sp_bc_rs4nm1_1_4[20], ifd_tnr_fp_blend_yuvnm1_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], tnr_scaler_lb_1_1[41], ifd_segmap_tnr_bc_1_4[43], smurf_tnr_bc_1_0[44], odr_tnr_sp_bc_rs4n_1_4[46], ifd_segmap_tnr_blend_1_4[47], smurf_tnr_blend_1_0[48], odr_tnr_fp_yuvn_1_4[50], tnr_scaler_fp_1_1[51], image_upscaler_1_1[52], odr_tnr_scale_fp_yuv4n_1_4[53], ifd_segmap_cas_1_4[54], smurf_cas_1_0[55], odr_ofs_mp_1_4[57], b2i_ds_output_1_1[58], odr_ofs_dp_1_4[59] } @@ -1764,7 +2014,7 @@ void LbffRgbIrNoGmvWithTnrWithSapOuterNode::Init(LbffRgbIrNoGmvWithTnrWithSapOut void LbffRgbIrWithGmvWithTnrWithSapOuterNode::Init(LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 64, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 64, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[64] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 15021 /*rgbs_grid_1_1*/, 14488 /*rgb_ir_2_0*/, 60297 /*odr_ir_1_4*/, 38544 /*odr_awb_std_1_4*/, 53430 /*odr_awb_sve_1_4*/, 1248 /*odr_awb_sat_1_4*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0xEFDDF58C61FFC7F1, 0x0}; // { ifd_pipe_1_4[0], rgbs_grid_1_1[4], rgb_ir_2_0[5], odr_ir_1_4[6], odr_awb_std_1_4[7], odr_awb_sve_1_4[8], odr_awb_sat_1_4[9], ifd_lsc_1_4[10], ccm_3a_2_0[14], fr_grid_1_0[15], aestatistics_2_1[16], odr_ae_1_4[17], odr_af_std_1_4[18], ifd_gmv_1_4[19], ifd_tnr_sp_bc_yuv4nm1_1_4[20], ifd_tnr_sp_bc_rs4nm1_1_4[21], ifd_tnr_fp_blend_yuvnm1_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], tnr_scaler_lb_1_1[42], gmv_statistics_1_1[44], odr_gmv_feature_1_4[45], odr_gmv_match_1_4[46], ifd_segmap_tnr_bc_1_4[47], smurf_tnr_bc_1_0[48], odr_tnr_sp_bc_rs4n_1_4[50], ifd_segmap_tnr_blend_1_4[51], smurf_tnr_blend_1_0[52], odr_tnr_fp_yuvn_1_4[54], tnr_scaler_fp_1_1[55], image_upscaler_1_1[56], odr_tnr_scale_fp_yuv4n_1_4[57], ifd_segmap_cas_1_4[58], smurf_cas_1_0[59], odr_ofs_mp_1_4[61], b2i_ds_output_1_1[62], odr_ofs_dp_1_4[63] } @@ -1784,7 +2034,7 @@ void LbffRgbIrWithGmvWithTnrWithSapOuterNode::Init(LbffRgbIrWithGmvWithTnrWithSa void LbffIrNoGmvNoTnrWithSapOuterNode::Init(LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 39, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 39, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[39] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x77C0C3FF09, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[8], ccm_3a_2_0[9], fr_grid_1_0[10], odr_awb_std_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], odr_af_std_1_4[15], ifd_segmap_bnlm_1_4[16], smurf_bnlm_1_0[17], ifd_segmap_xnr_1_4[22], smurf_xnr_1_0[23], b2i_ds_1_1[30], lbff_crop_espa_1_4[31], image_upscaler_1_1[32], ifd_segmap_cas_1_4[33], smurf_cas_1_0[34], odr_ofs_mp_1_4[36], b2i_ds_output_1_1[37], odr_ofs_dp_1_4[38] } @@ -1804,7 +2054,7 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::Init(LbffIrNoGmvNoTnrWithSapOuterNodeConf void LbffIrWithGmvNoTnrWithSapOuterNode::Init(LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 43, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 43, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[43] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x77F8187FF09, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[8], ccm_3a_2_0[9], fr_grid_1_0[10], odr_awb_std_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], odr_af_std_1_4[15], ifd_gmv_1_4[16], ifd_segmap_bnlm_1_4[17], smurf_bnlm_1_0[18], ifd_segmap_xnr_1_4[23], smurf_xnr_1_0[24], b2i_ds_1_1[31], lbff_crop_espa_1_4[32], image_upscaler_1_1[33], gmv_statistics_1_1[34], odr_gmv_feature_1_4[35], odr_gmv_match_1_4[36], ifd_segmap_cas_1_4[37], smurf_cas_1_0[38], odr_ofs_mp_1_4[40], b2i_ds_output_1_1[41], odr_ofs_dp_1_4[42] } @@ -1824,7 +2074,7 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::Init(LbffIrWithGmvNoTnrWithSapOuterNode void LbffIrNoGmvWithTnrWithSapOuterNode::Init(LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 55, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 55, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[55] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x77EED6061FFF09, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[8], ccm_3a_2_0[9], fr_grid_1_0[10], odr_awb_std_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], odr_af_std_1_4[15], ifd_tnr_sp_bc_yuv4nm1_1_4[16], ifd_tnr_sp_bc_rs4nm1_1_4[17], ifd_tnr_fp_blend_yuvnm1_1_4[18], ifd_segmap_bnlm_1_4[19], smurf_bnlm_1_0[20], ifd_segmap_xnr_1_4[25], smurf_xnr_1_0[26], b2i_ds_1_1[33], lbff_crop_espa_1_4[34], tnr_scaler_lb_1_1[36], ifd_segmap_tnr_bc_1_4[38], smurf_tnr_bc_1_0[39], odr_tnr_sp_bc_rs4n_1_4[41], ifd_segmap_tnr_blend_1_4[42], smurf_tnr_blend_1_0[43], odr_tnr_fp_yuvn_1_4[45], tnr_scaler_fp_1_1[46], image_upscaler_1_1[47], odr_tnr_scale_fp_yuv4n_1_4[48], ifd_segmap_cas_1_4[49], smurf_cas_1_0[50], odr_ofs_mp_1_4[52], b2i_ds_output_1_1[53], odr_ofs_dp_1_4[54] } @@ -1844,7 +2094,7 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::Init(LbffIrNoGmvWithTnrWithSapOuterNode void LbffIrWithGmvWithTnrWithSapOuterNode::Init(LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(0, NodeTypes::Cb, 59, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(0, NodeTypes::Cb, 59, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[59] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 33184 /*dpc_2_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 51073 /*ifd_gmv_1_4*/, 7357 /*ifd_tnr_sp_bc_yuv4nm1_1_4*/, 62054 /*ifd_tnr_sp_bc_rs4nm1_1_4*/, 16295 /*ifd_tnr_fp_blend_yuvnm1_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 2495 /*tnr7_spatial_1_1*/, 29996 /*tnr_scaler_lb_1_1*/, 23639 /*tnr7_ims_1_2*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 47873 /*ifd_segmap_tnr_bc_1_4*/, 13101 /*smurf_tnr_bc_1_0*/, 1502 /*tnr7_bc_1_2*/, 63731 /*odr_tnr_sp_bc_rs4n_1_4*/, 14619 /*ifd_segmap_tnr_blend_1_4*/, 42749 /*smurf_tnr_blend_1_0*/, 20119 /*tnr7_blend_1_1*/, 5215 /*odr_tnr_fp_yuvn_1_4*/, 20623 /*tnr_scaler_fp_1_1*/, 28787 /*image_upscaler_1_1*/, 65437 /*odr_tnr_scale_fp_yuv4n_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; uint64_t kernelsRcbBitmap[] = {0x77EEFAC0C3FFF09, 0x0}; // { ifd_pipe_1_4[0], ifd_lsc_1_4[3], rgbs_grid_1_1[8], ccm_3a_2_0[9], fr_grid_1_0[10], odr_awb_std_1_4[11], odr_awb_sat_1_4[12], aestatistics_2_1[13], odr_ae_1_4[14], odr_af_std_1_4[15], ifd_gmv_1_4[16], ifd_tnr_sp_bc_yuv4nm1_1_4[17], ifd_tnr_sp_bc_rs4nm1_1_4[18], ifd_tnr_fp_blend_yuvnm1_1_4[19], ifd_segmap_bnlm_1_4[20], smurf_bnlm_1_0[21], ifd_segmap_xnr_1_4[26], smurf_xnr_1_0[27], b2i_ds_1_1[34], lbff_crop_espa_1_4[35], tnr_scaler_lb_1_1[37], gmv_statistics_1_1[39], odr_gmv_feature_1_4[40], odr_gmv_match_1_4[41], ifd_segmap_tnr_bc_1_4[42], smurf_tnr_bc_1_0[43], odr_tnr_sp_bc_rs4n_1_4[45], ifd_segmap_tnr_blend_1_4[46], smurf_tnr_blend_1_0[47], odr_tnr_fp_yuvn_1_4[49], tnr_scaler_fp_1_1[50], image_upscaler_1_1[51], odr_tnr_scale_fp_yuv4n_1_4[52], ifd_segmap_cas_1_4[53], smurf_cas_1_0[54], odr_ofs_mp_1_4[56], b2i_ds_output_1_1[57], odr_ofs_dp_1_4[58] } @@ -1862,49 +2112,9 @@ void LbffIrWithGmvWithTnrWithSapOuterNode::Init(LbffIrWithGmvWithTnrWithSapOuter setInnerNode(None); } -void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 47, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[47] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x77C630FFFC71, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_segmap_bnlm_1_4[22], smurf_bnlm_1_0[23], ifd_segmap_xnr_1_4[28], smurf_xnr_1_0[29], ifd_segmap_acm_1_4[33], smurf_acm_1_0[34], b2i_ds_1_1[38], lbff_crop_espa_1_4[39], image_upscaler_1_1[40], ifd_segmap_cas_1_4[41], smurf_cas_1_0[42], odr_ofs_mp_1_4[44], b2i_ds_output_1_1[45], odr_ofs_dp_1_4[46] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x4F8E71FFE0C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_segmap_bnlm_1_4}[13], {smurf_bnlm_1_0}[14], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[15], {ifd_segmap_xnr_1_4}[16], {smurf_xnr_1_0}[17], {xnr_5_4, vcr_3_1, glim_2_0}[18], {ifd_segmap_acm_1_4}[19], {smurf_acm_1_0}[20], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[21], {lbff_crop_espa_1_4}[22], {image_upscaler_1_1}[23], {ifd_segmap_cas_1_4}[24], {smurf_cas_1_0}[25], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[26], {odr_ofs_dp_1_4}[27] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FCE71FFFCF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_segmap_bnlm_1_4}[18], {smurf_bnlm_1_0}[19], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[20], {ifd_segmap_xnr_1_4}[21], {smurf_xnr_1_0}[22], {xnr_5_4, vcr_3_1, glim_2_0}[23], {ifd_segmap_acm_1_4}[24], {smurf_acm_1_0}[25], {acm_1_2, gammatm_v4, csc_1_1}[26], {b2i_ds_1_1}[27], {lbff_crop_espa_1_4}[28], {image_upscaler_1_1}[29], {ifd_segmap_cas_1_4}[30], {smurf_cas_1_0}[31], {cas_1_1}[32], {odr_ofs_mp_1_4}[33], {b2i_ds_output_1_1}[34], {odr_ofs_dp_1_4}[35] } - uint8_t systemApisSizes[47] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[47] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 24 /*bnlm_3_4*/, 25 /*bxt_demosaic*/, 26 /*vcsc_2_0_b*/, 27 /*gltm_2_0*/, 30 /*xnr_5_4*/, 31 /*vcr_3_1*/, 32 /*glim_2_0*/, 35 /*acm_1_2*/, 36 /*gammatm_v4*/, 37 /*csc_1_1*/, 38 /*b2i_ds_1_1*/, 39 /*lbff_crop_espa_1_4*/, 40 /*image_upscaler_1_1*/, 43 /*cas_1_1*/, 44 /*odr_ofs_mp_1_4*/, 45 /*b2i_ds_output_1_1*/, 46 /*odr_ofs_dp_1_4*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_segmap_bnlm_1_4*/, 28 /*ifd_segmap_xnr_1_4*/, 33 /*ifd_segmap_acm_1_4*/, 41 /*ifd_segmap_cas_1_4*/, 23 /*smurf_bnlm_1_0*/, 29 /*smurf_xnr_1_0*/, 34 /*smurf_acm_1_0*/, 42 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[24].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - -void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration) -{ - OuterNode::Init(0, NodeTypes::Cb, 51, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); - - uint16_t kernelsUuids[51] = {52446 /*ifd_pipe_1_4*/, 11700 /*bxt_blc*/, 10326 /*linearization2_0*/, 33184 /*dpc_2_2*/, 54812 /*odr_dpc_pdaf_1_4*/, 14488 /*rgb_ir_2_0*/, 29313 /*ifd_lsc_1_4*/, 2144 /*lsc_1_2*/, 13882 /*gd_2_2*/, 5144 /*wb_1_1*/, 15021 /*rgbs_grid_1_1*/, 62344 /*ccm_3a_2_0*/, 26958 /*fr_grid_1_0*/, 38544 /*odr_awb_std_1_4*/, 1248 /*odr_awb_sat_1_4*/, 55073 /*aestatistics_2_1*/, 62556 /*odr_ae_1_4*/, 59136 /*odr_af_std_1_4*/, 22427 /*ifd_pdaf_1_4*/, 43213 /*pext_1_0*/, 44308 /*pafstatistics_1_2*/, 26892 /*odr_pdaf_1_4*/, 51073 /*ifd_gmv_1_4*/, 35263 /*ifd_segmap_bnlm_1_4*/, 54924 /*smurf_bnlm_1_0*/, 45146 /*bnlm_3_4*/, 48695 /*bxt_demosaic*/, 13708 /*vcsc_2_0_b*/, 54721 /*gltm_2_0*/, 9241 /*ifd_segmap_xnr_1_4*/, 42329 /*smurf_xnr_1_0*/, 30019 /*xnr_5_4*/, 36035 /*vcr_3_1*/, 36029 /*glim_2_0*/, 51914 /*ifd_segmap_acm_1_4*/, 28366 /*smurf_acm_1_0*/, 17531 /*acm_1_2*/, 5394 /*gammatm_v4*/, 62703 /*csc_1_1*/, 40299 /*b2i_ds_1_1*/, 65466 /*lbff_crop_espa_1_4*/, 28787 /*image_upscaler_1_1*/, 40280 /*gmv_statistics_1_1*/, 7416 /*odr_gmv_feature_1_4*/, 41148 /*odr_gmv_match_1_4*/, 20893 /*ifd_segmap_cas_1_4*/, 37468 /*smurf_cas_1_0*/, 9385 /*cas_1_1*/, 16460 /*odr_ofs_mp_1_4*/, 50136 /*b2i_ds_output_1_1*/, 37951 /*odr_ofs_dp_1_4*/}; - uint64_t kernelsRcbBitmap[] = {0x77F8C61FFFC71, 0x0}; // { ifd_pipe_1_4[0], odr_dpc_pdaf_1_4[4], rgb_ir_2_0[5], ifd_lsc_1_4[6], rgbs_grid_1_1[10], ccm_3a_2_0[11], fr_grid_1_0[12], odr_awb_std_1_4[13], odr_awb_sat_1_4[14], aestatistics_2_1[15], odr_ae_1_4[16], odr_af_std_1_4[17], ifd_pdaf_1_4[18], pext_1_0[19], pafstatistics_1_2[20], odr_pdaf_1_4[21], ifd_gmv_1_4[22], ifd_segmap_bnlm_1_4[23], smurf_bnlm_1_0[24], ifd_segmap_xnr_1_4[29], smurf_xnr_1_0[30], ifd_segmap_acm_1_4[34], smurf_acm_1_0[35], b2i_ds_1_1[39], lbff_crop_espa_1_4[40], image_upscaler_1_1[41], gmv_statistics_1_1[42], odr_gmv_feature_1_4[43], odr_gmv_match_1_4[44], ifd_segmap_cas_1_4[45], smurf_cas_1_0[46], odr_ofs_mp_1_4[48], b2i_ds_output_1_1[49], odr_ofs_dp_1_4[50] } - uint64_t kernelsResolutionHistoryGroupBitmap[] = {0x4FF1CE3FFE0C2, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2, odr_dpc_pdaf_1_4, rgb_ir_2_0}[1], {ifd_lsc_1_4}[2], {lsc_1_2, gd_2_2, wb_1_1, rgbs_grid_1_1, ccm_3a_2_0, fr_grid_1_0}[3], {odr_awb_std_1_4}[4], {odr_awb_sat_1_4}[5], {aestatistics_2_1}[6], {odr_ae_1_4}[7], {odr_af_std_1_4}[8], {ifd_pdaf_1_4}[9], {pext_1_0}[10], {pafstatistics_1_2}[11], {odr_pdaf_1_4}[12], {ifd_gmv_1_4}[13], {ifd_segmap_bnlm_1_4}[14], {smurf_bnlm_1_0}[15], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[16], {ifd_segmap_xnr_1_4}[17], {smurf_xnr_1_0}[18], {xnr_5_4, vcr_3_1, glim_2_0}[19], {ifd_segmap_acm_1_4}[20], {smurf_acm_1_0}[21], {acm_1_2, gammatm_v4, csc_1_1, b2i_ds_1_1}[22], {lbff_crop_espa_1_4}[23], {image_upscaler_1_1}[24], {gmv_statistics_1_1}[25], {odr_gmv_feature_1_4}[26], {odr_gmv_match_1_4}[27], {ifd_segmap_cas_1_4}[28], {smurf_cas_1_0}[29], {cas_1_1, odr_ofs_mp_1_4, b2i_ds_output_1_1}[30], {odr_ofs_dp_1_4}[31] } - uint64_t kernelsFragmentsDescriptorGroupBitmap[] = {0x7FF9CE3FFFCF3, 0x0}; // {{ifd_pipe_1_4}[0], {bxt_blc, linearization2_0, dpc_2_2}[1], {odr_dpc_pdaf_1_4}[2], {rgb_ir_2_0}[3], {ifd_lsc_1_4}[4], {lsc_1_2, gd_2_2, wb_1_1}[5], {rgbs_grid_1_1}[6], {ccm_3a_2_0}[7], {fr_grid_1_0}[8], {odr_awb_std_1_4}[9], {odr_awb_sat_1_4}[10], {aestatistics_2_1}[11], {odr_ae_1_4}[12], {odr_af_std_1_4}[13], {ifd_pdaf_1_4}[14], {pext_1_0}[15], {pafstatistics_1_2}[16], {odr_pdaf_1_4}[17], {ifd_gmv_1_4}[18], {ifd_segmap_bnlm_1_4}[19], {smurf_bnlm_1_0}[20], {bnlm_3_4, bxt_demosaic, vcsc_2_0_b, gltm_2_0}[21], {ifd_segmap_xnr_1_4}[22], {smurf_xnr_1_0}[23], {xnr_5_4, vcr_3_1, glim_2_0}[24], {ifd_segmap_acm_1_4}[25], {smurf_acm_1_0}[26], {acm_1_2, gammatm_v4, csc_1_1}[27], {b2i_ds_1_1}[28], {lbff_crop_espa_1_4}[29], {image_upscaler_1_1}[30], {gmv_statistics_1_1}[31], {odr_gmv_feature_1_4}[32], {odr_gmv_match_1_4}[33], {ifd_segmap_cas_1_4}[34], {smurf_cas_1_0}[35], {cas_1_1}[36], {odr_ofs_mp_1_4}[37], {b2i_ds_output_1_1}[38], {odr_ofs_dp_1_4}[39] } - uint8_t systemApisSizes[51] = {220 /*ifd_pipe_1_4*/, 5 /*bxt_blc*/, 5 /*linearization2_0*/, 20 /*dpc_2_2*/, 220 /*odr_dpc_pdaf_1_4*/, 0 /*rgb_ir_2_0*/, 220 /*ifd_lsc_1_4*/, 40 /*lsc_1_2*/, 0 /*gd_2_2*/, 0 /*wb_1_1*/, 24 /*rgbs_grid_1_1*/, 5 /*ccm_3a_2_0*/, 20 /*fr_grid_1_0*/, 220 /*odr_awb_std_1_4*/, 220 /*odr_awb_sat_1_4*/, 24 /*aestatistics_2_1*/, 220 /*odr_ae_1_4*/, 220 /*odr_af_std_1_4*/, 220 /*ifd_pdaf_1_4*/, 24 /*pext_1_0*/, 8 /*pafstatistics_1_2*/, 220 /*odr_pdaf_1_4*/, 220 /*ifd_gmv_1_4*/, 220 /*ifd_segmap_bnlm_1_4*/, 0 /*smurf_bnlm_1_0*/, 6 /*bnlm_3_4*/, 0 /*bxt_demosaic*/, 0 /*vcsc_2_0_b*/, 0 /*gltm_2_0*/, 220 /*ifd_segmap_xnr_1_4*/, 0 /*smurf_xnr_1_0*/, 5 /*xnr_5_4*/, 0 /*vcr_3_1*/, 0 /*glim_2_0*/, 220 /*ifd_segmap_acm_1_4*/, 0 /*smurf_acm_1_0*/, 5 /*acm_1_2*/, 0 /*gammatm_v4*/, 0 /*csc_1_1*/, 12 /*b2i_ds_1_1*/, 220 /*lbff_crop_espa_1_4*/, 0 /*image_upscaler_1_1*/, 32 /*gmv_statistics_1_1*/, 220 /*odr_gmv_feature_1_4*/, 220 /*odr_gmv_match_1_4*/, 220 /*ifd_segmap_cas_1_4*/, 0 /*smurf_cas_1_0*/, 5 /*cas_1_1*/, 220 /*odr_ofs_mp_1_4*/, 12 /*b2i_ds_output_1_1*/, 220 /*odr_ofs_dp_1_4*/}; - uint16_t runKernelConfigOrder[51] = {0 /*ifd_pipe_1_4*/, 1 /*bxt_blc*/, 2 /*linearization2_0*/, 3 /*dpc_2_2*/, 5 /*rgb_ir_2_0*/, 4 /*odr_dpc_pdaf_1_4*/, 6 /*ifd_lsc_1_4*/, 7 /*lsc_1_2*/, 8 /*gd_2_2*/, 9 /*wb_1_1*/, 25 /*bnlm_3_4*/, 26 /*bxt_demosaic*/, 27 /*vcsc_2_0_b*/, 28 /*gltm_2_0*/, 31 /*xnr_5_4*/, 32 /*vcr_3_1*/, 33 /*glim_2_0*/, 36 /*acm_1_2*/, 37 /*gammatm_v4*/, 38 /*csc_1_1*/, 39 /*b2i_ds_1_1*/, 40 /*lbff_crop_espa_1_4*/, 41 /*image_upscaler_1_1*/, 47 /*cas_1_1*/, 48 /*odr_ofs_mp_1_4*/, 49 /*b2i_ds_output_1_1*/, 50 /*odr_ofs_dp_1_4*/, 10 /*rgbs_grid_1_1*/, 13 /*odr_awb_std_1_4*/, 14 /*odr_awb_sat_1_4*/, 11 /*ccm_3a_2_0*/, 15 /*aestatistics_2_1*/, 16 /*odr_ae_1_4*/, 12 /*fr_grid_1_0*/, 17 /*odr_af_std_1_4*/, 18 /*ifd_pdaf_1_4*/, 19 /*pext_1_0*/, 20 /*pafstatistics_1_2*/, 21 /*odr_pdaf_1_4*/, 22 /*ifd_gmv_1_4*/, 42 /*gmv_statistics_1_1*/, 43 /*odr_gmv_feature_1_4*/, 44 /*odr_gmv_match_1_4*/, 23 /*ifd_segmap_bnlm_1_4*/, 29 /*ifd_segmap_xnr_1_4*/, 34 /*ifd_segmap_acm_1_4*/, 45 /*ifd_segmap_cas_1_4*/, 24 /*smurf_bnlm_1_0*/, 30 /*smurf_xnr_1_0*/, 35 /*smurf_acm_1_0*/, 46 /*smurf_cas_1_0*/}; - - InitRunKernels(kernelsUuids, kernelsRcbBitmap, selectedGraphConfiguration->resolutionInfos, kernelsResolutionHistoryGroupBitmap, kernelsFragmentsDescriptorGroupBitmap, selectedGraphConfiguration->resolutionHistories, selectedGraphConfiguration->bppInfos, systemApisSizes, selectedGraphConfiguration->systemApiConfiguration, selectedGraphConfiguration->fragmentConfigurations, runKernelConfigOrder); - - // Metadata update - nodeKernels.kernelList[25].run_kernel.metadata[0] = 1; // bnlm_3_4 - - // set default inner Node - setInnerNode(None); -} - void WithCvOuterNode::Init(WithCvOuterNodeConfiguration* selectedGraphConfiguration) { - OuterNode::Init(2, NodeTypes::Isys, 6, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); + OuterNode::Init(2, NodeTypes::Isys, 6, selectedGraphConfiguration->tuningMode, selectedGraphConfiguration->tuningModes, selectedGraphConfiguration->streamId, selectedGraphConfiguration->numberOfFragments); uint16_t kernelsUuids[6] = {36280 /*crop_bpp_adjust_1_0*/, 5420 /*upipe_1_0*/, 26150 /*isys_drainer_1_0*/, 11470 /*is_odr_a*/, 55449 /*is_odr_b*/, 50407 /*is_odr_c*/}; uint64_t kernelsRcbBitmap[] = {0x3B, 0x0}; // { crop_bpp_adjust_1_0[0], upipe_1_0[1], is_odr_a[3], is_odr_b[4], is_odr_c[5] } @@ -2257,114 +2467,387 @@ void LbffBayerNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSt SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void SwB2bInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { - // Kernel default enablement - for (uint8_t i = 0; i < 38; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + // No inner nodes + (void)nodeInnerOptions; +} - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) - { - // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032009F - bitmaps.teb[0] = 0x3032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; - bitmaps.reb[1] = 0x1F; +void SwB2bInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} - // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3E0380000; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020321E9F - bitmaps.teb[0] = 0x20321E9F; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; - bitmaps.reb[1] = 0x1F; +void SwB2bOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ - // Kernels disablement - // 26 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032009F - bitmaps.teb[0] = 0x2032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; - bitmaps.reb[1] = 0x1F; + // No inner nodes + (void)nodeInnerOptions; +} - // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3E4380000; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x0000000000000000002400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010321E9F - bitmaps.teb[0] = 0x10321E9F; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; - bitmaps.reb[1] = 0x1F; +void SwB2bOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} - // Kernels disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement +void SwB2bOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwB2bOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwRemosaicInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwRemosaicInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwRemosaicOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwRemosaicOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwRemosaicOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwRemosaicOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwAinrInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwAinrInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwAinrOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwAinrOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwAinrOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwAinrOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwGdcInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwGdcInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwGdcOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwGdcOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwGdcOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwGdcOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwNntmInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwNntmInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwNntmOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwNntmOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwNntmOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwNntmOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwImvInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwImvInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwImvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwImvOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwImvOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwImvOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwScalerInOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwScalerInOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwScalerOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwScalerOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void SwScalerOutOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void SwScalerOutOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void LbffBayerWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 38; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x0000000000000000006400BD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003032009F + bitmaps.teb[0] = 0x3032009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3E0380000; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x0000000000000000004400BD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020321E9F + bitmaps.teb[0] = 0x20321E9F; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 26 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x0000000000000000004400BD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002032009F + bitmaps.teb[0] = 0x2032009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3E4380000; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400BD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010321E9F + bitmaps.teb[0] = 0x10321E9F; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement disabledRunKernelsBitmap[0] = 0x18000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) @@ -2587,19 +3070,6 @@ void LbffBayerWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish SetDisabledKernels(disabledRunKernelsBitmap); } -void SwGdcOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void SwGdcOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - void LbffBayerNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement @@ -3326,10 +3796,10 @@ void SwSegnetOuterNode::configVanishStatus(VanishOption vanishStatus) return; } -void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 62; ++i) + for (uint8_t i = 0; i < 42; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -3343,18 +3813,18 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 + // RBM - 0x00000000000000000064009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F000009F + bitmaps.teb[0] = 0xF000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -3371,39 +3841,39 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD501F6811 + // RBM - 0x00000000000000000044009D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED9BF1F1 + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF21E9F - bitmaps.teb[0] = 0xEFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0001E9F + bitmaps.teb[0] = 0xE0001E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000000000; + // 39 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 + // RBM - 0x00000000000000000044009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E000009F + bitmaps.teb[0] = 0xE000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -3415,46 +3885,46 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001FE00; + // 39 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800001FE00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD501F6811 + // RBM - 0x00000000000000000024009D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED9BF1F1 + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF21E9F - bitmaps.teb[0] = 0xDFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0001E9F + bitmaps.teb[0] = 0xD0001E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000000000; + // 40 b2i_ds_output_1_1- inner node disablement + // 41 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 + // RBM - 0x00000000000000000024009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D000009F + bitmaps.teb[0] = 0xD000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -3466,9 +3936,9 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x300000000001FE00; + // 40 b2i_ds_output_1_1- inner node disablement + // 41 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000001FE00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -3486,52 +3956,32 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags // Kernels disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 17 ifd_gmv_1_4- inner node disablement - // 18 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 19 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 20 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 tnr7_spatial_1_1- inner node disablement - // 40 tnr_scaler_lb_1_1- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 gmv_statistics_1_1- inner node disablement - // 43 odr_gmv_feature_1_4- inner node disablement - // 44 odr_gmv_match_1_4- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFE0180; + // 17 ifd_segmap_bnlm_1_4- inner node disablement + // 18 smurf_bnlm_1_0- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 ifd_segmap_xnr_1_4- inner node disablement + // 24 smurf_xnr_1_0- inner node disablement + // 25 xnr_5_4- inner node disablement + // 26 vcr_3_1- inner node disablement + // 27 glim_2_0- inner node disablement + // 28 ifd_segmap_acm_1_4- inner node disablement + // 29 smurf_acm_1_0- inner node disablement + // 30 acm_1_2- inner node disablement + // 31 gammatm_v4- inner node disablement + // 32 csc_1_1- inner node disablement + // 33 b2i_ds_1_1- inner node disablement + // 34 lbff_crop_espa_1_4- inner node disablement + // 35 image_upscaler_1_1- inner node disablement + // 36 ifd_segmap_cas_1_4- inner node disablement + // 37 smurf_cas_1_0- inner node disablement + // 38 cas_1_1- inner node disablement + // 39 odr_ofs_mp_1_4- inner node disablement + // 40 b2i_ds_output_1_1- inner node disablement + // 41 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFE0180; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -3559,67 +4009,47 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_gmv_1_4- inner node disablement - // 18 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 19 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 20 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 tnr7_spatial_1_1- inner node disablement - // 40 tnr_scaler_lb_1_1- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 gmv_statistics_1_1- inner node disablement - // 43 odr_gmv_feature_1_4- inner node disablement - // 44 odr_gmv_match_1_4- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; + // 17 ifd_segmap_bnlm_1_4- inner node disablement + // 18 smurf_bnlm_1_0- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 ifd_segmap_xnr_1_4- inner node disablement + // 24 smurf_xnr_1_0- inner node disablement + // 25 xnr_5_4- inner node disablement + // 26 vcr_3_1- inner node disablement + // 27 glim_2_0- inner node disablement + // 28 ifd_segmap_acm_1_4- inner node disablement + // 29 smurf_acm_1_0- inner node disablement + // 30 acm_1_2- inner node disablement + // 31 gammatm_v4- inner node disablement + // 32 csc_1_1- inner node disablement + // 33 b2i_ds_1_1- inner node disablement + // 34 lbff_crop_espa_1_4- inner node disablement + // 35 image_upscaler_1_1- inner node disablement + // 36 ifd_segmap_cas_1_4- inner node disablement + // 37 smurf_cas_1_0- inner node disablement + // 38 cas_1_1- inner node disablement + // 39 odr_ofs_mp_1_4- inner node disablement + // 40 b2i_ds_output_1_1- inner node disablement + // 41 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FCBD501F6811 + // RBM - 0x00000000000000000064009D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED9BF1F1 + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF21E9F - bitmaps.teb[0] = 0xFFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0001E9F + bitmaps.teb[0] = 0xF0001E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; } @@ -3627,10 +4057,10 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags } -void LbffBayerWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 62; ++i) + for (uint8_t i = 0; i < 42; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -3680,7 +4110,7 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption va bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFFE0180; + disabledRunKernelsBitmap[0] |= 0x3FFFFFE0180; break; } @@ -3700,7 +4130,7 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption va bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F40000000000000; + disabledRunKernelsBitmap[0] |= 0x3F800000000; break; } @@ -3710,36 +4140,10 @@ void LbffBayerWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption va SetDisabledKernels(disabledRunKernelsBitmap); } -void SwScalerOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void SwScalerOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - -void SwNntmOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void SwNntmOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - -void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 58; ++i) + for (uint8_t i = 0; i < 46; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -3753,18 +4157,18 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 + // RBM - 0x0000000000000000006400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC0009F - bitmaps.teb[0] = 0xFFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F032009F + bitmaps.teb[0] = 0xF032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -3781,39 +4185,39 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D501F6811 + // RBM - 0x0000000000000000004400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED9BF1F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC01E9F - bitmaps.teb[0] = 0xEFC01E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0321E9F + bitmaps.teb[0] = 0xE0321E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 55 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000000000; + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 + // RBM - 0x0000000000000000004400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC0009F - bitmaps.teb[0] = 0xEFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E032009F + bitmaps.teb[0] = 0xE032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -3825,46 +4229,46 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 55 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000001FE00; + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000001FE00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D501F6811 + // RBM - 0x0000000000000000002400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED9BF1F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC01E9F - bitmaps.teb[0] = 0xDFC01E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0321E9F + bitmaps.teb[0] = 0xD0321E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 56 b2i_ds_output_1_1- inner node disablement - // 57 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x300000000000000; + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x300000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 + // RBM - 0x0000000000000000002400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED8001F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC0009F - bitmaps.teb[0] = 0xDFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D032009F + bitmaps.teb[0] = 0xD032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -3876,9 +4280,9 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 56 b2i_ds_output_1_1- inner node disablement - // 57 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000001FE00; + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000001FE00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -3896,132 +4300,108 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // Kernels disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 tnr7_spatial_1_1- inner node disablement - // 39 tnr_scaler_lb_1_1- inner node disablement - // 40 tnr7_ims_1_2- inner node disablement - // 41 ifd_segmap_tnr_bc_1_4- inner node disablement - // 42 smurf_tnr_bc_1_0- inner node disablement - // 43 tnr7_bc_1_2- inner node disablement - // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 45 ifd_segmap_tnr_blend_1_4- inner node disablement - // 46 smurf_tnr_blend_1_0- inner node disablement - // 47 tnr7_blend_1_1- inner node disablement - // 48 odr_tnr_fp_yuvn_1_4- inner node disablement - // 49 tnr_scaler_fp_1_1- inner node disablement - // 50 image_upscaler_1_1- inner node disablement - // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 52 ifd_segmap_cas_1_4- inner node disablement - // 53 smurf_cas_1_0- inner node disablement - // 54 cas_1_1- inner node disablement - // 55 odr_ofs_mp_1_4- inner node disablement - // 56 b2i_ds_output_1_1- inner node disablement - // 57 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFE0180; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement + // 17 ifd_gmv_1_4- inner node disablement + // 18 ifd_segmap_bnlm_1_4- inner node disablement + // 19 smurf_bnlm_1_0- inner node disablement + // 20 bnlm_3_4- inner node disablement + // 21 bxt_demosaic- inner node disablement + // 22 vcsc_2_0_b- inner node disablement + // 23 gltm_2_0- inner node disablement + // 24 ifd_segmap_xnr_1_4- inner node disablement + // 25 smurf_xnr_1_0- inner node disablement + // 26 xnr_5_4- inner node disablement + // 27 vcr_3_1- inner node disablement + // 28 glim_2_0- inner node disablement + // 29 ifd_segmap_acm_1_4- inner node disablement + // 30 smurf_acm_1_0- inner node disablement + // 31 acm_1_2- inner node disablement + // 32 gammatm_v4- inner node disablement + // 33 csc_1_1- inner node disablement + // 34 b2i_ds_1_1- inner node disablement + // 35 lbff_crop_espa_1_4- inner node disablement + // 36 image_upscaler_1_1- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFE0180; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 tnr7_spatial_1_1- inner node disablement - // 39 tnr_scaler_lb_1_1- inner node disablement - // 40 tnr7_ims_1_2- inner node disablement - // 41 ifd_segmap_tnr_bc_1_4- inner node disablement - // 42 smurf_tnr_bc_1_0- inner node disablement - // 43 tnr7_bc_1_2- inner node disablement - // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 45 ifd_segmap_tnr_blend_1_4- inner node disablement - // 46 smurf_tnr_blend_1_0- inner node disablement - // 47 tnr7_blend_1_1- inner node disablement - // 48 odr_tnr_fp_yuvn_1_4- inner node disablement - // 49 tnr_scaler_fp_1_1- inner node disablement - // 50 image_upscaler_1_1- inner node disablement - // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 52 ifd_segmap_cas_1_4- inner node disablement - // 53 smurf_cas_1_0- inner node disablement - // 54 cas_1_1- inner node disablement - // 55 odr_ofs_mp_1_4- inner node disablement - // 56 b2i_ds_output_1_1- inner node disablement - // 57 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFF; + // 17 ifd_gmv_1_4- inner node disablement + // 18 ifd_segmap_bnlm_1_4- inner node disablement + // 19 smurf_bnlm_1_0- inner node disablement + // 20 bnlm_3_4- inner node disablement + // 21 bxt_demosaic- inner node disablement + // 22 vcsc_2_0_b- inner node disablement + // 23 gltm_2_0- inner node disablement + // 24 ifd_segmap_xnr_1_4- inner node disablement + // 25 smurf_xnr_1_0- inner node disablement + // 26 xnr_5_4- inner node disablement + // 27 vcr_3_1- inner node disablement + // 28 glim_2_0- inner node disablement + // 29 ifd_segmap_acm_1_4- inner node disablement + // 30 smurf_acm_1_0- inner node disablement + // 31 acm_1_2- inner node disablement + // 32 gammatm_v4- inner node disablement + // 33 csc_1_1- inner node disablement + // 34 b2i_ds_1_1- inner node disablement + // 35 lbff_crop_espa_1_4- inner node disablement + // 36 image_upscaler_1_1- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC9D501F6811 + // RBM - 0x0000000000000000006400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED9BF1F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC01E9F - bitmaps.teb[0] = 0xFFC01E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0321E9F + bitmaps.teb[0] = 0xF0321E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; } @@ -4029,10 +4409,10 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffBayerNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 58; ++i) + for (uint8_t i = 0; i < 46; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -4082,7 +4462,7 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFE0180; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFE0180; break; } @@ -4102,7 +4482,7 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F4000000000000; + disabledRunKernelsBitmap[0] |= 0x3F1000000000; break; } @@ -4112,23 +4492,10 @@ void LbffBayerNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void IsysPdaf2WithCvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void IsysPdaf2WithCvOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - -void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 62; ++i) + for (uint8_t i = 0; i < 58; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -4136,7 +4503,7 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // Pass-through kernels nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) @@ -4165,123 +4532,9 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; - } - else if (nodeRelevantInnerOptions == (noPdaf)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FC9D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC01E9F - bitmaps.teb[0] = 0xFFC01E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0000; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC0009F - bitmaps.teb[0] = 0xFFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; + disabledRunKernelsBitmap[0] = 0x1FE00; } else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FD9D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FD9D; - // DEB - 0x000000000000C1FFFFF0FFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC03F9F - bitmaps.teb[0] = 0xEFC03F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC0009F - bitmaps.teb[0] = 0xEFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000001FFE00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps // RBM - 0x00000000000000000047FC9D501F6811 @@ -4299,14 +4552,10 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000001E0000; + // 55 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps // RBM - 0x00000000000000000047FC9D50016811 @@ -4332,70 +4581,10 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000001FFE00; + // 55 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000001FE00; } else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FD9D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FD9D; - // DEB - 0x00000000000021FFFFF0FFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC03F9F - bitmaps.teb[0] = 0xDFC03F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC0009F - bitmaps.teb[0] = 0xDFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000001FFE00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps // RBM - 0x00000000000000000027FC9D501F6811 @@ -4413,15 +4602,11 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000001E0000; + // 56 b2i_ds_output_1_1- inner node disablement + // 57 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x300000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps // RBM - 0x00000000000000000027FC9D50016811 @@ -4447,72 +4632,68 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000001FFE00; + // 56 b2i_ds_output_1_1- inner node disablement + // 57 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000001FE00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180001E6811 + // RBM - 0x000000000000000000000080001E6811 bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFFF1 - bitmaps.deb[0] = 0x1DBFFF1; - // TEB - 0x0000000000003F97 - bitmaps.teb[0] = 0x3F97; - // REB - 0x00000000000000000000000006017FE7 - bitmaps.reb[0] = 0x6017FE7; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; // Kernels disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFE00180; + // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 tnr7_spatial_1_1- inner node disablement + // 39 tnr_scaler_lb_1_1- inner node disablement + // 40 tnr7_ims_1_2- inner node disablement + // 41 ifd_segmap_tnr_bc_1_4- inner node disablement + // 42 smurf_tnr_bc_1_0- inner node disablement + // 43 tnr7_bc_1_2- inner node disablement + // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 45 ifd_segmap_tnr_blend_1_4- inner node disablement + // 46 smurf_tnr_blend_1_0- inner node disablement + // 47 tnr7_blend_1_1- inner node disablement + // 48 odr_tnr_fp_yuvn_1_4- inner node disablement + // 49 tnr_scaler_fp_1_1- inner node disablement + // 50 image_upscaler_1_1- inner node disablement + // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 52 ifd_segmap_cas_1_4- inner node disablement + // 53 smurf_cas_1_0- inner node disablement + // 54 cas_1_1- inner node disablement + // 55 odr_ofs_mp_1_4- inner node disablement + // 56 b2i_ds_output_1_1- inner node disablement + // 57 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFE0180; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -4540,203 +4721,63 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; - - // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFE0180; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; + // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 tnr7_spatial_1_1- inner node disablement + // 39 tnr_scaler_lb_1_1- inner node disablement + // 40 tnr7_ims_1_2- inner node disablement + // 41 ifd_segmap_tnr_bc_1_4- inner node disablement + // 42 smurf_tnr_bc_1_0- inner node disablement + // 43 tnr7_bc_1_2- inner node disablement + // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 45 ifd_segmap_tnr_blend_1_4- inner node disablement + // 46 smurf_tnr_blend_1_0- inner node disablement + // 47 tnr7_blend_1_1- inner node disablement + // 48 odr_tnr_fp_yuvn_1_4- inner node disablement + // 49 tnr_scaler_fp_1_1- inner node disablement + // 50 image_upscaler_1_1- inner node disablement + // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 52 ifd_segmap_cas_1_4- inner node disablement + // 53 smurf_cas_1_0- inner node disablement + // 54 cas_1_1- inner node disablement + // 55 odr_ofs_mp_1_4- inner node disablement + // 56 b2i_ds_output_1_1- inner node disablement + // 57 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FD9D501F6811 + // RBM - 0x00000000000000000067FC9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FD9D; - // DEB - 0x000000000000E1FFFFF0FFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC03F9F - bitmaps.teb[0] = 0xFFC03F9F; + // TEB - 0x0000000FFFC01E9F + bitmaps.teb[0] = 0xFFC01E9F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; } @@ -4744,10 +4785,10 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 62; ++i) + for (uint8_t i = 0; i < 58; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -4797,7 +4838,7 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFE00180; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFE0180; break; } @@ -4817,7 +4858,7 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F40000000000000; + disabledRunKernelsBitmap[0] |= 0x3F4000000000000; break; } @@ -4827,10 +4868,10 @@ void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 66; ++i) + for (uint8_t i = 0; i < 62; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -4838,7 +4879,7 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // Pass-through kernels nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) @@ -4867,123 +4908,9 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; - } - else if (nodeRelevantInnerOptions == (noPdaf)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCBD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF21E9F - bitmaps.teb[0] = 0xFFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0000; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; + disabledRunKernelsBitmap[0] = 0x1FE00; } else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FDBD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF23F9F - bitmaps.teb[0] = 0xEFF23F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001FFE00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps // RBM - 0x00000000000000000047FCBD501F6811 @@ -5001,14 +4928,10 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001E0000; + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps // RBM - 0x00000000000000000047FCBD50016811 @@ -5034,34 +4957,30 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001FFE00; + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001FE00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD501F6811 + // RBM - 0x00000000000000000027FCBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x00000000000021FFFFFFFFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; bitmaps.deb[1] = 0xFFFFFFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF23F9F - bitmaps.teb[0] = 0xDFF23F9F; + // TEB - 0x0000000FDFF21E9F + bitmaps.teb[0] = 0xDFF21E9F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[1] = 0x3; + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { @@ -5089,60 +5008,91 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; - disabledRunKernelsBitmap[1] = 0x3; + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x300000000001FE00; } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF21E9F - bitmaps.teb[0] = 0xDFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0000; - disabledRunKernelsBitmap[1] = 0x3; + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 17 ifd_gmv_1_4- inner node disablement + // 18 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 19 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 20 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 tnr7_spatial_1_1- inner node disablement + // 40 tnr_scaler_lb_1_1- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 gmv_statistics_1_1- inner node disablement + // 43 odr_gmv_feature_1_4- inner node disablement + // 44 odr_gmv_match_1_4- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFE0180; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement // 9 rgbs_grid_1_1- inner node disablement // 10 ccm_3a_2_0- inner node disablement // 11 fr_grid_1_0- inner node disablement @@ -5151,317 +5101,67 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 14 aestatistics_2_1- inner node disablement // 15 odr_ae_1_4- inner node disablement // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; - disabledRunKernelsBitmap[1] = 0x3; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000180001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFFF1 - bitmaps.deb[0] = 0x1DBFFF1; - // TEB - 0x0000000000003F97 - bitmaps.teb[0] = 0x3F97; - // REB - 0x00000000000000000000000006017FE7 - bitmaps.reb[0] = 0x6017FE7; - - // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFE00180; - disabledRunKernelsBitmap[1] = 0x3; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x3; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; - - // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFE0180; - disabledRunKernelsBitmap[1] = 0x3; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x3; + // 17 ifd_gmv_1_4- inner node disablement + // 18 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 19 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 20 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 tnr7_spatial_1_1- inner node disablement + // 40 tnr_scaler_lb_1_1- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 gmv_statistics_1_1- inner node disablement + // 43 odr_gmv_feature_1_4- inner node disablement + // 44 odr_gmv_match_1_4- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FDBD501F6811 + // RBM - 0x00000000000000000067FCBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; bitmaps.deb[1] = 0xFFFFFFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF23F9F - bitmaps.teb[0] = 0xFFF23F9F; + // TEB - 0x0000000FFFF21E9F + bitmaps.teb[0] = 0xFFF21E9F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; } @@ -5469,10 +5169,10 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffBayerPdaf2WithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 66; ++i) + for (uint8_t i = 0; i < 62; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -5522,8 +5222,7 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFE00180; - disabledRunKernelsBitmap[1] |= 0x3; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFFE0180; break; } @@ -5543,8 +5242,7 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF400000000000000; - disabledRunKernelsBitmap[1] |= 0x3; + disabledRunKernelsBitmap[0] |= 0x3F40000000000000; break; } @@ -5554,782 +5252,372 @@ void LbffBayerPdaf2WithTnrWithSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void IsysPdaf2OuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void IsysPdaf2OuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 61; ++i) + for (uint8_t i = 0; i < 38; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC0009F - bitmaps.teb[0] = 0xFFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000064009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000009F + bitmaps.teb[0] = 0x3000009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF0D0; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FE0380000; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000047FD9D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x47FD9D; - // DEB - 0x000000000000C1FFFFF0FFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC03E9F - bitmaps.teb[0] = 0xEFC03E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000064009D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030001E9F + bitmaps.teb[0] = 0x30001E9F; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 58 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000000; + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C00000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC0009F - bitmaps.teb[0] = 0xEFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000064009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000009F + bitmaps.teb[0] = 0x3000009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 58 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000000FF0D0; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FE0380000; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FD9D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x27FD9D; - // DEB - 0x00000000000021FFFFF0FFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC03E9F - bitmaps.teb[0] = 0xDFC03E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000044019D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x44019D; + // DEB - 0x000000000000C1200000F9CE8DDBFFF1 + bitmaps.deb[0] = 0x8DDBFFF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020003F9F + bitmaps.teb[0] = 0x20003F9F; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000000; + // 26 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC0009F - bitmaps.teb[0] = 0xDFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000044009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000009F + bitmaps.teb[0] = 0x2000009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000000FF0D0; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FE4380000; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; + // RBM - 0x00000000000000000044009D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020001E9F + bitmaps.teb[0] = 0x20001E9F; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 ifd_segmap_tnr_bc_1_4- inner node disablement - // 45 smurf_tnr_bc_1_0- inner node disablement - // 46 tnr7_bc_1_2- inner node disablement - // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 48 ifd_segmap_tnr_blend_1_4- inner node disablement - // 49 smurf_tnr_blend_1_0- inner node disablement - // 50 tnr7_blend_1_1- inner node disablement - // 51 odr_tnr_fp_yuvn_1_4- inner node disablement - // 52 tnr_scaler_fp_1_1- inner node disablement - // 53 image_upscaler_1_1- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 55 ifd_segmap_cas_1_4- inner node disablement - // 56 smurf_cas_1_0- inner node disablement - // 57 cas_1_1- inner node disablement - // 58 odr_ofs_mp_1_4- inner node disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF00C00; + // 26 odr_ofs_mp_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C04000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + // RBM - 0x00000000000000000044009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000009F + bitmaps.teb[0] = 0x2000009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 ifd_segmap_tnr_bc_1_4- inner node disablement - // 45 smurf_tnr_bc_1_0- inner node disablement - // 46 tnr7_bc_1_2- inner node disablement - // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 48 ifd_segmap_tnr_blend_1_4- inner node disablement - // 49 smurf_tnr_blend_1_0- inner node disablement - // 50 tnr7_blend_1_1- inner node disablement - // 51 odr_tnr_fp_yuvn_1_4- inner node disablement - // 52 tnr_scaler_fp_1_1- inner node disablement - // 53 image_upscaler_1_1- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 55 ifd_segmap_cas_1_4- inner node disablement - // 56 smurf_cas_1_0- inner node disablement - // 57 cas_1_1- inner node disablement - // 58 odr_ofs_mp_1_4- inner node disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFFFF; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FE4380000; } - else // default inner node + else if (nodeRelevantInnerOptions == (noDp)) { - // RBM - 0x00000000000000000067FD9D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x67FD9D; - // DEB - 0x000000000000E1FFFFF0FFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC03E9F - bitmaps.teb[0] = 0xFFC03E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // HW bitmaps + // RBM - 0x00000000000000000024019D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x24019D; + // DEB - 0x00000000000021200000F9CE8DDBFFF1 + bitmaps.deb[0] = 0x8DDBFFF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010003F9F + bitmaps.teb[0] = 0x10003F9F; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 61; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFFFFFFF00C00; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1FA0000000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 63; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000; } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC8009F - bitmaps.teb[0] = 0xFFC8009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + // RBM - 0x00000000000000000024009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000009F + bitmaps.teb[0] = 0x1000009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FF8380000; } - else if (nodeRelevantInnerOptions == (noPdaf)) + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC81E9F - bitmaps.teb[0] = 0xFFC81E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + // RBM - 0x00000000000000000024009D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010001E9F + bitmaps.teb[0] = 0x10001E9F; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C0000; + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C18000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC8009F - bitmaps.teb[0] = 0xFFC8009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + // RBM - 0x00000000000000000024009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000009F + bitmaps.teb[0] = 0x1000009F; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FD9D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FD9D; - // DEB - 0x000000000000C1FFFFF0FFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC83F9F - bitmaps.teb[0] = 0xEFC83F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 60 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC9D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC8009F - bitmaps.teb[0] = 0xEFC8009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000003FFC00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC9D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC81E9F - bitmaps.teb[0] = 0xEFC81E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000003C0000; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC9D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC8009F - bitmaps.teb[0] = 0xEFC8009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000003FFC00; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FD9D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FD9D; - // DEB - 0x00000000000021FFFFF0FFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC83F9F - bitmaps.teb[0] = 0xDFC83F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC8009F - bitmaps.teb[0] = 0xDFC8009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000003FFC00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC81E9F - bitmaps.teb[0] = 0xDFC81E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000003C0000; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC8009F - bitmaps.teb[0] = 0xDFC8009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000003FFC00; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FF8380000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180041E6811 - bitmaps.rbm[0] = 0x41E6811; + // RBM - 0x000000000000000000000180001E6811 + bitmaps.rbm[0] = 0x1E6811; bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001FBFFF1 - bitmaps.deb[0] = 0x1FBFFF1; - // TEB - 0x0000000000083F97 - bitmaps.teb[0] = 0x83F97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; + // DEB - 0x00000000000000000000000001DBFFF1 + bitmaps.deb[0] = 0x1DBFFF1; + // TEB - 0x0000000000003F97 + bitmaps.teb[0] = 0x3F97; + // REB - 0x00000000000000000000000006017FE7 + bitmaps.reb[0] = 0x6017FE7; // Kernels disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 ifd_segmap_tnr_bc_1_4- inner node disablement - // 47 smurf_tnr_bc_1_0- inner node disablement - // 48 tnr7_bc_1_2- inner node disablement - // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 50 ifd_segmap_tnr_blend_1_4- inner node disablement - // 51 smurf_tnr_blend_1_0- inner node disablement - // 52 tnr7_blend_1_1- inner node disablement - // 53 odr_tnr_fp_yuvn_1_4- inner node disablement - // 54 tnr_scaler_fp_1_1- inner node disablement - // 55 image_upscaler_1_1- inner node disablement - // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 57 ifd_segmap_cas_1_4- inner node disablement - // 58 smurf_cas_1_0- inner node disablement - // 59 cas_1_1- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFC00300; + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 bnlm_3_4- inner node disablement + // 10 bxt_demosaic- inner node disablement + // 11 vcsc_2_0_b- inner node disablement + // 12 gltm_2_0- inner node disablement + // 13 xnr_5_4- inner node disablement + // 14 vcr_3_1- inner node disablement + // 15 glim_2_0- inner node disablement + // 16 acm_1_2- inner node disablement + // 17 gammatm_v4- inner node disablement + // 18 csc_1_1- inner node disablement + // 22 b2i_ds_1_1- inner node disablement + // 23 lbff_crop_espa_1_4- inner node disablement + // 24 image_upscaler_1_1- inner node disablement + // 25 cas_1_1- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FC7FF80; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -6344,129 +5632,80 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOp // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 ifd_segmap_tnr_bc_1_4- inner node disablement - // 47 smurf_tnr_bc_1_0- inner node disablement - // 48 tnr7_bc_1_2- inner node disablement - // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 50 ifd_segmap_tnr_blend_1_4- inner node disablement - // 51 smurf_tnr_blend_1_0- inner node disablement - // 52 tnr7_blend_1_1- inner node disablement - // 53 odr_tnr_fp_yuvn_1_4- inner node disablement - // 54 tnr_scaler_fp_1_1- inner node disablement - // 55 image_upscaler_1_1- inner node disablement - // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 57 ifd_segmap_cas_1_4- inner node disablement - // 58 smurf_cas_1_0- inner node disablement - // 59 cas_1_1- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFFFF; + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 bnlm_3_4- inner node disablement + // 10 bxt_demosaic- inner node disablement + // 11 vcsc_2_0_b- inner node disablement + // 12 gltm_2_0- inner node disablement + // 13 xnr_5_4- inner node disablement + // 14 vcr_3_1- inner node disablement + // 15 glim_2_0- inner node disablement + // 16 acm_1_2- inner node disablement + // 17 gammatm_v4- inner node disablement + // 18 csc_1_1- inner node disablement + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 22 b2i_ds_1_1- inner node disablement + // 23 lbff_crop_espa_1_4- inner node disablement + // 24 image_upscaler_1_1- inner node disablement + // 25 cas_1_1- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000080041E6811 - bitmaps.rbm[0] = 0x41E6811; + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; bitmaps.rbm[1] = 0x80; - // DEB - 0x00000000000000000000000001BBF1F1 - bitmaps.deb[0] = 0x1BBF1F1; - // TEB - 0x0000000000081E97 - bitmaps.teb[0] = 0x81E97; - // REB - 0x0000000000000000000000000200FFE7 - bitmaps.reb[0] = 0x200FFE7; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; // Kernels disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 ifd_segmap_tnr_bc_1_4- inner node disablement - // 47 smurf_tnr_bc_1_0- inner node disablement - // 48 tnr7_bc_1_2- inner node disablement - // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 50 ifd_segmap_tnr_blend_1_4- inner node disablement - // 51 smurf_tnr_blend_1_0- inner node disablement - // 52 tnr7_blend_1_1- inner node disablement - // 53 odr_tnr_fp_yuvn_1_4- inner node disablement - // 54 tnr_scaler_fp_1_1- inner node disablement - // 55 image_upscaler_1_1- inner node disablement - // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 57 ifd_segmap_cas_1_4- inner node disablement - // 58 smurf_cas_1_0- inner node disablement - // 59 cas_1_1- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFC0300; + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 bnlm_3_4- inner node disablement + // 10 bxt_demosaic- inner node disablement + // 11 vcsc_2_0_b- inner node disablement + // 12 gltm_2_0- inner node disablement + // 13 xnr_5_4- inner node disablement + // 14 vcr_3_1- inner node disablement + // 15 glim_2_0- inner node disablement + // 16 acm_1_2- inner node disablement + // 17 gammatm_v4- inner node disablement + // 18 csc_1_1- inner node disablement + // 22 b2i_ds_1_1- inner node disablement + // 23 lbff_crop_espa_1_4- inner node disablement + // 24 image_upscaler_1_1- inner node disablement + // 25 cas_1_1- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C1FC7FF80; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -6481,81 +5720,55 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOp // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 ifd_segmap_tnr_bc_1_4- inner node disablement - // 47 smurf_tnr_bc_1_0- inner node disablement - // 48 tnr7_bc_1_2- inner node disablement - // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 50 ifd_segmap_tnr_blend_1_4- inner node disablement - // 51 smurf_tnr_blend_1_0- inner node disablement - // 52 tnr7_blend_1_1- inner node disablement - // 53 odr_tnr_fp_yuvn_1_4- inner node disablement - // 54 tnr_scaler_fp_1_1- inner node disablement - // 55 image_upscaler_1_1- inner node disablement - // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 57 ifd_segmap_cas_1_4- inner node disablement - // 58 smurf_cas_1_0- inner node disablement - // 59 cas_1_1- inner node disablement - // 60 odr_ofs_mp_1_4- inner node disablement - // 61 b2i_ds_output_1_1- inner node disablement - // 62 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFFFF; + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 bnlm_3_4- inner node disablement + // 10 bxt_demosaic- inner node disablement + // 11 vcsc_2_0_b- inner node disablement + // 12 gltm_2_0- inner node disablement + // 13 xnr_5_4- inner node disablement + // 14 vcr_3_1- inner node disablement + // 15 glim_2_0- inner node disablement + // 16 acm_1_2- inner node disablement + // 17 gammatm_v4- inner node disablement + // 18 csc_1_1- inner node disablement + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 22 b2i_ds_1_1- inner node disablement + // 23 lbff_crop_espa_1_4- inner node disablement + // 24 image_upscaler_1_1- inner node disablement + // 25 cas_1_1- inner node disablement + // 26 odr_ofs_mp_1_4- inner node disablement + // 27 b2i_ds_output_1_1- inner node disablement + // 28 odr_ofs_dp_1_4- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_pdaf_1_4- inner node disablement + // 35 pext_1_0- inner node disablement + // 36 pafstatistics_1_2- inner node disablement + // 37 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FD9D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FD9D; - // DEB - 0x000000000000E1FFFFF0FFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC83F9F - bitmaps.teb[0] = 0xFFC83F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000064019D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x64019D; + // DEB - 0x000000000000E1200000F9CE8DDBFFF1 + bitmaps.deb[0] = 0x8DDBFFF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030003F9F + bitmaps.teb[0] = 0x30003F9F; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; } @@ -6563,16 +5776,16 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOp } -void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 63; ++i) + for (uint8_t i = 0; i < 38; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -6616,7 +5829,7 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(Vanis bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFFFFFFC00300; + disabledRunKernelsBitmap[0] |= 0x1FC7FF80; break; } @@ -6636,7 +5849,7 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(Vanis bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7E80000000000000; + disabledRunKernelsBitmap[0] |= 0x1F000000; break; } @@ -6646,23 +5859,10 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(Vanis SetDisabledKernels(disabledRunKernelsBitmap); } -void IsysPdaf2OuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void IsysPdaf2OuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - -void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 38; ++i) + for (uint8_t i = 0; i < 42; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -6676,15 +5876,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 + // RBM - 0x0000000000000000006400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D8001F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000009F - bitmaps.teb[0] = 0x3000009F; + // TEB - 0x000000003032009F + bitmaps.teb[0] = 0x3032009F; // REB - 0x00000000000000000000001F12F607E7 bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; @@ -6707,15 +5907,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000064009D501F6811 + // RBM - 0x0000000000000000006400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D9BF1F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030001E9F - bitmaps.teb[0] = 0x30001E9F; + // TEB - 0x0000000030321E9F + bitmaps.teb[0] = 0x30321E9F; // REB - 0x00000000000000000000001F12F67FE7 bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; @@ -6730,15 +5930,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 + // RBM - 0x0000000000000000006400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D8001F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000009F - bitmaps.teb[0] = 0x3000009F; + // TEB - 0x000000003032009F + bitmaps.teb[0] = 0x3032009F; // REB - 0x00000000000000000000001F12F607E7 bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; @@ -6761,15 +5961,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044019D501F6811 + // RBM - 0x0000000000000000004401BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x44019D; - // DEB - 0x000000000000C1200000F9CE8DDBFFF1 + bitmaps.rbm[1] = 0x4401BD; + // DEB - 0x000000000000C120000FF9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020003F9F - bitmaps.teb[0] = 0x20003F9F; + // TEB - 0x0000000020323F9F + bitmaps.teb[0] = 0x20323F9F; // REB - 0x00000000000000000000001F16F77FE7 bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; @@ -6781,15 +5981,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 + // RBM - 0x0000000000000000004400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D8001F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000009F - bitmaps.teb[0] = 0x2000009F; + // TEB - 0x000000002032009F + bitmaps.teb[0] = 0x2032009F; // REB - 0x00000000000000000000001F12F607E7 bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; @@ -6813,15 +6013,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D501F6811 + // RBM - 0x0000000000000000004400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D9BF1F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020001E9F - bitmaps.teb[0] = 0x20001E9F; + // TEB - 0x0000000020321E9F + bitmaps.teb[0] = 0x20321E9F; // REB - 0x00000000000000000000001F12F67FE7 bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; @@ -6837,15 +6037,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 + // RBM - 0x0000000000000000004400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D8001F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000009F - bitmaps.teb[0] = 0x2000009F; + // TEB - 0x000000002032009F + bitmaps.teb[0] = 0x2032009F; // REB - 0x00000000000000000000001F12F607E7 bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; @@ -6869,15 +6069,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024019D501F6811 + // RBM - 0x0000000000000000002401BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x24019D; - // DEB - 0x00000000000021200000F9CE8DDBFFF1 + bitmaps.rbm[1] = 0x2401BD; + // DEB - 0x0000000000002120000FF9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010003F9F - bitmaps.teb[0] = 0x10003F9F; + // TEB - 0x0000000010323F9F + bitmaps.teb[0] = 0x10323F9F; // REB - 0x00000000000000000000001F16F77FE7 bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; @@ -6890,15 +6090,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 + // RBM - 0x0000000000000000002400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D8001F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000009F - bitmaps.teb[0] = 0x1000009F; + // TEB - 0x000000001032009F + bitmaps.teb[0] = 0x1032009F; // REB - 0x00000000000000000000001F12F607E7 bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; @@ -6923,15 +6123,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D501F6811 + // RBM - 0x0000000000000000002400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D9BF1F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010001E9F - bitmaps.teb[0] = 0x10001E9F; + // TEB - 0x0000000010321E9F + bitmaps.teb[0] = 0x10321E9F; // REB - 0x00000000000000000000001F12F67FE7 bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; @@ -6948,15 +6148,15 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 + // RBM - 0x0000000000000000002400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D8001F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000009F - bitmaps.teb[0] = 0x1000009F; + // TEB - 0x000000001032009F + bitmaps.teb[0] = 0x1032009F; // REB - 0x00000000000000000000001F12F607E7 bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; @@ -7011,7 +6211,11 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 26 odr_ofs_mp_1_4- inner node disablement // 27 b2i_ds_output_1_1- inner node disablement // 28 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FC7FF80; + // 38 ifd_gmv_1_4- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C01FC7FF80; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -7060,7 +6264,11 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 35 pext_1_0- inner node disablement // 36 pafstatistics_1_2- inner node disablement // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFF; + // 38 ifd_gmv_1_4- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -7099,7 +6307,11 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 35 pext_1_0- inner node disablement // 36 pafstatistics_1_2- inner node disablement // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C1FC7FF80; + // 38 ifd_gmv_1_4- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FC1FC7FF80; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -7148,19 +6360,23 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags // 35 pext_1_0- inner node disablement // 36 pafstatistics_1_2- inner node disablement // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFF; + // 38 ifd_gmv_1_4- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064019D501F6811 + // RBM - 0x0000000000000000006401BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x64019D; - // DEB - 0x000000000000E1200000F9CE8DDBFFF1 + bitmaps.rbm[1] = 0x6401BD; + // DEB - 0x000000000000E120000FF9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030003F9F - bitmaps.teb[0] = 0x30003F9F; + // TEB - 0x0000000030323F9F + bitmaps.teb[0] = 0x30323F9F; // REB - 0x00000000000000000000001F16F77FE7 bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; @@ -7170,10 +6386,10 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags } -void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 38; ++i) + for (uint8_t i = 0; i < 42; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -7223,7 +6439,7 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FC7FF80; + disabledRunKernelsBitmap[0] |= 0x3C01FC7FF80; break; } @@ -7253,10 +6469,10 @@ void LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 42; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -7270,307 +6486,307 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 + // RBM - 0x00000000000000000067FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032009F - bitmaps.teb[0] = 0x3032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0009F + bitmaps.teb[0] = 0x3FC0009F; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 19 rgbs_grid_1_1- inner node disablement // 20 ccm_3a_2_0- inner node disablement // 21 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FE0380000; + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC380000; } else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD501F6811 + // RBM - 0x00000000000000000067FC9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D9BF1F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030321E9F - bitmaps.teb[0] = 0x30321E9F; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC01E9F + bitmaps.teb[0] = 0x3FC01E9F; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C00000000; + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x780000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 + // RBM - 0x00000000000000000067FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032009F - bitmaps.teb[0] = 0x3032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0009F + bitmaps.teb[0] = 0x3FC0009F; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 19 rgbs_grid_1_1- inner node disablement // 20 ccm_3a_2_0- inner node disablement // 21 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FE0380000; + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC380000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004401BD501F6811 + // RBM - 0x00000000000000000047FD9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x4401BD; - // DEB - 0x000000000000C120000FF9CE8DDBFFF1 + bitmaps.rbm[1] = 0x47FD9D; + // DEB - 0x000000000000C13E79F0F9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020323F9F - bitmaps.teb[0] = 0x20323F9F; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC03F9F + bitmaps.teb[0] = 0x2FC03F9F; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 26 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000; + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 + // RBM - 0x00000000000000000047FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032009F - bitmaps.teb[0] = 0x2032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0009F + bitmaps.teb[0] = 0x2FC0009F; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 19 rgbs_grid_1_1- inner node disablement // 20 ccm_3a_2_0- inner node disablement // 21 fr_grid_1_0- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FE4380000; + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4007FC380000; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD501F6811 + // RBM - 0x00000000000000000047FC9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D9BF1F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020321E9F - bitmaps.teb[0] = 0x20321E9F; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC01E9F + bitmaps.teb[0] = 0x2FC01E9F; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C04000000; + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400780000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 + // RBM - 0x00000000000000000047FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032009F - bitmaps.teb[0] = 0x2032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0009F + bitmaps.teb[0] = 0x2FC0009F; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 19 rgbs_grid_1_1- inner node disablement // 20 ccm_3a_2_0- inner node disablement // 21 fr_grid_1_0- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FE4380000; + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4007FC380000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002401BD501F6811 + // RBM - 0x00000000000000000027FD9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x2401BD; - // DEB - 0x0000000000002120000FF9CE8DDBFFF1 + bitmaps.rbm[1] = 0x27FD9D; + // DEB - 0x000000000000213E79F0F9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010323F9F - bitmaps.teb[0] = 0x10323F9F; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC03F9F + bitmaps.teb[0] = 0x1FC03F9F; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000; + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 + // RBM - 0x00000000000000000027FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D8001F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001032009F - bitmaps.teb[0] = 0x1032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0009F + bitmaps.teb[0] = 0x1FC0009F; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 19 rgbs_grid_1_1- inner node disablement // 20 ccm_3a_2_0- inner node disablement // 21 fr_grid_1_0- inner node disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FF8380000; + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18007FC380000; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD501F6811 + // RBM - 0x00000000000000000027FC9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D9BF1F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010321E9F - bitmaps.teb[0] = 0x10321E9F; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC01E9F + bitmaps.teb[0] = 0x1FC01E9F; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C18000000; + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800780000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 + // RBM - 0x00000000000000000027FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D8001F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001032009F - bitmaps.teb[0] = 0x1032009F; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0009F + bitmaps.teb[0] = 0x1FC0009F; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 19 rgbs_grid_1_1- inner node disablement // 20 ccm_3a_2_0- inner node disablement // 21 fr_grid_1_0- inner node disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FF8380000; + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18007FC380000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -7600,16 +6816,24 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 18 csc_1_1- inner node disablement // 22 b2i_ds_1_1- inner node disablement // 23 lbff_crop_espa_1_4- inner node disablement - // 24 image_upscaler_1_1- inner node disablement - // 25 cas_1_1- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 38 ifd_gmv_1_4- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C01FC7FF80; + // 24 tnr7_spatial_1_1- inner node disablement + // 25 tnr_scaler_lb_1_1- inner node disablement + // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 tnr7_bc_1_2- inner node disablement + // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFF803C7FF80; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -7644,25 +6868,33 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 21 fr_grid_1_0- inner node disablement // 22 b2i_ds_1_1- inner node disablement // 23 lbff_crop_espa_1_4- inner node disablement - // 24 image_upscaler_1_1- inner node disablement - // 25 cas_1_1- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - // 38 ifd_gmv_1_4- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; + // 24 tnr7_spatial_1_1- inner node disablement + // 25 tnr_scaler_lb_1_1- inner node disablement + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 tnr7_bc_1_2- inner node disablement + // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -7692,34 +6924,42 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 18 csc_1_1- inner node disablement // 22 b2i_ds_1_1- inner node disablement // 23 lbff_crop_espa_1_4- inner node disablement - // 24 image_upscaler_1_1- inner node disablement - // 25 cas_1_1- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - // 38 ifd_gmv_1_4- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FC1FC7FF80; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement + // 24 tnr7_spatial_1_1- inner node disablement + // 25 tnr_scaler_lb_1_1- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 tnr7_bc_1_2- inner node disablement + // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFF83C7FF80; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement // 4 rgb_ir_2_0- inner node disablement // 5 ifd_lsc_1_4- inner node disablement // 6 lsc_1_2- inner node disablement @@ -7740,39 +6980,47 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 21 fr_grid_1_0- inner node disablement // 22 b2i_ds_1_1- inner node disablement // 23 lbff_crop_espa_1_4- inner node disablement - // 24 image_upscaler_1_1- inner node disablement - // 25 cas_1_1- inner node disablement - // 26 odr_ofs_mp_1_4- inner node disablement - // 27 b2i_ds_output_1_1- inner node disablement - // 28 odr_ofs_dp_1_4- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_pdaf_1_4- inner node disablement - // 35 pext_1_0- inner node disablement - // 36 pafstatistics_1_2- inner node disablement - // 37 odr_pdaf_1_4- inner node disablement - // 38 ifd_gmv_1_4- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; + // 24 tnr7_spatial_1_1- inner node disablement + // 25 tnr_scaler_lb_1_1- inner node disablement + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_pdaf_1_4- inner node disablement + // 32 pext_1_0- inner node disablement + // 33 pafstatistics_1_2- inner node disablement + // 34 odr_pdaf_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 tnr7_bc_1_2- inner node disablement + // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006401BD501F6811 + // RBM - 0x00000000000000000067FD9D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x6401BD; - // DEB - 0x000000000000E120000FF9CE8DDBFFF1 + bitmaps.rbm[1] = 0x67FD9D; + // DEB - 0x000000000000E13E79F0F9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030323F9F - bitmaps.teb[0] = 0x30323F9F; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC03F9F + bitmaps.teb[0] = 0x3FC03F9F; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; } @@ -7780,10 +7028,10 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 42; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -7833,7 +7081,7 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3C01FC7FF80; + disabledRunKernelsBitmap[0] |= 0x3FFF803C7FF80; break; } @@ -7853,7 +7101,7 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F000000; + disabledRunKernelsBitmap[0] |= 0x1F00000000000; break; } @@ -7863,10 +7111,10 @@ void LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 54; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -7880,15 +7128,15 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 + // RBM - 0x00000000000000000067FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D8001F1 + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0009F - bitmaps.teb[0] = 0x3FC0009F; + // TEB - 0x000000003FF2009F + bitmaps.teb[0] = 0x3FF2009F; // REB - 0x00000000000000000000001FF2F607E7 bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; @@ -7911,15 +7159,15 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D501F6811 + // RBM - 0x00000000000000000067FCBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D9BF1F1 + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC01E9F - bitmaps.teb[0] = 0x3FC01E9F; + // TEB - 0x000000003FF21E9F + bitmaps.teb[0] = 0x3FF21E9F; // REB - 0x00000000000000000000001FF2F67FE7 bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; @@ -7934,15 +7182,15 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 + // RBM - 0x00000000000000000067FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D8001F1 + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0009F - bitmaps.teb[0] = 0x3FC0009F; + // TEB - 0x000000003FF2009F + bitmaps.teb[0] = 0x3FF2009F; // REB - 0x00000000000000000000001FF2F607E7 bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; @@ -7965,35 +7213,35 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FD9D501F6811 + // RBM - 0x00000000000000000047FDBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FD9D; - // DEB - 0x000000000000C13E79F0F9CE8DDBFFF1 + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C13E79FFF9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC03F9F - bitmaps.teb[0] = 0x2FC03F9F; + // TEB - 0x000000002FF23F9F + bitmaps.teb[0] = 0x2FF23F9F; // REB - 0x00000000000000000000001FF6F77FE7 bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000; + // 50 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 + // RBM - 0x00000000000000000047FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D8001F1 + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0009F - bitmaps.teb[0] = 0x2FC0009F; + // TEB - 0x000000002FF2009F + bitmaps.teb[0] = 0x2FF2009F; // REB - 0x00000000000000000000001FF2F607E7 bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; @@ -8011,21 +7259,21 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4007FC380000; + // 50 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40007FC380000; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D501F6811 + // RBM - 0x00000000000000000047FCBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D9BF1F1 + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC01E9F - bitmaps.teb[0] = 0x2FC01E9F; + // TEB - 0x000000002FF21E9F + bitmaps.teb[0] = 0x2FF21E9F; // REB - 0x00000000000000000000001FF2F67FE7 bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; @@ -8035,21 +7283,21 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400780000000; + // 50 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000780000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 + // RBM - 0x00000000000000000047FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D8001F1 + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0009F - bitmaps.teb[0] = 0x2FC0009F; + // TEB - 0x000000002FF2009F + bitmaps.teb[0] = 0x2FF2009F; // REB - 0x00000000000000000000001FF2F607E7 bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; @@ -8067,42 +7315,42 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4007FC380000; + // 50 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40007FC380000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FD9D501F6811 + // RBM - 0x00000000000000000027FDBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FD9D; - // DEB - 0x000000000000213E79F0F9CE8DDBFFF1 + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x000000000000213E79FFF9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC03F9F - bitmaps.teb[0] = 0x1FC03F9F; + // TEB - 0x000000001FF23F9F + bitmaps.teb[0] = 0x1FF23F9F; // REB - 0x00000000000000000000001FF6F77FE7 bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000; + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 + // RBM - 0x00000000000000000027FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D8001F1 + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0009F - bitmaps.teb[0] = 0x1FC0009F; + // TEB - 0x000000001FF2009F + bitmaps.teb[0] = 0x1FF2009F; // REB - 0x00000000000000000000001FF2F607E7 bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; @@ -8120,22 +7368,22 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18007FC380000; + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180007FC380000; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D501F6811 + // RBM - 0x00000000000000000027FCBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D9BF1F1 + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D9BF1F1 bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC01E9F - bitmaps.teb[0] = 0x1FC01E9F; + // TEB - 0x000000001FF21E9F + bitmaps.teb[0] = 0x1FF21E9F; // REB - 0x00000000000000000000001FF2F67FE7 bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; @@ -8145,22 +7393,22 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800780000000; + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000780000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 + // RBM - 0x00000000000000000027FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D8001F1 + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D8001F1 bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0009F - bitmaps.teb[0] = 0x1FC0009F; + // TEB - 0x000000001FF2009F + bitmaps.teb[0] = 0x1FF2009F; // REB - 0x00000000000000000000001FF2F607E7 bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; @@ -8178,9 +7426,9 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18007FC380000; + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180007FC380000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -8212,22 +7460,26 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 23 lbff_crop_espa_1_4- inner node disablement // 24 tnr7_spatial_1_1- inner node disablement // 25 tnr_scaler_lb_1_1- inner node disablement - // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement - // 38 tnr7_bc_1_2- inner node disablement - // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFF803C7FF80; + // 35 ifd_gmv_1_4- inner node disablement + // 36 gmv_statistics_1_1- inner node disablement + // 37 odr_gmv_feature_1_4- inner node disablement + // 38 odr_gmv_match_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 tnr7_bc_1_2- inner node disablement + // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 45 tnr7_blend_1_1- inner node disablement + // 46 odr_tnr_fp_yuvn_1_4- inner node disablement + // 47 tnr_scaler_fp_1_1- inner node disablement + // 48 image_upscaler_1_1- inner node disablement + // 49 cas_1_1- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFF803C7FF80; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -8273,22 +7525,26 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement - // 38 tnr7_bc_1_2- inner node disablement - // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; + // 35 ifd_gmv_1_4- inner node disablement + // 36 gmv_statistics_1_1- inner node disablement + // 37 odr_gmv_feature_1_4- inner node disablement + // 38 odr_gmv_match_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 tnr7_bc_1_2- inner node disablement + // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 45 tnr7_blend_1_1- inner node disablement + // 46 odr_tnr_fp_yuvn_1_4- inner node disablement + // 47 tnr_scaler_fp_1_1- inner node disablement + // 48 image_upscaler_1_1- inner node disablement + // 49 cas_1_1- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -8324,22 +7580,26 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement - // 38 tnr7_bc_1_2- inner node disablement - // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFF83C7FF80; + // 35 ifd_gmv_1_4- inner node disablement + // 36 gmv_statistics_1_1- inner node disablement + // 37 odr_gmv_feature_1_4- inner node disablement + // 38 odr_gmv_match_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 tnr7_bc_1_2- inner node disablement + // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 45 tnr7_blend_1_1- inner node disablement + // 46 odr_tnr_fp_yuvn_1_4- inner node disablement + // 47 tnr_scaler_fp_1_1- inner node disablement + // 48 image_upscaler_1_1- inner node disablement + // 49 cas_1_1- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFF83C7FF80; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -8385,34 +7645,38 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // 32 pext_1_0- inner node disablement // 33 pafstatistics_1_2- inner node disablement // 34 odr_pdaf_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement - // 38 tnr7_bc_1_2- inner node disablement - // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; + // 35 ifd_gmv_1_4- inner node disablement + // 36 gmv_statistics_1_1- inner node disablement + // 37 odr_gmv_feature_1_4- inner node disablement + // 38 odr_gmv_match_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 tnr7_bc_1_2- inner node disablement + // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 45 tnr7_blend_1_1- inner node disablement + // 46 odr_tnr_fp_yuvn_1_4- inner node disablement + // 47 tnr_scaler_fp_1_1- inner node disablement + // 48 image_upscaler_1_1- inner node disablement + // 49 cas_1_1- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FD9D501F6811 + // RBM - 0x00000000000000000067FDBD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FD9D; - // DEB - 0x000000000000E13E79F0F9CE8DDBFFF1 + bitmaps.rbm[1] = 0x67FDBD; + // DEB - 0x000000000000E13E79FFF9CE8DDBFFF1 bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC03F9F - bitmaps.teb[0] = 0x3FC03F9F; + // TEB - 0x000000003FF23F9F + bitmaps.teb[0] = 0x3FF23F9F; // REB - 0x00000000000000000000001FF6F77FE7 bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; @@ -8422,10 +7686,10 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 54; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -8475,7 +7739,7 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFF803C7FF80; + disabledRunKernelsBitmap[0] |= 0x3FFFF803C7FF80; break; } @@ -8495,7 +7759,7 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F00000000000; + disabledRunKernelsBitmap[0] |= 0x1F000000000000; break; } @@ -8505,10 +7769,23 @@ void LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void IsysPdaf2WithCvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void IsysPdaf2WithCvOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 54; ++i) + for (uint8_t i = 0; i < 46; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -8522,307 +7799,318 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 + // RBM - 0x00000000000000000064009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF2009F - bitmaps.teb[0] = 0x3FF2009F; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F000009F + bitmaps.teb[0] = 0xF000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC380000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD501F6811 + // RBM - 0x00000000000000000064009D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF21E9F - bitmaps.teb[0] = 0x3FF21E9F; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0001E9F + bitmaps.teb[0] = 0xF0001E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x780000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 + // RBM - 0x00000000000000000064009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF2009F - bitmaps.teb[0] = 0x3FF2009F; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F000009F + bitmaps.teb[0] = 0xF000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC380000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FDBD501F6811 + // RBM - 0x00000000000000000044019D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C13E79FFF9CE8DDBFFF1 - bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF23F9F - bitmaps.teb[0] = 0x2FF23F9F; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + bitmaps.rbm[1] = 0x44019D; + // DEB - 0x000000000000C1E00000FFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0003F9F + bitmaps.teb[0] = 0xE0003F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 50 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000000000; + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 + // RBM - 0x00000000000000000044009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF2009F - bitmaps.teb[0] = 0x2FF2009F; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E000009F + bitmaps.teb[0] = 0xE000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40007FC380000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800001FFE00; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD501F6811 + // RBM - 0x00000000000000000044009D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF21E9F - bitmaps.teb[0] = 0x2FF21E9F; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0001E9F + bitmaps.teb[0] = 0xE0001E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000780000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800001E0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 + // RBM - 0x00000000000000000044009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF2009F - bitmaps.teb[0] = 0x2FF2009F; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E000009F + bitmaps.teb[0] = 0xE000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40007FC380000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800001FFE00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD501F6811 + // RBM - 0x00000000000000000024019D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x000000000000213E79FFF9CE8DDBFFF1 - bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF23F9F - bitmaps.teb[0] = 0x1FF23F9F; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + bitmaps.rbm[1] = 0x24019D; + // DEB - 0x00000000000021E00000FFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0003F9F + bitmaps.teb[0] = 0xD0003F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000000000; + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x300000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 + // RBM - 0x00000000000000000024009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF2009F - bitmaps.teb[0] = 0x1FF2009F; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D000009F + bitmaps.teb[0] = 0xD000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180007FC380000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000001FFE00; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD501F6811 + // RBM - 0x00000000000000000024009D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF21E9F - bitmaps.teb[0] = 0x1FF21E9F; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0001E9F + bitmaps.teb[0] = 0xD0001E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000780000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000001E0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 + // RBM - 0x00000000000000000024009D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF2009F - bitmaps.teb[0] = 0x1FF2009F; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D000009F + bitmaps.teb[0] = 0xD000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180007FC380000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000001FFE00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -8840,40 +8128,32 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 9 bnlm_3_4- inner node disablement - // 10 bxt_demosaic- inner node disablement - // 11 vcsc_2_0_b- inner node disablement - // 12 gltm_2_0- inner node disablement - // 13 xnr_5_4- inner node disablement - // 14 vcr_3_1- inner node disablement - // 15 glim_2_0- inner node disablement - // 16 acm_1_2- inner node disablement - // 17 gammatm_v4- inner node disablement - // 18 csc_1_1- inner node disablement - // 22 b2i_ds_1_1- inner node disablement - // 23 lbff_crop_espa_1_4- inner node disablement - // 24 tnr7_spatial_1_1- inner node disablement - // 25 tnr_scaler_lb_1_1- inner node disablement - // 35 ifd_gmv_1_4- inner node disablement - // 36 gmv_statistics_1_1- inner node disablement - // 37 odr_gmv_feature_1_4- inner node disablement - // 38 odr_gmv_match_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 tnr7_bc_1_2- inner node disablement - // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 45 tnr7_blend_1_1- inner node disablement - // 46 odr_tnr_fp_yuvn_1_4- inner node disablement - // 47 tnr_scaler_fp_1_1- inner node disablement - // 48 image_upscaler_1_1- inner node disablement - // 49 cas_1_1- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFF803C7FF80; + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFE00180; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -8893,60 +8173,52 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // 6 lsc_1_2- inner node disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 9 bnlm_3_4- inner node disablement - // 10 bxt_demosaic- inner node disablement - // 11 vcsc_2_0_b- inner node disablement - // 12 gltm_2_0- inner node disablement - // 13 xnr_5_4- inner node disablement - // 14 vcr_3_1- inner node disablement - // 15 glim_2_0- inner node disablement - // 16 acm_1_2- inner node disablement - // 17 gammatm_v4- inner node disablement - // 18 csc_1_1- inner node disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 22 b2i_ds_1_1- inner node disablement - // 23 lbff_crop_espa_1_4- inner node disablement - // 24 tnr7_spatial_1_1- inner node disablement - // 25 tnr_scaler_lb_1_1- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 35 ifd_gmv_1_4- inner node disablement - // 36 gmv_statistics_1_1- inner node disablement - // 37 odr_gmv_feature_1_4- inner node disablement - // 38 odr_gmv_match_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 tnr7_bc_1_2- inner node disablement - // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 45 tnr7_blend_1_1- inner node disablement - // 46 odr_tnr_fp_yuvn_1_4- inner node disablement - // 47 tnr_scaler_fp_1_1- inner node disablement - // 48 image_upscaler_1_1- inner node disablement - // 49 cas_1_1- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFF; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 bitmaps.deb[0] = 0x19BF1F1; // TEB - 0x0000000000001E97 bitmaps.teb[0] = 0x1E97; @@ -8956,44 +8228,36 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 9 bnlm_3_4- inner node disablement - // 10 bxt_demosaic- inner node disablement - // 11 vcsc_2_0_b- inner node disablement - // 12 gltm_2_0- inner node disablement - // 13 xnr_5_4- inner node disablement - // 14 vcr_3_1- inner node disablement - // 15 glim_2_0- inner node disablement - // 16 acm_1_2- inner node disablement - // 17 gammatm_v4- inner node disablement - // 18 csc_1_1- inner node disablement - // 22 b2i_ds_1_1- inner node disablement - // 23 lbff_crop_espa_1_4- inner node disablement - // 24 tnr7_spatial_1_1- inner node disablement - // 25 tnr_scaler_lb_1_1- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 35 ifd_gmv_1_4- inner node disablement - // 36 gmv_statistics_1_1- inner node disablement - // 37 odr_gmv_feature_1_4- inner node disablement - // 38 odr_gmv_match_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 tnr7_bc_1_2- inner node disablement - // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 45 tnr7_blend_1_1- inner node disablement - // 46 odr_tnr_fp_yuvn_1_4- inner node disablement - // 47 tnr_scaler_fp_1_1- inner node disablement - // 48 image_upscaler_1_1- inner node disablement - // 49 cas_1_1- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFF83C7FF80; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFE0180; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -9013,66 +8277,59 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // 6 lsc_1_2- inner node disablement // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement - // 9 bnlm_3_4- inner node disablement - // 10 bxt_demosaic- inner node disablement - // 11 vcsc_2_0_b- inner node disablement - // 12 gltm_2_0- inner node disablement - // 13 xnr_5_4- inner node disablement - // 14 vcr_3_1- inner node disablement - // 15 glim_2_0- inner node disablement - // 16 acm_1_2- inner node disablement - // 17 gammatm_v4- inner node disablement - // 18 csc_1_1- inner node disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 22 b2i_ds_1_1- inner node disablement - // 23 lbff_crop_espa_1_4- inner node disablement - // 24 tnr7_spatial_1_1- inner node disablement - // 25 tnr_scaler_lb_1_1- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_pdaf_1_4- inner node disablement - // 32 pext_1_0- inner node disablement - // 33 pafstatistics_1_2- inner node disablement - // 34 odr_pdaf_1_4- inner node disablement - // 35 ifd_gmv_1_4- inner node disablement - // 36 gmv_statistics_1_1- inner node disablement - // 37 odr_gmv_feature_1_4- inner node disablement - // 38 odr_gmv_match_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 tnr7_bc_1_2- inner node disablement - // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 45 tnr7_blend_1_1- inner node disablement - // 46 odr_tnr_fp_yuvn_1_4- inner node disablement - // 47 tnr_scaler_fp_1_1- inner node disablement - // 48 image_upscaler_1_1- inner node disablement - // 49 cas_1_1- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFF; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FDBD501F6811 + // RBM - 0x00000000000000000064019D501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E13E79FFF9CE8DDBFFF1 - bitmaps.deb[0] = 0x8DDBFFF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF23F9F - bitmaps.teb[0] = 0x3FF23F9F; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + bitmaps.rbm[1] = 0x64019D; + // DEB - 0x000000000000E1E00000FFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0003F9F + bitmaps.teb[0] = 0xF0003F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; } @@ -9080,10 +8337,10 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 54; ++i) + for (uint8_t i = 0; i < 46; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -9133,7 +8390,7 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFF803C7FF80; + disabledRunKernelsBitmap[0] |= 0x3FFFFFE00180; break; } @@ -9153,7 +8410,7 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F000000000000; + disabledRunKernelsBitmap[0] |= 0x3F8000000000; break; } @@ -9163,10 +8420,10 @@ void LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 66; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -9180,18 +8437,18 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 + // RBM - 0x0000000000000000006400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F032009F + bitmaps.teb[0] = 0xF032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9212,18 +8469,18 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD501F6811 + // RBM - 0x0000000000000000006400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED9BF1F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF21E9F - bitmaps.teb[0] = 0xFFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0321E9F + bitmaps.teb[0] = 0xF0321E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9236,18 +8493,18 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 + // RBM - 0x0000000000000000006400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F032009F + bitmaps.teb[0] = 0xF032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9268,39 +8525,39 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FDBD501F6811 + // RBM - 0x0000000000000000004401BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDDBFFF1 + bitmaps.rbm[1] = 0x4401BD; + // DEB - 0x000000000000C1E0000FFFFEEDDBFFF1 bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF23F9F - bitmaps.teb[0] = 0xEFF23F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0323F9F + bitmaps.teb[0] = 0xE0323F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000000000; + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 + // RBM - 0x0000000000000000004400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E032009F + bitmaps.teb[0] = 0xE032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9316,24 +8573,24 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 18 pext_1_0- inner node disablement // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001FFE00; + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000001FFE00; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD501F6811 + // RBM - 0x0000000000000000004400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED9BF1F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF21E9F - bitmaps.teb[0] = 0xEFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0321E9F + bitmaps.teb[0] = 0xE0321E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9341,24 +8598,24 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 18 pext_1_0- inner node disablement // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001E0000; + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000001E0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 + // RBM - 0x0000000000000000004400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E032009F + bitmaps.teb[0] = 0xE032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9374,46 +8631,46 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 18 pext_1_0- inner node disablement // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000001FFE00; + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000001FFE00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD501F6811 + // RBM - 0x0000000000000000002401BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x00000000000021FFFFFFFFFEEDDBFFF1 + bitmaps.rbm[1] = 0x2401BD; + // DEB - 0x00000000000021E0000FFFFEEDDBFFF1 bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF23F9F - bitmaps.teb[0] = 0xDFF23F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0323F9F + bitmaps.teb[0] = 0xD0323F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[1] = 0x3; + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 + // RBM - 0x0000000000000000002400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D032009F + bitmaps.teb[0] = 0xD032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9429,26 +8686,25 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 18 pext_1_0- inner node disablement // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; - disabledRunKernelsBitmap[1] = 0x3; + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000001FFE00; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD501F6811 + // RBM - 0x0000000000000000002400BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED9BF1F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED9BF1F1 bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF21E9F - bitmaps.teb[0] = 0xDFF21E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0321E9F + bitmaps.teb[0] = 0xD0321E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FE7 + bitmaps.reb[0] = 0x12F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9456,26 +8712,25 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 18 pext_1_0- inner node disablement // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0000; - disabledRunKernelsBitmap[1] = 0x3; + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000001E0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 + // RBM - 0x0000000000000000002400BD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED8001F1 bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D032009F + bitmaps.teb[0] = 0xD032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607E7 + bitmaps.reb[0] = 0x12F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -9491,10 +8746,9 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 18 pext_1_0- inner node disablement // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; - disabledRunKernelsBitmap[1] = 0x3; + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000001FFE00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -9513,52 +8767,35 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 7 gd_2_2- inner node disablement // 8 wb_1_1- inner node disablement // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFE00180; - disabledRunKernelsBitmap[1] = 0x3; + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 gmv_statistics_1_1- inner node disablement + // 42 odr_gmv_feature_1_4- inner node disablement + // 43 odr_gmv_match_1_4- inner node disablement + // 44 ifd_segmap_cas_1_4- inner node disablement + // 45 smurf_cas_1_0- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFE00180; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -9591,52 +8828,35 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x3; + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 gmv_statistics_1_1- inner node disablement + // 42 odr_gmv_feature_1_4- inner node disablement + // 43 odr_gmv_match_1_4- inner node disablement + // 44 ifd_segmap_cas_1_4- inner node disablement + // 45 smurf_cas_1_0- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -9659,52 +8879,35 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFE0180; - disabledRunKernelsBitmap[1] = 0x3; + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 gmv_statistics_1_1- inner node disablement + // 42 odr_gmv_feature_1_4- inner node disablement + // 43 odr_gmv_match_1_4- inner node disablement + // 44 ifd_segmap_cas_1_4- inner node disablement + // 45 smurf_cas_1_0- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFE0180; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -9737,67 +8940,50 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 19 pafstatistics_1_2- inner node disablement // 20 odr_pdaf_1_4- inner node disablement // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x3; + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 gmv_statistics_1_1- inner node disablement + // 42 odr_gmv_feature_1_4- inner node disablement + // 43 odr_gmv_match_1_4- inner node disablement + // 44 ifd_segmap_cas_1_4- inner node disablement + // 45 smurf_cas_1_0- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FDBD501F6811 + // RBM - 0x0000000000000000006401BD501F6811 bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDDBFFF1 + bitmaps.rbm[1] = 0x6401BD; + // DEB - 0x000000000000E1E0000FFFFEEDDBFFF1 bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF23F9F - bitmaps.teb[0] = 0xFFF23F9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F77FE7 - bitmaps.reb[0] = 0xF6F77FE7; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0323F9F + bitmaps.teb[0] = 0xF0323F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F77FE7 + bitmaps.reb[0] = 0x16F77FE7; bitmaps.reb[1] = 0x1F; } @@ -9805,10 +8991,10 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions } -void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 66; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -9858,8 +9044,7 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOpti bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFE00180; - disabledRunKernelsBitmap[1] |= 0x3; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFE00180; break; } @@ -9879,8 +9064,7 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOpti bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF400000000000000; - disabledRunKernelsBitmap[1] |= 0x3; + disabledRunKernelsBitmap[0] |= 0x3F10000000000; break; } @@ -9890,592 +9074,618 @@ void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOpti SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 37; ++i) + for (uint8_t i = 0; i < 62; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000009F - bitmaps.teb[0] = 0x3000009F; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000067FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC0009F + bitmaps.teb[0] = 0xFFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F01C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000044019D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x44019D; - // DEB - 0x000000000000C1200000F9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020003E9F - bitmaps.teb[0] = 0x20003E9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000067FC9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC01E9F + bitmaps.teb[0] = 0xFFC01E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 29 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000044009D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000009F - bitmaps.teb[0] = 0x2000009F; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000067FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC0009F + bitmaps.teb[0] = 0xFFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_ofs_mp_1_4- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F21C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000024019D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x24019D; - // DEB - 0x00000000000021200000F9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010003E9F - bitmaps.teb[0] = 0x10003E9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000047FD9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FD9D; + // DEB - 0x000000000000C1FFFFF0FFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC03F9F + bitmaps.teb[0] = 0xEFC03F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000; + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000009F - bitmaps.teb[0] = 0x1000009F; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000047FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC0009F + bitmaps.teb[0] = 0xEFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FC1C000D0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; - - // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 image_upscaler_1_1- inner node disablement - // 28 cas_1_1- inner node disablement - // 29 odr_ofs_mp_1_4- inner node disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFE3FFC00; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000001FFE00; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 image_upscaler_1_1- inner node disablement - // 28 cas_1_1- inner node disablement - // 29 odr_ofs_mp_1_4- inner node disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFF; - } - else // default inner node - { - // RBM - 0x00000000000000000064019D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x64019D; - // DEB - 0x000000000000E1200000F9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030003E9F - bitmaps.teb[0] = 0x30003E9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000047FC9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC01E9F + bitmaps.teb[0] = 0xEFC01E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 37; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFE3FFC00; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF8000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 41; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000001E0000; } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032009F - bitmaps.teb[0] = 0x3032009F; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000047FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC0009F + bitmaps.teb[0] = 0xEFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F01C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000001FFE00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000004401BD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x4401BD; - // DEB - 0x000000000000C120000FF9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020323E9F - bitmaps.teb[0] = 0x20323E9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000027FD9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FD9D; + // DEB - 0x00000000000021FFFFF0FFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC03F9F + bitmaps.teb[0] = 0xDFC03F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 29 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000; + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032009F - bitmaps.teb[0] = 0x2032009F; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000027FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC0009F + bitmaps.teb[0] = 0xDFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_ofs_mp_1_4- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F21C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000001FFE00; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002401BD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x2401BD; - // DEB - 0x0000000000002120000FF9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010323E9F - bitmaps.teb[0] = 0x10323E9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000027FC9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC01E9F + bitmaps.teb[0] = 0xDFC01E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000001E0000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001032009F - bitmaps.teb[0] = 0x1032009F; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000027FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC0009F + bitmaps.teb[0] = 0xDFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FC1C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000001FFE00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; + // RBM - 0x000000000000000000000180001E6811 + bitmaps.rbm[0] = 0x1E6811; bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; - - // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 image_upscaler_1_1- inner node disablement - // 28 cas_1_1- inner node disablement - // 29 odr_ofs_mp_1_4- inner node disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - // 37 ifd_gmv_1_4- inner node disablement - // 38 gmv_statistics_1_1- inner node disablement - // 39 odr_gmv_feature_1_4- inner node disablement - // 40 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0FE3FFC00; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000001DBFFF1 + bitmaps.deb[0] = 0x1DBFFF1; + // TEB - 0x0000000000003F97 + bitmaps.teb[0] = 0x3F97; + // REB - 0x00000000000000000000000006017FE7 + bitmaps.reb[0] = 0x6017FE7; // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFE00180; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 image_upscaler_1_1- inner node disablement - // 28 cas_1_1- inner node disablement - // 29 odr_ofs_mp_1_4- inner node disablement - // 30 b2i_ds_output_1_1- inner node disablement - // 31 odr_ofs_dp_1_4- inner node disablement - // 32 odr_awb_std_1_4- inner node disablement - // 33 odr_awb_sat_1_4- inner node disablement - // 34 aestatistics_2_1- inner node disablement - // 35 odr_ae_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - // 37 ifd_gmv_1_4- inner node disablement - // 38 gmv_statistics_1_1- inner node disablement - // 39 odr_gmv_feature_1_4- inner node disablement - // 40 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF; + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; + + // Kernels disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFE0180; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006401BD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x6401BD; - // DEB - 0x000000000000E120000FF9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030323E9F - bitmaps.teb[0] = 0x30323E9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000067FD9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x67FD9D; + // DEB - 0x000000000000E1FFFFF0FFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC03F9F + bitmaps.teb[0] = 0xFFC03F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; } @@ -10483,16 +9693,16 @@ void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 41; ++i) + for (uint8_t i = 0; i < 62; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -10536,7 +9746,7 @@ void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1E0FE3FFC00; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFE00180; break; } @@ -10556,7 +9766,7 @@ void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF8000000; + disabledRunKernelsBitmap[0] |= 0x3F40000000000000; break; } @@ -10566,562 +9776,402 @@ void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) + for (uint8_t i = 0; i < 66; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0009F - bitmaps.teb[0] = 0x3FC0009F; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000067FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3E1C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000047FD9D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x47FD9D; - // DEB - 0x000000000000C13E79F0F9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC03E9F - bitmaps.teb[0] = 0x2FC03E9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000067FCBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF21E9F + bitmaps.teb[0] = 0xFFF21E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0009F - bitmaps.teb[0] = 0x2FC0009F; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000067FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2003E1C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FD9D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x27FD9D; - // DEB - 0x000000000000213E79F0F9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC03E9F - bitmaps.teb[0] = 0x1FC03E9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000047FDBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF23F9F + bitmaps.teb[0] = 0xEFF23F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000000; + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0009F - bitmaps.teb[0] = 0x1FC0009F; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC003E1C000D0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; + // RBM - 0x00000000000000000047FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2009F + bitmaps.teb[0] = 0xEFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 tnr7_spatial_1_1- inner node disablement - // 28 tnr_scaler_lb_1_1- inner node disablement - // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 36 tnr7_ims_1_2- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 40 tnr7_blend_1_1- inner node disablement - // 41 odr_tnr_fp_yuvn_1_4- inner node disablement - // 42 tnr_scaler_fp_1_1- inner node disablement - // 43 image_upscaler_1_1- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFC1E3FFC00; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001FFE00; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 tnr7_spatial_1_1- inner node disablement - // 28 tnr_scaler_lb_1_1- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 36 tnr7_ims_1_2- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 40 tnr7_blend_1_1- inner node disablement - // 41 odr_tnr_fp_yuvn_1_4- inner node disablement - // 42 tnr_scaler_fp_1_1- inner node disablement - // 43 image_upscaler_1_1- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x00000000000000000067FD9D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x67FD9D; - // DEB - 0x000000000000E13E79F0F9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC03E9F - bitmaps.teb[0] = 0x3FC03E9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000047FCBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF21E9F + bitmaps.teb[0] = 0xEFF21E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFC1E3FFC00; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF80000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 53; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001E0000; } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF2009F - bitmaps.teb[0] = 0x3FF2009F; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000047FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2009F + bitmaps.teb[0] = 0xEFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3E1C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001FFE00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FDBD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C13E79FFF9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF23E9F - bitmaps.teb[0] = 0x2FF23E9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000027FDBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x00000000000021FFFFFFFFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF23F9F + bitmaps.teb[0] = 0xDFF23F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 49 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000000000000; + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[1] = 0x3; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF2009F - bitmaps.teb[0] = 0x2FF2009F; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // RBM - 0x00000000000000000027FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF2009F + bitmaps.teb[0] = 0xDFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 49 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20003E1C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; + disabledRunKernelsBitmap[1] = 0x3; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x000000000000213E79FFF9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF23E9F - bitmaps.teb[0] = 0x1FF23E9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // RBM - 0x00000000000000000027FCBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF21E9F + bitmaps.teb[0] = 0xDFF21E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000000000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0000; + disabledRunKernelsBitmap[1] = 0x3; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD58016811 - bitmaps.rbm[0] = 0x58016811; + // RBM - 0x00000000000000000027FCBD50016811 + bitmaps.rbm[0] = 0x50016811; bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF2009F - bitmaps.teb[0] = 0x1FF2009F; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF2009F + bitmaps.teb[0] = 0xDFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0003E1C000D0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; + // RBM - 0x000000000000000000000180001E6811 + bitmaps.rbm[0] = 0x1E6811; bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; - - // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 tnr7_spatial_1_1- inner node disablement - // 28 tnr_scaler_lb_1_1- inner node disablement - // 34 ifd_gmv_1_4- inner node disablement - // 35 gmv_statistics_1_1- inner node disablement - // 36 odr_gmv_feature_1_4- inner node disablement - // 37 odr_gmv_match_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 40 tnr7_ims_1_2- inner node disablement - // 41 tnr7_bc_1_2- inner node disablement - // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 44 tnr7_blend_1_1- inner node disablement - // 45 odr_tnr_fp_yuvn_1_4- inner node disablement - // 46 tnr_scaler_fp_1_1- inner node disablement - // 47 image_upscaler_1_1- inner node disablement - // 48 cas_1_1- inner node disablement - // 49 odr_ofs_mp_1_4- inner node disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFC1E3FFC00; + // DEB - 0x00000000000000000000000001DBFFF1 + bitmaps.deb[0] = 0x1DBFFF1; + // TEB - 0x0000000000003F97 + bitmaps.teb[0] = 0x3F97; + // REB - 0x00000000000000000000000006017FE7 + bitmaps.reb[0] = 0x6017FE7; + + // Kernels disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFE00180; + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -11136,70 +10186,231 @@ void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 bnlm_3_4- inner node disablement - // 13 bxt_demosaic- inner node disablement - // 14 vcsc_2_0_b- inner node disablement - // 15 gltm_2_0- inner node disablement - // 16 xnr_5_4- inner node disablement - // 17 vcr_3_1- inner node disablement - // 18 glim_2_0- inner node disablement - // 19 acm_1_2- inner node disablement - // 20 gammatm_v4- inner node disablement - // 21 csc_1_1- inner node disablement - // 22 rgbs_grid_1_1- inner node disablement - // 23 ccm_3a_2_0- inner node disablement - // 24 fr_grid_1_0- inner node disablement - // 25 b2i_ds_1_1- inner node disablement - // 26 lbff_crop_espa_1_4- inner node disablement - // 27 tnr7_spatial_1_1- inner node disablement - // 28 tnr_scaler_lb_1_1- inner node disablement - // 29 odr_awb_std_1_4- inner node disablement - // 30 odr_awb_sat_1_4- inner node disablement - // 31 aestatistics_2_1- inner node disablement - // 32 odr_ae_1_4- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_gmv_1_4- inner node disablement - // 35 gmv_statistics_1_1- inner node disablement - // 36 odr_gmv_feature_1_4- inner node disablement - // 37 odr_gmv_match_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 40 tnr7_ims_1_2- inner node disablement - // 41 tnr7_bc_1_2- inner node disablement - // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 44 tnr7_blend_1_1- inner node disablement - // 45 odr_tnr_fp_yuvn_1_4- inner node disablement - // 46 tnr_scaler_fp_1_1- inner node disablement - // 47 image_upscaler_1_1- inner node disablement - // 48 cas_1_1- inner node disablement - // 49 odr_ofs_mp_1_4- inner node disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFF; + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x3; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; + + // Kernels disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFE0180; + disabledRunKernelsBitmap[1] = 0x3; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x3; } else // default inner node { - // RBM - 0x00000000000000000067FDBD581F6811 - bitmaps.rbm[0] = 0x581F6811; + // RBM - 0x00000000000000000067FDBD501F6811 + bitmaps.rbm[0] = 0x501F6811; bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E13E79FFF9CE8DDBFDF1 - bitmaps.deb[0] = 0x8DDBFDF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF23E9F - bitmaps.teb[0] = 0x3FF23E9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + // DEB - 0x000000000000E1FFFFFFFFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF23F9F + bitmaps.teb[0] = 0xFFF23F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; } @@ -11207,16 +10418,16 @@ void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 53; ++i) + for (uint8_t i = 0; i < 66; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -11260,7 +10471,8 @@ void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFC1E3FFC00; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFE00180; + disabledRunKernelsBitmap[1] |= 0x3; break; } @@ -11280,7 +10492,8 @@ void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF800000000000; + disabledRunKernelsBitmap[0] |= 0xF400000000000000; + disabledRunKernelsBitmap[1] |= 0x3; break; } @@ -11290,10 +10503,10 @@ void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 65; ++i) + for (uint8_t i = 0; i < 37; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -11307,143 +10520,136 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD58016811 + // RBM - 0x00000000000000000064009D58016811 bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000009F + bitmaps.teb[0] = 0x3000009F; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 4 pext_1_0- inner node disablement // 6 pafstatistics_1_2- inner node disablement // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF0D0; + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F01C000D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FDBD581F6811 + // RBM - 0x00000000000000000044019D581F6811 bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF23E9F - bitmaps.teb[0] = 0xEFF23E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x44019D; + // DEB - 0x000000000000C1200000F9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020003E9F + bitmaps.teb[0] = 0x20003E9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 62 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000000000000; + // 29 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD58016811 + // RBM - 0x00000000000000000044009D58016811 bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000009F + bitmaps.teb[0] = 0x2000009F; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 4 pext_1_0- inner node disablement // 6 pafstatistics_1_2- inner node disablement // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 62 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000000000FF0D0; + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_ofs_mp_1_4- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F21C000D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD581F6811 + // RBM - 0x00000000000000000024019D581F6811 bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x00000000000021FFFFFFFFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF23E9F - bitmaps.teb[0] = 0xDFF23E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000000000; - disabledRunKernelsBitmap[1] = 0x1; - } + bitmaps.rbm[1] = 0x24019D; + // DEB - 0x00000000000021200000F9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010003E9F + bitmaps.teb[0] = 0x10003E9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000; + } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD58016811 + // RBM - 0x00000000000000000024009D58016811 bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F787E7 - bitmaps.reb[0] = 0xF6F787E7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000009F + bitmaps.teb[0] = 0x1000009F; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 4 pext_1_0- inner node disablement // 6 pafstatistics_1_2- inner node disablement // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000000FF0D0; - disabledRunKernelsBitmap[1] = 0x1; + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FC1C000D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -11461,53 +10667,24 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // Kernels disablement // 10 gd_2_2- inner node disablement // 11 wb_1_1- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 gmv_statistics_1_1- inner node disablement - // 46 odr_gmv_feature_1_4- inner node disablement - // 47 odr_gmv_match_1_4- inner node disablement - // 48 ifd_segmap_tnr_bc_1_4- inner node disablement - // 49 smurf_tnr_bc_1_0- inner node disablement - // 50 tnr7_bc_1_2- inner node disablement - // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 52 ifd_segmap_tnr_blend_1_4- inner node disablement - // 53 smurf_tnr_blend_1_0- inner node disablement - // 54 tnr7_blend_1_1- inner node disablement - // 55 odr_tnr_fp_yuvn_1_4- inner node disablement - // 56 tnr_scaler_fp_1_1- inner node disablement - // 57 image_upscaler_1_1- inner node disablement - // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 59 ifd_segmap_cas_1_4- inner node disablement - // 60 smurf_cas_1_0- inner node disablement - // 61 cas_1_1- inner node disablement - // 62 odr_ofs_mp_1_4- inner node disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF00C00; - disabledRunKernelsBitmap[1] = 0x1; + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 image_upscaler_1_1- inner node disablement + // 28 cas_1_1- inner node disablement + // 29 odr_ofs_mp_1_4- inner node disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFE3FFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -11530,76 +10707,46 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions // 9 lsc_1_2- inner node disablement // 10 gd_2_2- inner node disablement // 11 wb_1_1- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 gmv_statistics_1_1- inner node disablement - // 46 odr_gmv_feature_1_4- inner node disablement - // 47 odr_gmv_match_1_4- inner node disablement - // 48 ifd_segmap_tnr_bc_1_4- inner node disablement - // 49 smurf_tnr_bc_1_0- inner node disablement - // 50 tnr7_bc_1_2- inner node disablement - // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 52 ifd_segmap_tnr_blend_1_4- inner node disablement - // 53 smurf_tnr_blend_1_0- inner node disablement - // 54 tnr7_blend_1_1- inner node disablement - // 55 odr_tnr_fp_yuvn_1_4- inner node disablement - // 56 tnr_scaler_fp_1_1- inner node disablement - // 57 image_upscaler_1_1- inner node disablement - // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 59 ifd_segmap_cas_1_4- inner node disablement - // 60 smurf_cas_1_0- inner node disablement - // 61 cas_1_1- inner node disablement - // 62 odr_ofs_mp_1_4- inner node disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x1; + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 image_upscaler_1_1- inner node disablement + // 28 cas_1_1- inner node disablement + // 29 odr_ofs_mp_1_4- inner node disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FDBD581F6811 + // RBM - 0x00000000000000000064019D581F6811 bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF23E9F - bitmaps.teb[0] = 0xFFF23E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x64019D; + // DEB - 0x000000000000E1200000F9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030003E9F + bitmaps.teb[0] = 0x30003E9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -11607,10 +10754,10 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptions } -void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 65; ++i) + for (uint8_t i = 0; i < 37; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -11660,8 +10807,7 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOpti bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFF00C00; - disabledRunKernelsBitmap[1] |= 0x1; + disabledRunKernelsBitmap[0] |= 0xFE3FFC00; break; } @@ -11681,8 +10827,7 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOpti bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xFA00000000000000; - disabledRunKernelsBitmap[1] |= 0x1; + disabledRunKernelsBitmap[0] |= 0xF8000000; break; } @@ -11692,30 +10837,16 @@ void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOpti SetDisabledKernels(disabledRunKernelsBitmap); } -void IsysDolOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void IsysDolOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - -void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 37; ++i) + for (uint8_t i = 0; i < 41; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -11723,165 +10854,175 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000006400BD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000300000BF - bitmaps.teb[0] = 0x300000BF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // TEB - 0x000000003032009F + bitmaps.teb[0] = 0x3032009F; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1010003EC0; + disabledRunKernelsBitmap[0] = 0x1F01C000D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000004401BD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x4401BD; + // DEB - 0x000000000000C120000FF9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020041EBF - bitmaps.teb[0] = 0x20041EBF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // TEB - 0x0000000020323E9F + bitmaps.teb[0] = 0x20323E9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 33 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000; + // 29 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000004400BD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000200000BF - bitmaps.teb[0] = 0x200000BF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // TEB - 0x000000002032009F + bitmaps.teb[0] = 0x2032009F; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 33 odr_ofs_mp_1_4- inner node disablement + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_ofs_mp_1_4- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1210003EC0; + disabledRunKernelsBitmap[0] = 0x1F21C000D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000002401BD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x2401BD; + // DEB - 0x0000000000002120000FF9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010041EBF - bitmaps.teb[0] = 0x10041EBF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // TEB - 0x0000000010323E9F + bitmaps.teb[0] = 0x10323E9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000; + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000002400BD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000100000BF - bitmaps.teb[0] = 0x100000BF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // TEB - 0x000000001032009F + bitmaps.teb[0] = 0x1032009F; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1C10003EC0; + disabledRunKernelsBitmap[0] = 0x1FC1C000D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 image_upscaler_1_1- inner node disablement - // 32 cas_1_1- inner node disablement - // 33 odr_ofs_mp_1_4- inner node disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFEFFF0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 image_upscaler_1_1- inner node disablement + // 28 cas_1_1- inner node disablement + // 29 odr_ofs_mp_1_4- inner node disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + // 37 ifd_gmv_1_4- inner node disablement + // 38 gmv_statistics_1_1- inner node disablement + // 39 odr_gmv_feature_1_4- inner node disablement + // 40 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0FE3FFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -11893,57 +11034,61 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 image_upscaler_1_1- inner node disablement - // 32 cas_1_1- inner node disablement - // 33 odr_ofs_mp_1_4- inner node disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 image_upscaler_1_1- inner node disablement + // 28 cas_1_1- inner node disablement + // 29 odr_ofs_mp_1_4- inner node disablement + // 30 b2i_ds_output_1_1- inner node disablement + // 31 odr_ofs_dp_1_4- inner node disablement + // 32 odr_awb_std_1_4- inner node disablement + // 33 odr_awb_sat_1_4- inner node disablement + // 34 aestatistics_2_1- inner node disablement + // 35 odr_ae_1_4- inner node disablement // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFF; + // 37 ifd_gmv_1_4- inner node disablement + // 38 gmv_statistics_1_1- inner node disablement + // 39 odr_gmv_feature_1_4- inner node disablement + // 40 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000006401BD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x6401BD; + // DEB - 0x000000000000E120000FF9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030041EBF - bitmaps.teb[0] = 0x30041EBF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // TEB - 0x0000000030323E9F + bitmaps.teb[0] = 0x30323E9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -11951,17 +11096,16 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags } -void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 37; ++i) + for (uint8_t i = 0; i < 41; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -12005,7 +11149,7 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFEFFF0000; + disabledRunKernelsBitmap[0] |= 0x1E0FE3FFC00; break; } @@ -12025,7 +11169,7 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF80000000; + disabledRunKernelsBitmap[0] |= 0xF8000000; break; } @@ -12035,17 +11179,16 @@ void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 41; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -12053,169 +11196,183 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000303200BF - bitmaps.teb[0] = 0x303200BF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000067FC9D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0009F + bitmaps.teb[0] = 0x3FC0009F; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1010003EC0; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3E1C000D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020361EBF - bitmaps.teb[0] = 0x20361EBF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000047FD9D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x47FD9D; + // DEB - 0x000000000000C13E79F0F9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC03E9F + bitmaps.teb[0] = 0x2FC03E9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 33 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000; + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000203200BF - bitmaps.teb[0] = 0x203200BF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000047FC9D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0009F + bitmaps.teb[0] = 0x2FC0009F; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 33 odr_ofs_mp_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1210003EC0; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2003E1C000D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010361EBF - bitmaps.teb[0] = 0x10361EBF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000027FD9D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x27FD9D; + // DEB - 0x000000000000213E79F0F9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC03E9F + bitmaps.teb[0] = 0x1FC03E9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000; + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000103200BF - bitmaps.teb[0] = 0x103200BF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000027FC9D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0009F + bitmaps.teb[0] = 0x1FC0009F; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1C10003EC0; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC003E1C000D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 image_upscaler_1_1- inner node disablement - // 32 cas_1_1- inner node disablement - // 33 odr_ofs_mp_1_4- inner node disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement - // 37 ifd_gmv_1_4- inner node disablement - // 38 gmv_statistics_1_1- inner node disablement - // 39 odr_gmv_feature_1_4- inner node disablement - // 40 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1EFEFFF0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 tnr7_spatial_1_1- inner node disablement + // 28 tnr_scaler_lb_1_1- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 40 tnr7_blend_1_1- inner node disablement + // 41 odr_tnr_fp_yuvn_1_4- inner node disablement + // 42 tnr_scaler_fp_1_1- inner node disablement + // 43 image_upscaler_1_1- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFC1E3FFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -12227,61 +11384,69 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 image_upscaler_1_1- inner node disablement - // 32 cas_1_1- inner node disablement - // 33 odr_ofs_mp_1_4- inner node disablement - // 34 b2i_ds_output_1_1- inner node disablement - // 35 odr_ofs_dp_1_4- inner node disablement - // 36 odr_af_std_1_4- inner node disablement - // 37 ifd_gmv_1_4- inner node disablement - // 38 gmv_statistics_1_1- inner node disablement - // 39 odr_gmv_feature_1_4- inner node disablement - // 40 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 tnr7_spatial_1_1- inner node disablement + // 28 tnr_scaler_lb_1_1- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 40 tnr7_blend_1_1- inner node disablement + // 41 odr_tnr_fp_yuvn_1_4- inner node disablement + // 42 tnr_scaler_fp_1_1- inner node disablement + // 43 image_upscaler_1_1- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030361EBF - bitmaps.teb[0] = 0x30361EBF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000067FD9D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x67FD9D; + // DEB - 0x000000000000E13E79F0F9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC03E9F + bitmaps.teb[0] = 0x3FC03E9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -12289,17 +11454,16 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 41; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -12343,7 +11507,7 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1EFEFFF0000; + disabledRunKernelsBitmap[0] |= 0x1FFFC1E3FFC00; break; } @@ -12363,7 +11527,7 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF80000000; + disabledRunKernelsBitmap[0] |= 0xF80000000000; break; } @@ -12373,17 +11537,16 @@ void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) + for (uint8_t i = 0; i < 53; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -12391,177 +11554,187 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0x79F0F9CE; + // RBM - 0x00000000000000000067FCBD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC000BF - bitmaps.teb[0] = 0x3FC000BF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement + // TEB - 0x000000003FF2009F + bitmaps.teb[0] = 0x3FF2009F; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement // 33 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x210003EC0; + disabledRunKernelsBitmap[0] = 0x3E1C000D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0x79F0F9CE; + // RBM - 0x00000000000000000047FDBD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C13E79FFF9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC41EBF - bitmaps.teb[0] = 0x2FC41EBF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // TEB - 0x000000002FF23E9F + bitmaps.teb[0] = 0x2FF23E9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000000; + // 49 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0x79F0F9CE; + // RBM - 0x00000000000000000047FCBD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC000BF - bitmaps.teb[0] = 0x2FC000BF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // TEB - 0x000000002FF2009F + bitmaps.teb[0] = 0x2FF2009F; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement // 33 odr_af_std_1_4- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200210003EC0; + // 49 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20003E1C000D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0x79F0F9CE; + // RBM - 0x00000000000000000027FDBD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x000000000000213E79FFF9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC41EBF - bitmaps.teb[0] = 0x1FC41EBF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // TEB - 0x000000001FF23E9F + bitmaps.teb[0] = 0x1FF23E9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000000; + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0x79F0F9CE; + // RBM - 0x00000000000000000027FCBD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC000BF - bitmaps.teb[0] = 0x1FC000BF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // TEB - 0x000000001FF2009F + bitmaps.teb[0] = 0x1FF2009F; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement // 33 odr_af_std_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00210003EC0; + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0003E1C000D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 tnr7_spatial_1_1- inner node disablement - // 32 tnr_scaler_lb_1_1- inner node disablement - // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 36 tnr7_ims_1_2- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 40 tnr7_blend_1_1- inner node disablement - // 41 odr_tnr_fp_yuvn_1_4- inner node disablement - // 42 tnr_scaler_fp_1_1- inner node disablement - // 43 image_upscaler_1_1- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFDEFFF0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 tnr7_spatial_1_1- inner node disablement + // 28 tnr_scaler_lb_1_1- inner node disablement + // 34 ifd_gmv_1_4- inner node disablement + // 35 gmv_statistics_1_1- inner node disablement + // 36 odr_gmv_feature_1_4- inner node disablement + // 37 odr_gmv_match_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 40 tnr7_ims_1_2- inner node disablement + // 41 tnr7_bc_1_2- inner node disablement + // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 44 tnr7_blend_1_1- inner node disablement + // 45 odr_tnr_fp_yuvn_1_4- inner node disablement + // 46 tnr_scaler_fp_1_1- inner node disablement + // 47 image_upscaler_1_1- inner node disablement + // 48 cas_1_1- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFC1E3FFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -12573,69 +11746,73 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 tnr7_spatial_1_1- inner node disablement - // 32 tnr_scaler_lb_1_1- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 bnlm_3_4- inner node disablement + // 13 bxt_demosaic- inner node disablement + // 14 vcsc_2_0_b- inner node disablement + // 15 gltm_2_0- inner node disablement + // 16 xnr_5_4- inner node disablement + // 17 vcr_3_1- inner node disablement + // 18 glim_2_0- inner node disablement + // 19 acm_1_2- inner node disablement + // 20 gammatm_v4- inner node disablement + // 21 csc_1_1- inner node disablement + // 22 rgbs_grid_1_1- inner node disablement + // 23 ccm_3a_2_0- inner node disablement + // 24 fr_grid_1_0- inner node disablement + // 25 b2i_ds_1_1- inner node disablement + // 26 lbff_crop_espa_1_4- inner node disablement + // 27 tnr7_spatial_1_1- inner node disablement + // 28 tnr_scaler_lb_1_1- inner node disablement + // 29 odr_awb_std_1_4- inner node disablement + // 30 odr_awb_sat_1_4- inner node disablement + // 31 aestatistics_2_1- inner node disablement + // 32 odr_ae_1_4- inner node disablement // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 36 tnr7_ims_1_2- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 40 tnr7_blend_1_1- inner node disablement - // 41 odr_tnr_fp_yuvn_1_4- inner node disablement - // 42 tnr_scaler_fp_1_1- inner node disablement - // 43 image_upscaler_1_1- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; + // 34 ifd_gmv_1_4- inner node disablement + // 35 gmv_statistics_1_1- inner node disablement + // 36 odr_gmv_feature_1_4- inner node disablement + // 37 odr_gmv_match_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 40 tnr7_ims_1_2- inner node disablement + // 41 tnr7_bc_1_2- inner node disablement + // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 44 tnr7_blend_1_1- inner node disablement + // 45 odr_tnr_fp_yuvn_1_4- inner node disablement + // 46 tnr_scaler_fp_1_1- inner node disablement + // 47 image_upscaler_1_1- inner node disablement + // 48 cas_1_1- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0x79F0F9CE; + // RBM - 0x00000000000000000067FDBD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x67FDBD; + // DEB - 0x000000000000E13E79FFF9CE8DDBFDF1 + bitmaps.deb[0] = 0x8DDBFDF1; + bitmaps.deb[1] = 0x79FFF9CE; bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC41EBF - bitmaps.teb[0] = 0x3FC41EBF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // TEB - 0x000000003FF23E9F + bitmaps.teb[0] = 0x3FF23E9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -12643,17 +11820,16 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) + for (uint8_t i = 0; i < 53; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -12697,7 +11873,7 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFDEFFF0000; + disabledRunKernelsBitmap[0] |= 0x1FFFFC1E3FFC00; break; } @@ -12717,7 +11893,7 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF80000000000; + disabledRunKernelsBitmap[0] |= 0xF800000000000; break; } @@ -12727,17 +11903,16 @@ void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 53; ++i) + for (uint8_t i = 0; i < 45; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -12745,181 +11920,184 @@ void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF200BF - bitmaps.teb[0] = 0x3FF200BF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000064009D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F000009F + bitmaps.teb[0] = 0xF000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x210003EC0; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF0D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF61EBF - bitmaps.teb[0] = 0x2FF61EBF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000044019D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x44019D; + // DEB - 0x000000000000C1E00000FFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0003E9F + bitmaps.teb[0] = 0xE0003E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 49 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000000000000; + // 42 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF200BF - bitmaps.teb[0] = 0x2FF200BF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000044009D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E000009F + bitmaps.teb[0] = 0xE000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 49 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000210003EC0; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 42 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000FF0D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF61EBF - bitmaps.teb[0] = 0x1FF61EBF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000024019D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x24019D; + // DEB - 0x00000000000021E00000FFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0003E9F + bitmaps.teb[0] = 0xD0003E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000000000000; + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D8001FB - bitmaps.deb[0] = 0x8D8001FB; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF200BF - bitmaps.teb[0] = 0x1FF200BF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000024009D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D000009F + bitmaps.teb[0] = 0xD000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000210003EC0; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000FF0D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 tnr7_spatial_1_1- inner node disablement - // 32 tnr_scaler_lb_1_1- inner node disablement - // 34 ifd_gmv_1_4- inner node disablement - // 35 gmv_statistics_1_1- inner node disablement - // 36 odr_gmv_feature_1_4- inner node disablement - // 37 odr_gmv_match_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 40 tnr7_ims_1_2- inner node disablement - // 41 tnr7_bc_1_2- inner node disablement - // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 44 tnr7_blend_1_1- inner node disablement - // 45 odr_tnr_fp_yuvn_1_4- inner node disablement - // 46 tnr_scaler_fp_1_1- inner node disablement - // 47 image_upscaler_1_1- inner node disablement - // 48 cas_1_1- inner node disablement - // 49 odr_ofs_mp_1_4- inner node disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFDEFFF0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 ifd_segmap_cas_1_4- inner node disablement + // 40 smurf_cas_1_0- inner node disablement + // 41 cas_1_1- inner node disablement + // 42 odr_ofs_mp_1_4- inner node disablement + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFF00C00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -12931,73 +12109,66 @@ void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 xnr_5_4- inner node disablement - // 23 vcr_3_1- inner node disablement - // 24 glim_2_0- inner node disablement - // 25 acm_1_2- inner node disablement - // 26 gammatm_v4- inner node disablement - // 27 csc_1_1- inner node disablement - // 28 fr_grid_1_0- inner node disablement - // 29 b2i_ds_1_1- inner node disablement - // 30 lbff_crop_espa_1_4- inner node disablement - // 31 tnr7_spatial_1_1- inner node disablement - // 32 tnr_scaler_lb_1_1- inner node disablement - // 33 odr_af_std_1_4- inner node disablement - // 34 ifd_gmv_1_4- inner node disablement - // 35 gmv_statistics_1_1- inner node disablement - // 36 odr_gmv_feature_1_4- inner node disablement - // 37 odr_gmv_match_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 40 tnr7_ims_1_2- inner node disablement - // 41 tnr7_bc_1_2- inner node disablement - // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 44 tnr7_blend_1_1- inner node disablement - // 45 odr_tnr_fp_yuvn_1_4- inner node disablement - // 46 tnr_scaler_fp_1_1- inner node disablement - // 47 image_upscaler_1_1- inner node disablement - // 48 cas_1_1- inner node disablement - // 49 odr_ofs_mp_1_4- inner node disablement - // 50 b2i_ds_output_1_1- inner node disablement - // 51 odr_ofs_dp_1_4- inner node disablement - // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 ifd_segmap_cas_1_4- inner node disablement + // 40 smurf_cas_1_0- inner node disablement + // 41 cas_1_1- inner node disablement + // 42 odr_ofs_mp_1_4- inner node disablement + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D9FF1FB - bitmaps.deb[0] = 0x8D9FF1FB; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF61EBF - bitmaps.teb[0] = 0x3FF61EBF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000064019D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x64019D; + // DEB - 0x000000000000E1E00000FFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0003E9F + bitmaps.teb[0] = 0xF0003E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -13005,119 +12176,16 @@ void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 53; ++i) + for (uint8_t i = 0; i < 45; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFDEFFF0000; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF800000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} - -void LbffDolSmoothOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 8; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // RBM - 0x0000000000000000000000025001A011 - bitmaps.rbm[0] = 0x5001A011; - bitmaps.rbm[1] = 0x2; - // DEB - 0x0000000000000000000000018C000131 - bitmaps.deb[0] = 0x8C000131; - bitmaps.deb[1] = 0x1; - // TEB - 0x0000000000010017 - bitmaps.teb[0] = 0x10017; - // REB - 0x00000000000000000000000000160787 - bitmaps.reb[0] = 0x160787; - // No inner nodes - (void)nodeInnerOptions; -} - -void LbffDolSmoothOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 8; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -13161,7 +12229,7 @@ void LbffDolSmoothOuterNode::configVanishStatus(VanishOption vanishStatus) bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xF0; + disabledRunKernelsBitmap[0] |= 0x1FFFFFF00C00; break; } @@ -13181,6 +12249,7 @@ void LbffDolSmoothOuterNode::configVanishStatus(VanishOption vanishStatus) bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x1FC000000000; break; } @@ -13190,17 +12259,16 @@ void LbffDolSmoothOuterNode::configVanishStatus(VanishOption vanishStatus) SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 38; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -13208,165 +12276,188 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000300000FF - bitmaps.teb[0] = 0x300000FF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x0000000000000000006400BD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F032009F + bitmaps.teb[0] = 0xF032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2020007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF0D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020041EFF - bitmaps.teb[0] = 0x20041EFF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x0000000000000000004401BD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x4401BD; + // DEB - 0x000000000000C1E0000FFFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0323E9F + bitmaps.teb[0] = 0xE0323E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 34 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000; + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000200000FF - bitmaps.teb[0] = 0x200000FF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x0000000000000000004400BD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E032009F + bitmaps.teb[0] = 0xE032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_ofs_mp_1_4- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2420007D80; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000024009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010041EFF - bitmaps.teb[0] = 0x10041EFF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000FF0D0; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x0000000000000000002401BD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x2401BD; + // DEB - 0x00000000000021E0000FFFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0323E9F + bitmaps.teb[0] = 0xD0323E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000; + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000100000FF - bitmaps.teb[0] = 0x100000FF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x0000000000000000002400BD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D032009F + bitmaps.teb[0] = 0xD032009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F787E7 + bitmaps.reb[0] = 0x16F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3820007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000FF0D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 image_upscaler_1_1- inner node disablement - // 33 cas_1_1- inner node disablement - // 34 odr_ofs_mp_1_4- inner node disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FDFFE0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + // 43 ifd_segmap_cas_1_4- inner node disablement + // 44 smurf_cas_1_0- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFF00C00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -13378,58 +12469,70 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 image_upscaler_1_1- inner node disablement - // 33 cas_1_1- inner node disablement - // 34 odr_ofs_mp_1_4- inner node disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + // 43 ifd_segmap_cas_1_4- inner node disablement + // 44 smurf_cas_1_0- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030041EFF - bitmaps.teb[0] = 0x30041EFF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x0000000000000000006401BD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x6401BD; + // DEB - 0x000000000000E1E0000FFFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0323E9F + bitmaps.teb[0] = 0xF0323E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -13437,17 +12540,16 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags } -void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 38; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -13491,7 +12593,7 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FDFFE0000; + disabledRunKernelsBitmap[0] |= 0x1FFFFFFF00C00; break; } @@ -13511,7 +12613,7 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F00000000; + disabledRunKernelsBitmap[0] |= 0x1F88000000000; break; } @@ -13521,17 +12623,16 @@ void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption van SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 42; ++i) + for (uint8_t i = 0; i < 61; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -13539,169 +12640,200 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000303200FF - bitmaps.teb[0] = 0x303200FF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000067FC9D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC0009F + bitmaps.teb[0] = 0xFFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2020007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF0D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020361EFF - bitmaps.teb[0] = 0x20361EFF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000047FD9D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x47FD9D; + // DEB - 0x000000000000C1FFFFF0FFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC03E9F + bitmaps.teb[0] = 0xEFC03E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 34 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000; + // 58 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000203200FF - bitmaps.teb[0] = 0x203200FF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000047FC9D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC0009F + bitmaps.teb[0] = 0xEFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_ofs_mp_1_4- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2420007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 58 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000000FF0D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010361EFF - bitmaps.teb[0] = 0x10361EFF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000027FD9D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x27FD9D; + // DEB - 0x00000000000021FFFFF0FFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC03E9F + bitmaps.teb[0] = 0xDFC03E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000; + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000103200FF - bitmaps.teb[0] = 0x103200FF; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000027FC9D58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC0009F + bitmaps.teb[0] = 0xDFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3820007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000000FF0D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 image_upscaler_1_1- inner node disablement - // 33 cas_1_1- inner node disablement - // 34 odr_ofs_mp_1_4- inner node disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - // 38 ifd_gmv_1_4- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3DFDFFE0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 ifd_segmap_tnr_bc_1_4- inner node disablement + // 45 smurf_tnr_bc_1_0- inner node disablement + // 46 tnr7_bc_1_2- inner node disablement + // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 48 ifd_segmap_tnr_blend_1_4- inner node disablement + // 49 smurf_tnr_blend_1_0- inner node disablement + // 50 tnr7_blend_1_1- inner node disablement + // 51 odr_tnr_fp_yuvn_1_4- inner node disablement + // 52 tnr_scaler_fp_1_1- inner node disablement + // 53 image_upscaler_1_1- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 55 ifd_segmap_cas_1_4- inner node disablement + // 56 smurf_cas_1_0- inner node disablement + // 57 cas_1_1- inner node disablement + // 58 odr_ofs_mp_1_4- inner node disablement + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF00C00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -13713,62 +12845,82 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 image_upscaler_1_1- inner node disablement - // 33 cas_1_1- inner node disablement - // 34 odr_ofs_mp_1_4- inner node disablement - // 35 b2i_ds_output_1_1- inner node disablement - // 36 odr_ofs_dp_1_4- inner node disablement - // 37 odr_af_std_1_4- inner node disablement - // 38 ifd_gmv_1_4- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 ifd_segmap_tnr_bc_1_4- inner node disablement + // 45 smurf_tnr_bc_1_0- inner node disablement + // 46 tnr7_bc_1_2- inner node disablement + // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 48 ifd_segmap_tnr_blend_1_4- inner node disablement + // 49 smurf_tnr_blend_1_0- inner node disablement + // 50 tnr7_blend_1_1- inner node disablement + // 51 odr_tnr_fp_yuvn_1_4- inner node disablement + // 52 tnr_scaler_fp_1_1- inner node disablement + // 53 image_upscaler_1_1- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 55 ifd_segmap_cas_1_4- inner node disablement + // 56 smurf_cas_1_0- inner node disablement + // 57 cas_1_1- inner node disablement + // 58 odr_ofs_mp_1_4- inner node disablement + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030361EFF - bitmaps.teb[0] = 0x30361EFF; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000067FD9D581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x67FD9D; + // DEB - 0x000000000000E1FFFFF0FFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC03E9F + bitmaps.teb[0] = 0xFFC03E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -13776,17 +12928,16 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 42; ++i) + for (uint8_t i = 0; i < 61; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -13830,7 +12981,7 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3DFDFFE0000; + disabledRunKernelsBitmap[0] |= 0x1FFFFFFFFFF00C00; break; } @@ -13850,7 +13001,7 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F00000000; + disabledRunKernelsBitmap[0] |= 0x1FA0000000000000; break; } @@ -13860,17 +13011,16 @@ void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 65; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -13878,177 +13028,207 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC000FF - bitmaps.teb[0] = 0x3FC000FF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000067FCBD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x420007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF0D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC41EFF - bitmaps.teb[0] = 0x2FC41EFF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000047FDBD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF23E9F + bitmaps.teb[0] = 0xEFF23E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000; + // 62 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC000FF - bitmaps.teb[0] = 0x2FC000FF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000047FCBD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2009F + bitmaps.teb[0] = 0xEFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400420007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 62 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000000000FF0D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC41EFF - bitmaps.teb[0] = 0x1FC41EFF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000027FDBD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x00000000000021FFFFFFFFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF23E9F + bitmaps.teb[0] = 0xDFF23E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000; + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000000000; + disabledRunKernelsBitmap[1] = 0x1; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC000FF - bitmaps.teb[0] = 0x1FC000FF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000027FCBD58016811 + bitmaps.rbm[0] = 0x58016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF2009F + bitmaps.teb[0] = 0xDFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F787E7 + bitmaps.reb[0] = 0xF6F787E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800420007D80; + // 4 pext_1_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000000FF0D0; + disabledRunKernelsBitmap[1] = 0x1; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180081E6811 + bitmaps.rbm[0] = 0x81E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFDF1 + bitmaps.deb[0] = 0x1DBFDF1; + // TEB - 0x0000000000003E97 + bitmaps.teb[0] = 0x3E97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 tnr7_spatial_1_1- inner node disablement - // 33 tnr_scaler_lb_1_1- inner node disablement - // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement - // 38 tnr7_bc_1_2- inner node disablement - // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFBDFFE0000; + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 gmv_statistics_1_1- inner node disablement + // 46 odr_gmv_feature_1_4- inner node disablement + // 47 odr_gmv_match_1_4- inner node disablement + // 48 ifd_segmap_tnr_bc_1_4- inner node disablement + // 49 smurf_tnr_bc_1_0- inner node disablement + // 50 tnr7_bc_1_2- inner node disablement + // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 52 ifd_segmap_tnr_blend_1_4- inner node disablement + // 53 smurf_tnr_blend_1_0- inner node disablement + // 54 tnr7_blend_1_1- inner node disablement + // 55 odr_tnr_fp_yuvn_1_4- inner node disablement + // 56 tnr_scaler_fp_1_1- inner node disablement + // 57 image_upscaler_1_1- inner node disablement + // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 59 ifd_segmap_cas_1_4- inner node disablement + // 60 smurf_cas_1_0- inner node disablement + // 61 cas_1_1- inner node disablement + // 62 odr_ofs_mp_1_4- inner node disablement + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF00C00; + disabledRunKernelsBitmap[1] = 0x1; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -14060,70 +13240,87 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 tnr7_spatial_1_1- inner node disablement - // 33 tnr_scaler_lb_1_1- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement - // 38 tnr7_bc_1_2- inner node disablement - // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 pext_1_0- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 pafstatistics_1_2- inner node disablement + // 7 odr_pdaf_1_4- inner node disablement + // 8 ifd_lsc_1_4- inner node disablement + // 9 lsc_1_2- inner node disablement + // 10 gd_2_2- inner node disablement + // 11 wb_1_1- inner node disablement + // 12 rgbs_grid_1_1- inner node disablement + // 13 ccm_3a_2_0- inner node disablement + // 14 fr_grid_1_0- inner node disablement + // 15 odr_awb_std_1_4- inner node disablement + // 16 odr_awb_sat_1_4- inner node disablement + // 17 aestatistics_2_1- inner node disablement + // 18 odr_ae_1_4- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 gmv_statistics_1_1- inner node disablement + // 46 odr_gmv_feature_1_4- inner node disablement + // 47 odr_gmv_match_1_4- inner node disablement + // 48 ifd_segmap_tnr_bc_1_4- inner node disablement + // 49 smurf_tnr_bc_1_0- inner node disablement + // 50 tnr7_bc_1_2- inner node disablement + // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 52 ifd_segmap_tnr_blend_1_4- inner node disablement + // 53 smurf_tnr_blend_1_0- inner node disablement + // 54 tnr7_blend_1_1- inner node disablement + // 55 odr_tnr_fp_yuvn_1_4- inner node disablement + // 56 tnr_scaler_fp_1_1- inner node disablement + // 57 image_upscaler_1_1- inner node disablement + // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 59 ifd_segmap_cas_1_4- inner node disablement + // 60 smurf_cas_1_0- inner node disablement + // 61 cas_1_1- inner node disablement + // 62 odr_ofs_mp_1_4- inner node disablement + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x1; } else // default inner node { - // RBM - 0x00000000000000000067FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC41EFF - bitmaps.teb[0] = 0x3FC41EFF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000067FDBD581F6811 + bitmaps.rbm[0] = 0x581F6811; + bitmaps.rbm[1] = 0x67FDBD; + // DEB - 0x000000000000E1FFFFFFFFFEEDDBFDF1 + bitmaps.deb[0] = 0xEDDBFDF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF23E9F + bitmaps.teb[0] = 0xFFF23E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -14131,17 +13328,16 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 65; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -14185,7 +13381,8 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFBDFFE0000; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFF00C00; + disabledRunKernelsBitmap[1] |= 0x1; break; } @@ -14205,7 +13402,8 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F00000000000; + disabledRunKernelsBitmap[0] |= 0xFA00000000000000; + disabledRunKernelsBitmap[1] |= 0x1; break; } @@ -14215,17 +13413,30 @@ void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void IsysDolOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void IsysDolOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 54; ++i) + for (uint8_t i = 0; i < 37; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -14233,130 +13444,130 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016816 + // RBM - 0x00000000000000000064009D50016816 bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF200FF - bitmaps.teb[0] = 0x3FF200FF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000300000BF + bitmaps.teb[0] = 0x300000BF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x420007D80; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1010003EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD52536E16 + // RBM - 0x00000000000000000044009D52536E16 bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF61EFF - bitmaps.teb[0] = 0x2FF61EFF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020041EBF + bitmaps.teb[0] = 0x20041EBF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 50 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000000000; + // 33 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016816 + // RBM - 0x00000000000000000044009D50016816 bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF200FF - bitmaps.teb[0] = 0x2FF200FF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000200000BF + bitmaps.teb[0] = 0x200000BF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000420007D80; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_ofs_mp_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1210003EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD52536E16 + // RBM - 0x00000000000000000024009D52536E16 bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF61EFF - bitmaps.teb[0] = 0x1FF61EFF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010041EBF + bitmaps.teb[0] = 0x10041EBF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000000000; + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016816 + // RBM - 0x00000000000000000024009D50016816 bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D8001FF - bitmaps.deb[0] = 0x8D8001FF; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF200FF - bitmaps.teb[0] = 0x1FF200FF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000100000BF + bitmaps.teb[0] = 0x100000BF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000420007D80; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1C10003EC0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -14364,50 +13575,34 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // RBM - 0x00000000000000000000008002526E16 bitmaps.rbm[0] = 0x2526E16; bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; // REB - 0x00000000000000000000000002007FF7 bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 tnr7_spatial_1_1- inner node disablement - // 33 tnr_scaler_lb_1_1- inner node disablement - // 35 ifd_gmv_1_4- inner node disablement - // 36 gmv_statistics_1_1- inner node disablement - // 37 odr_gmv_feature_1_4- inner node disablement - // 38 odr_gmv_match_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 tnr7_bc_1_2- inner node disablement - // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 45 tnr7_blend_1_1- inner node disablement - // 46 odr_tnr_fp_yuvn_1_4- inner node disablement - // 47 tnr_scaler_fp_1_1- inner node disablement - // 48 image_upscaler_1_1- inner node disablement - // 49 cas_1_1- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFBDFFE0000; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 image_upscaler_1_1- inner node disablement + // 32 cas_1_1- inner node disablement + // 33 odr_ofs_mp_1_4- inner node disablement + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFEFFF0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -14420,73 +13615,56 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 xnr_5_4- inner node disablement - // 24 vcr_3_1- inner node disablement - // 25 glim_2_0- inner node disablement - // 26 acm_1_2- inner node disablement - // 27 gammatm_v4- inner node disablement - // 28 csc_1_1- inner node disablement - // 29 fr_grid_1_0- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 tnr7_spatial_1_1- inner node disablement - // 33 tnr_scaler_lb_1_1- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_gmv_1_4- inner node disablement - // 36 gmv_statistics_1_1- inner node disablement - // 37 odr_gmv_feature_1_4- inner node disablement - // 38 odr_gmv_match_1_4- inner node disablement - // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 41 tnr7_ims_1_2- inner node disablement - // 42 tnr7_bc_1_2- inner node disablement - // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 45 tnr7_blend_1_1- inner node disablement - // 46 odr_tnr_fp_yuvn_1_4- inner node disablement - // 47 tnr_scaler_fp_1_1- inner node disablement - // 48 image_upscaler_1_1- inner node disablement - // 49 cas_1_1- inner node disablement - // 50 odr_ofs_mp_1_4- inner node disablement - // 51 b2i_ds_output_1_1- inner node disablement - // 52 odr_ofs_dp_1_4- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFF; + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 image_upscaler_1_1- inner node disablement + // 32 cas_1_1- inner node disablement + // 33 odr_ofs_mp_1_4- inner node disablement + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FCBD52536E16 + // RBM - 0x00000000000000000064009D52536E16 bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D9FF1FF - bitmaps.deb[0] = 0x8D9FF1FF; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF61EFF - bitmaps.teb[0] = 0x3FF61EFF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030041EBF + bitmaps.teb[0] = 0x30041EBF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; } @@ -14494,17 +13672,17 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 54; ++i) + for (uint8_t i = 0; i < 37; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -14548,7 +13726,7 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFBDFFE0000; + disabledRunKernelsBitmap[0] |= 0xFEFFF0000; break; } @@ -14568,7 +13746,7 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F000000000000; + disabledRunKernelsBitmap[0] |= 0xF80000000; break; } @@ -14578,431 +13756,189 @@ void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 36; ++i) + for (uint8_t i = 0; i < 41; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400DD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400DD; - // DEB - 0x000000000000E1200000F9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000409F - bitmaps.teb[0] = 0x3000409F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE03000390; - } - else if (nodeRelevantInnerOptions == (noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000064009D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030041E9F - bitmaps.teb[0] = 0x30041E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; - } - else if (nodeRelevantInnerOptions == (no3A | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000006400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000009F - bitmaps.teb[0] = 0x3000009F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + // TEB - 0x00000000303200BF + bitmaps.teb[0] = 0x303200BF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE030003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1010003EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400DD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x4400DD; - // DEB - 0x000000000000C1200000F9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000004400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020045E9F - bitmaps.teb[0] = 0x20045E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + // TEB - 0x0000000020361EBF + bitmaps.teb[0] = 0x20361EBF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 30 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000000; + // 33 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400DD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400DD; - // DEB - 0x000000000000C1200000F9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000409F - bitmaps.teb[0] = 0x2000409F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE43000390; - } - else if (nodeRelevantInnerOptions == (noMp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020041E9F - bitmaps.teb[0] = 0x20041E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000040; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000004400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000009F - bitmaps.teb[0] = 0x2000009F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + // TEB - 0x00000000203200BF + bitmaps.teb[0] = 0x203200BF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE430003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_ofs_mp_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1210003EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400DD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x2400DD; - // DEB - 0x00000000000021200000F9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000002400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010045E9F - bitmaps.teb[0] = 0x10045E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + // TEB - 0x0000000010361EBF + bitmaps.teb[0] = 0x10361EBF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180000000; + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400DD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400DD; - // DEB - 0x00000000000021200000F9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000409F - bitmaps.teb[0] = 0x1000409F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF83000390; - } - else if (nodeRelevantInnerOptions == (noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000024009D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010041E9F - bitmaps.teb[0] = 0x10041E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180000040; - } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000002400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000009F - bitmaps.teb[0] = 0x1000009F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + // TEB - 0x00000000103200BF + bitmaps.teb[0] = 0x103200BF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF830003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1C10003EC0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000004000206071 - bitmaps.rbm[0] = 0x206071; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003871131 - bitmaps.deb[0] = 0x3871131; - // TEB - 0x0000000000045817 - bitmaps.teb[0] = 0x45817; - // REB - 0x0000000000000000000000000300118F - bitmaps.reb[0] = 0x300118F; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFC00; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 image_upscaler_1_1- inner node disablement + // 32 cas_1_1- inner node disablement + // 33 odr_ofs_mp_1_4- inner node disablement + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + // 37 ifd_gmv_1_4- inner node disablement + // 38 gmv_statistics_1_1- inner node disablement + // 39 odr_gmv_feature_1_4- inner node disablement + // 40 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1EFEFFF0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000006011 - bitmaps.rbm[0] = 0x6011; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003800131 - bitmaps.deb[0] = 0x3800131; - // TEB - 0x0000000000004017 - bitmaps.teb[0] = 0x4017; - // REB - 0x00000000000000000000000003000187 - bitmaps.reb[0] = 0x3000187; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFF90; - } - else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000200061 - bitmaps.rbm[0] = 0x200061; - // DEB - 0x00000000000000000000000000071031 - bitmaps.deb[0] = 0x71031; - // TEB - 0x0000000000041817 - bitmaps.teb[0] = 0x41817; - // REB - 0x0000000000000000000000000000100F - bitmaps.reb[0] = 0x100F; - - // Kernels disablement - // 3 dpc_2_2- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFC68; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -15012,56 +13948,61 @@ void LbffRgbIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeI // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgbs_grid_1_1- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 image_upscaler_1_1- inner node disablement + // 32 cas_1_1- inner node disablement + // 33 odr_ofs_mp_1_4- inner node disablement + // 34 b2i_ds_output_1_1- inner node disablement + // 35 odr_ofs_dp_1_4- inner node disablement + // 36 odr_af_std_1_4- inner node disablement + // 37 ifd_gmv_1_4- inner node disablement + // 38 gmv_statistics_1_1- inner node disablement + // 39 odr_gmv_feature_1_4- inner node disablement + // 40 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400DD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x6400DD; - // DEB - 0x000000000000E1200000F9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0xF9CE; + // RBM - 0x0000000000000000006400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xFF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030045E9F - bitmaps.teb[0] = 0x30045E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + // TEB - 0x0000000030361EBF + bitmaps.teb[0] = 0x30361EBF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; } @@ -15069,14 +14010,18 @@ void LbffRgbIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeI } -void LbffRgbIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 36; ++i) + for (uint8_t i = 0; i < 41; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -15119,7 +14064,7 @@ void LbffRgbIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSt bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FCFFF000; + disabledRunKernelsBitmap[0] |= 0x1EFEFFF0000; break; } @@ -15139,7 +14084,7 @@ void LbffRgbIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSt bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F0000000; + disabledRunKernelsBitmap[0] |= 0xF80000000; break; } @@ -15149,20 +14094,17 @@ void LbffRgbIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSt SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 32; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc - nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 - nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -15170,161 +14112,177 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064001D50010009 - bitmaps.rbm[0] = 0x50010009; - bitmaps.rbm[1] = 0x64001D; - // DEB - 0x000000000000E1200000F9CE8C0000F1 - bitmaps.deb[0] = 0x8C0000F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000009F - bitmaps.teb[0] = 0x3000009F; - // REB - 0x00000000000000000000001F10F60667 - bitmaps.reb[0] = 0x10F60667; + // RBM - 0x00000000000000000067FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC000BF + bitmaps.teb[0] = 0x3FC000BF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF80E0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x210003EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044001D501F0009 - bitmaps.rbm[0] = 0x501F0009; - bitmaps.rbm[1] = 0x44001D; - // DEB - 0x000000000000C1200000F9CE8C1BF0F1 - bitmaps.deb[0] = 0x8C1BF0F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020001E9F - bitmaps.teb[0] = 0x20001E9F; - // REB - 0x00000000000000000000001F10F67E67 - bitmaps.reb[0] = 0x10F67E67; + // RBM - 0x00000000000000000047FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC41EBF + bitmaps.teb[0] = 0x2FC41EBF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 24 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000; + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044001D50010009 - bitmaps.rbm[0] = 0x50010009; - bitmaps.rbm[1] = 0x44001D; - // DEB - 0x000000000000C1200000F9CE8C0000F1 - bitmaps.deb[0] = 0x8C0000F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000009F - bitmaps.teb[0] = 0x2000009F; - // REB - 0x00000000000000000000001F10F60667 - bitmaps.reb[0] = 0x10F60667; + // RBM - 0x00000000000000000047FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC000BF + bitmaps.teb[0] = 0x2FC000BF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 24 odr_ofs_mp_1_4- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF90E0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200210003EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024001D501F0009 - bitmaps.rbm[0] = 0x501F0009; - bitmaps.rbm[1] = 0x24001D; - // DEB - 0x00000000000021200000F9CE8C1BF0F1 - bitmaps.deb[0] = 0x8C1BF0F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010001E9F - bitmaps.teb[0] = 0x10001E9F; - // REB - 0x00000000000000000000001F10F67E67 - bitmaps.reb[0] = 0x10F67E67; + // RBM - 0x00000000000000000027FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC41EBF + bitmaps.teb[0] = 0x1FC41EBF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 25 b2i_ds_output_1_1- inner node disablement - // 26 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000; + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024001D50010009 - bitmaps.rbm[0] = 0x50010009; - bitmaps.rbm[1] = 0x24001D; - // DEB - 0x00000000000021200000F9CE8C0000F1 - bitmaps.deb[0] = 0x8C0000F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000009F - bitmaps.teb[0] = 0x1000009F; - // REB - 0x00000000000000000000001F10F60667 - bitmaps.reb[0] = 0x10F60667; + // RBM - 0x00000000000000000027FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC000BF + bitmaps.teb[0] = 0x1FC000BF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 25 b2i_ds_output_1_1- inner node disablement - // 26 odr_ofs_dp_1_4- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFE0E0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00210003EC0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E0009 - bitmaps.rbm[0] = 0x1E0009; - // DEB - 0x000000000000000000000000001BF0F1 - bitmaps.deb[0] = 0x1BF0F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007E67 - bitmaps.reb[0] = 0x7E67; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 5 gd_2_2- inner node disablement - // 6 wb_1_1- inner node disablement - // 7 bnlm_3_4- inner node disablement - // 8 bxt_demosaic- inner node disablement - // 9 vcsc_2_0_b- inner node disablement - // 10 gltm_2_0- inner node disablement - // 11 xnr_5_4- inner node disablement - // 12 vcr_3_1- inner node disablement - // 13 glim_2_0- inner node disablement - // 14 acm_1_2- inner node disablement - // 15 gammatm_v4- inner node disablement - // 16 csc_1_1- inner node disablement - // 20 b2i_ds_1_1- inner node disablement - // 21 lbff_crop_espa_1_4- inner node disablement - // 22 image_upscaler_1_1- inner node disablement - // 23 cas_1_1- inner node disablement - // 24 odr_ofs_mp_1_4- inner node disablement - // 25 b2i_ds_output_1_1- inner node disablement - // 26 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7F1FFE0; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 tnr7_spatial_1_1- inner node disablement + // 32 tnr_scaler_lb_1_1- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 40 tnr7_blend_1_1- inner node disablement + // 41 odr_tnr_fp_yuvn_1_4- inner node disablement + // 42 tnr_scaler_fp_1_1- inner node disablement + // 43 image_upscaler_1_1- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFDEFFF0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -15336,52 +14294,69 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 gd_2_2- inner node disablement - // 6 wb_1_1- inner node disablement - // 7 bnlm_3_4- inner node disablement - // 8 bxt_demosaic- inner node disablement - // 9 vcsc_2_0_b- inner node disablement - // 10 gltm_2_0- inner node disablement - // 11 xnr_5_4- inner node disablement - // 12 vcr_3_1- inner node disablement - // 13 glim_2_0- inner node disablement - // 14 acm_1_2- inner node disablement - // 15 gammatm_v4- inner node disablement - // 16 csc_1_1- inner node disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 b2i_ds_1_1- inner node disablement - // 21 lbff_crop_espa_1_4- inner node disablement - // 22 image_upscaler_1_1- inner node disablement - // 23 cas_1_1- inner node disablement - // 24 odr_ofs_mp_1_4- inner node disablement - // 25 b2i_ds_output_1_1- inner node disablement - // 26 odr_ofs_dp_1_4- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 tnr7_spatial_1_1- inner node disablement + // 32 tnr_scaler_lb_1_1- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 40 tnr7_blend_1_1- inner node disablement + // 41 odr_tnr_fp_yuvn_1_4- inner node disablement + // 42 tnr_scaler_fp_1_1- inner node disablement + // 43 image_upscaler_1_1- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064001D501F0009 - bitmaps.rbm[0] = 0x501F0009; - bitmaps.rbm[1] = 0x64001D; - // DEB - 0x000000000000E1200000F9CE8C1BF0F1 - bitmaps.deb[0] = 0x8C1BF0F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030001E9F - bitmaps.teb[0] = 0x30001E9F; - // REB - 0x00000000000000000000001F10F67E67 - bitmaps.reb[0] = 0x10F67E67; + // RBM - 0x00000000000000000067FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC41EBF + bitmaps.teb[0] = 0x3FC41EBF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -15389,20 +14364,17 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod } -void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 32; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc - nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 - nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -15446,7 +14418,7 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7F1FFE0; + disabledRunKernelsBitmap[0] |= 0x1FFFDEFFF0000; break; } @@ -15466,7 +14438,7 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7C00000; + disabledRunKernelsBitmap[0] |= 0xF80000000000; break; } @@ -15476,443 +14448,201 @@ void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 40; ++i) + for (uint8_t i = 0; i < 53; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400FD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400FD; - // DEB - 0x000000000000E120000FF9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032409F - bitmaps.teb[0] = 0x3032409F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE03000390; - } - else if (nodeRelevantInnerOptions == (noIr)) - { - // HW bitmaps - // RBM - 0x0000000000000000006400BD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030361E9F - bitmaps.teb[0] = 0x30361E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; - } - else if (nodeRelevantInnerOptions == (no3A | noIr)) - { - // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032009F - bitmaps.teb[0] = 0x3032009F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + // RBM - 0x00000000000000000067FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF200BF + bitmaps.teb[0] = 0x3FF200BF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE030003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x210003EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400FD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x4400FD; - // DEB - 0x000000000000C120000FF9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020365E9F - bitmaps.teb[0] = 0x20365E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + // RBM - 0x00000000000000000047FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF61EBF + bitmaps.teb[0] = 0x2FF61EBF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 30 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000000; + // 49 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400FD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400FD; - // DEB - 0x000000000000C120000FF9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032409F - bitmaps.teb[0] = 0x2032409F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE43000390; - } - else if (nodeRelevantInnerOptions == (noMp | noIr)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400BD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020361E9F - bitmaps.teb[0] = 0x20361E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000040; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032009F - bitmaps.teb[0] = 0x2032009F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + // RBM - 0x00000000000000000047FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF200BF + bitmaps.teb[0] = 0x2FF200BF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xE430003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000210003EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400FD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x2400FD; - // DEB - 0x0000000000002120000FF9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010365E9F - bitmaps.teb[0] = 0x10365E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + // RBM - 0x00000000000000000027FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF61EBF + bitmaps.teb[0] = 0x1FF61EBF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180000000; + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400FD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400FD; - // DEB - 0x0000000000002120000FF9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001032409F - bitmaps.teb[0] = 0x1032409F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF83000390; - } - else if (nodeRelevantInnerOptions == (noDp | noIr)) - { - // HW bitmaps - // RBM - 0x0000000000000000002400BD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010361E9F - bitmaps.teb[0] = 0x10361E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180000040; - } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001032009F - bitmaps.teb[0] = 0x1032009F; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + // RBM - 0x00000000000000000027FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF200BF + bitmaps.teb[0] = 0x1FF200BF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF830003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000210003EC0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000004000206071 - bitmaps.rbm[0] = 0x206071; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003871131 - bitmaps.deb[0] = 0x3871131; - // TEB - 0x0000000000045817 - bitmaps.teb[0] = 0x45817; - // REB - 0x0000000000000000000000000300118F - bitmaps.reb[0] = 0x300118F; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFC00; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 tnr7_spatial_1_1- inner node disablement + // 32 tnr_scaler_lb_1_1- inner node disablement + // 34 ifd_gmv_1_4- inner node disablement + // 35 gmv_statistics_1_1- inner node disablement + // 36 odr_gmv_feature_1_4- inner node disablement + // 37 odr_gmv_match_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 40 tnr7_ims_1_2- inner node disablement + // 41 tnr7_bc_1_2- inner node disablement + // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 44 tnr7_blend_1_1- inner node disablement + // 45 odr_tnr_fp_yuvn_1_4- inner node disablement + // 46 tnr_scaler_fp_1_1- inner node disablement + // 47 image_upscaler_1_1- inner node disablement + // 48 cas_1_1- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFDEFFF0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000006011 - bitmaps.rbm[0] = 0x6011; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003800131 - bitmaps.deb[0] = 0x3800131; - // TEB - 0x0000000000004017 - bitmaps.teb[0] = 0x4017; - // REB - 0x00000000000000000000000003000187 - bitmaps.reb[0] = 0x3000187; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFF90; - } - else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000200061 - bitmaps.rbm[0] = 0x200061; - // DEB - 0x00000000000000000000000000071031 - bitmaps.deb[0] = 0x71031; - // TEB - 0x0000000000041817 - bitmaps.teb[0] = 0x41817; - // REB - 0x0000000000000000000000000000100F - bitmaps.reb[0] = 0x100F; - - // Kernels disablement - // 3 dpc_2_2- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFC68; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -15922,60 +14652,73 @@ void LbffRgbIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgbs_grid_1_1- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 image_upscaler_1_1- inner node disablement - // 29 cas_1_1- inner node disablement - // 30 odr_ofs_mp_1_4- inner node disablement - // 31 b2i_ds_output_1_1- inner node disablement - // 32 odr_ofs_dp_1_4- inner node disablement - // 33 aestatistics_2_1- inner node disablement - // 34 odr_ae_1_4- inner node disablement - // 35 odr_af_std_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 tnr7_spatial_1_1- inner node disablement + // 32 tnr_scaler_lb_1_1- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_gmv_1_4- inner node disablement + // 35 gmv_statistics_1_1- inner node disablement + // 36 odr_gmv_feature_1_4- inner node disablement + // 37 odr_gmv_match_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 40 tnr7_ims_1_2- inner node disablement + // 41 tnr7_bc_1_2- inner node disablement + // 42 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 43 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 44 tnr7_blend_1_1- inner node disablement + // 45 odr_tnr_fp_yuvn_1_4- inner node disablement + // 46 tnr_scaler_fp_1_1- inner node disablement + // 47 image_upscaler_1_1- inner node disablement + // 48 cas_1_1- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400FD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x6400FD; - // DEB - 0x000000000000E120000FF9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030365E9F - bitmaps.teb[0] = 0x30365E9F; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + // RBM - 0x00000000000000000067FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF61EBF + bitmaps.teb[0] = 0x3FF61EBF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -15983,14 +14726,18 @@ void LbffRgbIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod } -void LbffRgbIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 40; ++i) + for (uint8_t i = 0; i < 53; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -16033,7 +14780,7 @@ void LbffRgbIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xF1FCFFF000; + disabledRunKernelsBitmap[0] |= 0x1FFFFDEFFF0000; break; } @@ -16053,7 +14800,7 @@ void LbffRgbIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F0000000; + disabledRunKernelsBitmap[0] |= 0xF800000000000; break; } @@ -16063,553 +14810,299 @@ void LbffRgbIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanish SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void IsysDolWithCvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void IsysDolWithCvOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 48; ++i) + for (uint8_t i = 0; i < 45; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCDD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCDD; - // DEB - 0x000000000000E13E79F0F9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0409F - bitmaps.teb[0] = 0x3FC0409F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000064009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F00000BF + bitmaps.teb[0] = 0xF00000BF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1C3000390; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC3EC0; } - else if (nodeRelevantInnerOptions == (noIr)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC41E9F - bitmaps.teb[0] = 0x3FC41E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000044009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0041EBF + bitmaps.teb[0] = 0xE0041EBF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; + // 42 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000000000; } - else if (nodeRelevantInnerOptions == (no3A | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0009F - bitmaps.teb[0] = 0x3FC0009F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000044009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E00000BF + bitmaps.teb[0] = 0xE00000BF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1C30003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 42 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000C3EC0; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCDD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FCDD; - // DEB - 0x000000000000C13E79F0F9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC45E9F - bitmaps.teb[0] = 0x2FC45E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000024009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0041EBF + bitmaps.teb[0] = 0xD0041EBF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x100000000000; + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180000000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCDD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCDD; - // DEB - 0x000000000000C13E79F0F9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0409F - bitmaps.teb[0] = 0x2FC0409F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000024009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D00000BF + bitmaps.teb[0] = 0xD00000BF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1001C3000390; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000C3EC0; } - else if (nodeRelevantInnerOptions == (noMp | noIr)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC41E9F - bitmaps.teb[0] = 0x2FC41E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x100000000040; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 ifd_segmap_cas_1_4- inner node disablement + // 40 smurf_cas_1_0- inner node disablement + // 41 cas_1_1- inner node disablement + // 42 odr_ofs_mp_1_4- inner node disablement + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFF30000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0009F - bitmaps.teb[0] = 0x2FC0009F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1001C30003D0; + // 0 ifd_pipe_1_4- inner node disablement + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 ifd_segmap_cas_1_4- inner node disablement + // 40 smurf_cas_1_0- inner node disablement + // 41 cas_1_1- inner node disablement + // 42 odr_ofs_mp_1_4- inner node disablement + // 43 b2i_ds_output_1_1- inner node disablement + // 44 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFF; } - else if (nodeRelevantInnerOptions == (noDp)) + else // default inner node { - // HW bitmaps - // RBM - 0x00000000000000000027FCDD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FCDD; - // DEB - 0x000000000000213E79F0F9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC45E9F - bitmaps.teb[0] = 0x1FC45E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000064009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0041EBF + bitmaps.teb[0] = 0xF0041EBF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x600000000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FCDD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCDD; - // DEB - 0x000000000000213E79F0F9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0409F - bitmaps.teb[0] = 0x1FC0409F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6001C3000390; - } - else if (nodeRelevantInnerOptions == (noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC41E9F - bitmaps.teb[0] = 0x1FC41E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x600000000040; - } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0009F - bitmaps.teb[0] = 0x1FC0009F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6001C30003D0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000206071 - bitmaps.rbm[0] = 0x206071; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003871131 - bitmaps.deb[0] = 0x3871131; - // TEB - 0x0000000000045817 - bitmaps.teb[0] = 0x45817; - // REB - 0x0000000000000000000000000300118F - bitmaps.reb[0] = 0x300118F; - - // Kernels disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 35 tnr7_ims_1_2- inner node disablement - // 36 tnr7_bc_1_2- inner node disablement - // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 39 tnr7_blend_1_1- inner node disablement - // 40 odr_tnr_fp_yuvn_1_4- inner node disablement - // 41 tnr_scaler_fp_1_1- inner node disablement - // 42 image_upscaler_1_1- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC00; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000006011 - bitmaps.rbm[0] = 0x6011; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003800131 - bitmaps.deb[0] = 0x3800131; - // TEB - 0x0000000000004017 - bitmaps.teb[0] = 0x4017; - // REB - 0x00000000000000000000000003000187 - bitmaps.reb[0] = 0x3000187; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 35 tnr7_ims_1_2- inner node disablement - // 36 tnr7_bc_1_2- inner node disablement - // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 39 tnr7_blend_1_1- inner node disablement - // 40 odr_tnr_fp_yuvn_1_4- inner node disablement - // 41 tnr_scaler_fp_1_1- inner node disablement - // 42 image_upscaler_1_1- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFF90; - } - else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000200061 - bitmaps.rbm[0] = 0x200061; - // DEB - 0x00000000000000000000000000071031 - bitmaps.deb[0] = 0x71031; - // TEB - 0x0000000000041817 - bitmaps.teb[0] = 0x41817; - // REB - 0x0000000000000000000000000000100F - bitmaps.reb[0] = 0x100F; - - // Kernels disablement - // 3 dpc_2_2- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 35 tnr7_ims_1_2- inner node disablement - // 36 tnr7_bc_1_2- inner node disablement - // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 39 tnr7_blend_1_1- inner node disablement - // 40 odr_tnr_fp_yuvn_1_4- inner node disablement - // 41 tnr_scaler_fp_1_1- inner node disablement - // 42 image_upscaler_1_1- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC68; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgbs_grid_1_1- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 35 tnr7_ims_1_2- inner node disablement - // 36 tnr7_bc_1_2- inner node disablement - // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 39 tnr7_blend_1_1- inner node disablement - // 40 odr_tnr_fp_yuvn_1_4- inner node disablement - // 41 tnr_scaler_fp_1_1- inner node disablement - // 42 image_upscaler_1_1- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x00000000000000000067FCDD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FCDD; - // DEB - 0x000000000000E13E79F0F9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC45E9F - bitmaps.teb[0] = 0x3FC45E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffRgbIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 48; ++i) + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 45; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -16652,7 +15145,7 @@ void LbffRgbIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFE3CFFF000; + disabledRunKernelsBitmap[0] |= 0x1FFFFFF30000; break; } @@ -16672,7 +15165,7 @@ void LbffRgbIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7C0000000000; + disabledRunKernelsBitmap[0] |= 0x1FC000000000; break; } @@ -16682,20 +15175,17 @@ void LbffRgbIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanish SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 44; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc - nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 - nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -16703,173 +15193,182 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags n if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC1D50010009 - bitmaps.rbm[0] = 0x50010009; - bitmaps.rbm[1] = 0x67FC1D; - // DEB - 0x000000000000E13E79F0F9CE8C0000F1 - bitmaps.deb[0] = 0x8C0000F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0009F - bitmaps.teb[0] = 0x3FC0009F; - // REB - 0x00000000000000000000001FF0F60667 - bitmaps.reb[0] = 0xF0F60667; + // RBM - 0x0000000000000000006400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F03200BF + bitmaps.teb[0] = 0xF03200BF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 24 odr_awb_std_1_4- inner node disablement - // 25 odr_awb_sat_1_4- inner node disablement - // 26 aestatistics_2_1- inner node disablement - // 27 odr_ae_1_4- inner node disablement - // 28 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F0E0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC3EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC1D501F0009 - bitmaps.rbm[0] = 0x501F0009; - bitmaps.rbm[1] = 0x47FC1D; - // DEB - 0x000000000000C13E79F0F9CE8C1BF0F1 - bitmaps.deb[0] = 0x8C1BF0F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC01E9F - bitmaps.teb[0] = 0x2FC01E9F; - // REB - 0x00000000000000000000001FF0F67E67 - bitmaps.reb[0] = 0xF0F67E67; + // RBM - 0x0000000000000000004400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0361EBF + bitmaps.teb[0] = 0xE0361EBF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 40 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000000; + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC1D50010009 - bitmaps.rbm[0] = 0x50010009; - bitmaps.rbm[1] = 0x47FC1D; - // DEB - 0x000000000000C13E79F0F9CE8C0000F1 - bitmaps.deb[0] = 0x8C0000F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0009F - bitmaps.teb[0] = 0x2FC0009F; - // REB - 0x00000000000000000000001FF0F60667 - bitmaps.reb[0] = 0xF0F60667; + // RBM - 0x0000000000000000004400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E03200BF + bitmaps.teb[0] = 0xE03200BF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 24 odr_awb_std_1_4- inner node disablement - // 25 odr_awb_sat_1_4- inner node disablement - // 26 aestatistics_2_1- inner node disablement - // 27 odr_ae_1_4- inner node disablement - // 28 odr_af_std_1_4- inner node disablement - // 40 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1001F0E0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000C3EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC1D501F0009 - bitmaps.rbm[0] = 0x501F0009; - bitmaps.rbm[1] = 0x27FC1D; - // DEB - 0x000000000000213E79F0F9CE8C1BF0F1 - bitmaps.deb[0] = 0x8C1BF0F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC01E9F - bitmaps.teb[0] = 0x1FC01E9F; - // REB - 0x00000000000000000000001FF0F67E67 - bitmaps.reb[0] = 0xF0F67E67; + // RBM - 0x0000000000000000002400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0361EBF + bitmaps.teb[0] = 0xD0361EBF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000000; + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC1D50010009 - bitmaps.rbm[0] = 0x50010009; - bitmaps.rbm[1] = 0x27FC1D; - // DEB - 0x000000000000213E79F0F9CE8C0000F1 - bitmaps.deb[0] = 0x8C0000F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0009F - bitmaps.teb[0] = 0x1FC0009F; - // REB - 0x00000000000000000000001FF0F60667 - bitmaps.reb[0] = 0xF0F60667; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 24 odr_awb_std_1_4- inner node disablement - // 25 odr_awb_sat_1_4- inner node disablement - // 26 aestatistics_2_1- inner node disablement - // 27 odr_ae_1_4- inner node disablement - // 28 odr_af_std_1_4- inner node disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6001F0E0000; + // RBM - 0x0000000000000000002400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D03200BF + bitmaps.teb[0] = 0xD03200BF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000C3EC0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E0009 - bitmaps.rbm[0] = 0x1E0009; - // DEB - 0x000000000000000000000000001BF0F1 - bitmaps.deb[0] = 0x1BF0F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007E67 - bitmaps.reb[0] = 0x7E67; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 5 gd_2_2- inner node disablement - // 6 wb_1_1- inner node disablement - // 7 bnlm_3_4- inner node disablement - // 8 bxt_demosaic- inner node disablement - // 9 vcsc_2_0_b- inner node disablement - // 10 gltm_2_0- inner node disablement - // 11 xnr_5_4- inner node disablement - // 12 vcr_3_1- inner node disablement - // 13 glim_2_0- inner node disablement - // 14 acm_1_2- inner node disablement - // 15 gammatm_v4- inner node disablement - // 16 csc_1_1- inner node disablement - // 20 b2i_ds_1_1- inner node disablement - // 21 lbff_crop_espa_1_4- inner node disablement - // 22 tnr7_spatial_1_1- inner node disablement - // 23 tnr_scaler_lb_1_1- inner node disablement - // 29 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 30 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 31 tnr7_ims_1_2- inner node disablement - // 32 tnr7_bc_1_2- inner node disablement - // 33 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 35 tnr7_blend_1_1- inner node disablement - // 36 odr_tnr_fp_yuvn_1_4- inner node disablement - // 37 tnr_scaler_fp_1_1- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 cas_1_1- inner node disablement - // 40 odr_ofs_mp_1_4- inner node disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - // 43 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFE0F1FFE0; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + // 43 ifd_segmap_cas_1_4- inner node disablement + // 44 smurf_cas_1_0- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFF30000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -16881,64 +15380,70 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 gd_2_2- inner node disablement - // 6 wb_1_1- inner node disablement - // 7 bnlm_3_4- inner node disablement - // 8 bxt_demosaic- inner node disablement - // 9 vcsc_2_0_b- inner node disablement - // 10 gltm_2_0- inner node disablement - // 11 xnr_5_4- inner node disablement - // 12 vcr_3_1- inner node disablement - // 13 glim_2_0- inner node disablement - // 14 acm_1_2- inner node disablement - // 15 gammatm_v4- inner node disablement - // 16 csc_1_1- inner node disablement - // 17 rgbs_grid_1_1- inner node disablement - // 18 ccm_3a_2_0- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 b2i_ds_1_1- inner node disablement - // 21 lbff_crop_espa_1_4- inner node disablement - // 22 tnr7_spatial_1_1- inner node disablement - // 23 tnr_scaler_lb_1_1- inner node disablement - // 24 odr_awb_std_1_4- inner node disablement - // 25 odr_awb_sat_1_4- inner node disablement - // 26 aestatistics_2_1- inner node disablement - // 27 odr_ae_1_4- inner node disablement - // 28 odr_af_std_1_4- inner node disablement - // 29 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 30 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 31 tnr7_ims_1_2- inner node disablement - // 32 tnr7_bc_1_2- inner node disablement - // 33 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 35 tnr7_blend_1_1- inner node disablement - // 36 odr_tnr_fp_yuvn_1_4- inner node disablement - // 37 tnr_scaler_fp_1_1- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 cas_1_1- inner node disablement - // 40 odr_ofs_mp_1_4- inner node disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - // 43 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + // 43 ifd_segmap_cas_1_4- inner node disablement + // 44 smurf_cas_1_0- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC1D501F0009 - bitmaps.rbm[0] = 0x501F0009; - bitmaps.rbm[1] = 0x67FC1D; - // DEB - 0x000000000000E13E79F0F9CE8C1BF0F1 - bitmaps.deb[0] = 0x8C1BF0F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC01E9F - bitmaps.teb[0] = 0x3FC01E9F; - // REB - 0x00000000000000000000001FF0F67E67 - bitmaps.reb[0] = 0xF0F67E67; + // RBM - 0x0000000000000000006400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0361EBF + bitmaps.teb[0] = 0xF0361EBF; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; } @@ -16946,20 +15451,17 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 44; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc - nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 - nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -17003,7 +15505,7 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFE0F1FFE0; + disabledRunKernelsBitmap[0] |= 0x1FFFFFFF30000; break; } @@ -17023,7 +15525,7 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7C000000000; + disabledRunKernelsBitmap[0] |= 0x1F88000000000; break; } @@ -17033,479 +15535,214 @@ void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 52; ++i) + for (uint8_t i = 0; i < 61; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCFD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCFD; - // DEB - 0x000000000000E13E79FFF9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF2409F - bitmaps.teb[0] = 0x3FF2409F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1C3000390; - } - else if (nodeRelevantInnerOptions == (noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCBD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF61E9F - bitmaps.teb[0] = 0x3FF61E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; - } - else if (nodeRelevantInnerOptions == (no3A | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF2009F - bitmaps.teb[0] = 0x3FF2009F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000067FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC000BF + bitmaps.teb[0] = 0xFFC000BF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1C30003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC3EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCFD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FCFD; - // DEB - 0x000000000000C13E79FFF9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF65E9F - bitmaps.teb[0] = 0x2FF65E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000047FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC41EBF + bitmaps.teb[0] = 0xEFC41EBF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000000000; + // 58 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCFD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCFD; - // DEB - 0x000000000000C13E79FFF9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF2409F - bitmaps.teb[0] = 0x2FF2409F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000047FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC000BF + bitmaps.teb[0] = 0xEFC000BF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10001C3000390; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 58 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000000C3EC0; } - else if (nodeRelevantInnerOptions == (noMp | noIr)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF61E9F - bitmaps.teb[0] = 0x2FF61E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000027FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC41EBF + bitmaps.teb[0] = 0xDFC41EBF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000000040; + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF2009F - bitmaps.teb[0] = 0x2FF2009F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000027FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC000BF + bitmaps.teb[0] = 0xDFC000BF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10001C30003D0; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000000C3EC0; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCFD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FCFD; - // DEB - 0x000000000000213E79FFF9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF65E9F - bitmaps.teb[0] = 0x1FF65E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FCFD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCFD; - // DEB - 0x000000000000213E79FFF9CE8F8001F1 - bitmaps.deb[0] = 0x8F8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF2409F - bitmaps.teb[0] = 0x1FF2409F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60001C3000390; - } - else if (nodeRelevantInnerOptions == (noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FCBD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D9FF1F1 - bitmaps.deb[0] = 0x8D9FF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF61E9F - bitmaps.teb[0] = 0x1FF61E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000000040; - } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF2009F - bitmaps.teb[0] = 0x1FF2009F; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60001C30003D0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000206071 - bitmaps.rbm[0] = 0x206071; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003871131 - bitmaps.deb[0] = 0x3871131; - // TEB - 0x0000000000045817 - bitmaps.teb[0] = 0x45817; - // REB - 0x0000000000000000000000000300118F - bitmaps.reb[0] = 0x300118F; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_gmv_1_4- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 39 tnr7_ims_1_2- inner node disablement - // 40 tnr7_bc_1_2- inner node disablement - // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 43 tnr7_blend_1_1- inner node disablement - // 44 odr_tnr_fp_yuvn_1_4- inner node disablement - // 45 tnr_scaler_fp_1_1- inner node disablement - // 46 image_upscaler_1_1- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFC00; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 ifd_segmap_tnr_bc_1_4- inner node disablement + // 45 smurf_tnr_bc_1_0- inner node disablement + // 46 tnr7_bc_1_2- inner node disablement + // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 48 ifd_segmap_tnr_blend_1_4- inner node disablement + // 49 smurf_tnr_blend_1_0- inner node disablement + // 50 tnr7_blend_1_1- inner node disablement + // 51 odr_tnr_fp_yuvn_1_4- inner node disablement + // 52 tnr_scaler_fp_1_1- inner node disablement + // 53 image_upscaler_1_1- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 55 ifd_segmap_cas_1_4- inner node disablement + // 56 smurf_cas_1_0- inner node disablement + // 57 cas_1_1- inner node disablement + // 58 odr_ofs_mp_1_4- inner node disablement + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF30000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000006011 - bitmaps.rbm[0] = 0x6011; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003800131 - bitmaps.deb[0] = 0x3800131; - // TEB - 0x0000000000004017 - bitmaps.teb[0] = 0x4017; - // REB - 0x00000000000000000000000003000187 - bitmaps.reb[0] = 0x3000187; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_gmv_1_4- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 39 tnr7_ims_1_2- inner node disablement - // 40 tnr7_bc_1_2- inner node disablement - // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 43 tnr7_blend_1_1- inner node disablement - // 44 odr_tnr_fp_yuvn_1_4- inner node disablement - // 45 tnr_scaler_fp_1_1- inner node disablement - // 46 image_upscaler_1_1- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF90; - } - else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000200061 - bitmaps.rbm[0] = 0x200061; - // DEB - 0x00000000000000000000000000071031 - bitmaps.deb[0] = 0x71031; - // TEB - 0x0000000000041817 - bitmaps.teb[0] = 0x41817; - // REB - 0x0000000000000000000000000000100F - bitmaps.reb[0] = 0x100F; - - // Kernels disablement - // 3 dpc_2_2- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_gmv_1_4- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 39 tnr7_ims_1_2- inner node disablement - // 40 tnr7_bc_1_2- inner node disablement - // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 43 tnr7_blend_1_1- inner node disablement - // 44 odr_tnr_fp_yuvn_1_4- inner node disablement - // 45 tnr_scaler_fp_1_1- inner node disablement - // 46 image_upscaler_1_1- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFC68; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -17515,72 +15752,82 @@ void LbffRgbIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgbs_grid_1_1- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 bnlm_3_4- inner node disablement - // 15 bxt_demosaic- inner node disablement - // 16 vcsc_2_0_b- inner node disablement - // 17 gltm_2_0- inner node disablement - // 18 xnr_5_4- inner node disablement - // 19 vcr_3_1- inner node disablement - // 20 glim_2_0- inner node disablement - // 21 acm_1_2- inner node disablement - // 22 gammatm_v4- inner node disablement - // 23 csc_1_1- inner node disablement - // 24 ccm_3a_2_0- inner node disablement - // 25 fr_grid_1_0- inner node disablement - // 26 b2i_ds_1_1- inner node disablement - // 27 lbff_crop_espa_1_4- inner node disablement - // 28 tnr7_spatial_1_1- inner node disablement - // 29 tnr_scaler_lb_1_1- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_gmv_1_4- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 39 tnr7_ims_1_2- inner node disablement - // 40 tnr7_bc_1_2- inner node disablement - // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 43 tnr7_blend_1_1- inner node disablement - // 44 odr_tnr_fp_yuvn_1_4- inner node disablement - // 45 tnr_scaler_fp_1_1- inner node disablement - // 46 image_upscaler_1_1- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 ifd_segmap_tnr_bc_1_4- inner node disablement + // 45 smurf_tnr_bc_1_0- inner node disablement + // 46 tnr7_bc_1_2- inner node disablement + // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 48 ifd_segmap_tnr_blend_1_4- inner node disablement + // 49 smurf_tnr_blend_1_0- inner node disablement + // 50 tnr7_blend_1_1- inner node disablement + // 51 odr_tnr_fp_yuvn_1_4- inner node disablement + // 52 tnr_scaler_fp_1_1- inner node disablement + // 53 image_upscaler_1_1- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 55 ifd_segmap_cas_1_4- inner node disablement + // 56 smurf_cas_1_0- inner node disablement + // 57 cas_1_1- inner node disablement + // 58 odr_ofs_mp_1_4- inner node disablement + // 59 b2i_ds_output_1_1- inner node disablement + // 60 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FCFD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FCFD; - // DEB - 0x000000000000E13E79FFF9CE8F9FF1F1 - bitmaps.deb[0] = 0x8F9FF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF65E9F - bitmaps.teb[0] = 0x3FF65E9F; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000067FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC41EBF + bitmaps.teb[0] = 0xFFC41EBF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -17588,14 +15835,18 @@ void LbffRgbIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffRgbIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 52; ++i) + for (uint8_t i = 0; i < 61; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } + // Pass-through kernels + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -17638,7 +15889,7 @@ void LbffRgbIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFE3CFFF000; + disabledRunKernelsBitmap[0] |= 0x1FFFFFFFFFF30000; break; } @@ -17658,7 +15909,7 @@ void LbffRgbIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7C00000000000; + disabledRunKernelsBitmap[0] |= 0x1FA0000000000000; break; } @@ -17668,18 +15919,17 @@ void LbffRgbIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 33; ++i) + for (uint8_t i = 0; i < 65; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -17687,161 +15937,201 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInne if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064001D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x64001D; - // DEB - 0x000000000000E1200000F9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003000009F - bitmaps.teb[0] = 0x3000009F; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000067FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF200BF + bitmaps.teb[0] = 0xFFF200BF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F01C0000; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000044001D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x44001D; - // DEB - 0x000000000000C1200000F9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020001E9F - bitmaps.teb[0] = 0x20001E9F; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC3EC0; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF61EBF + bitmaps.teb[0] = 0xEFF61EBF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 25 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000000; + // 62 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044001D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x44001D; - // DEB - 0x000000000000C1200000F9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002000009F - bitmaps.teb[0] = 0x2000009F; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000047FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF200BF + bitmaps.teb[0] = 0xEFF200BF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_ofs_mp_1_4- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F21C0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 62 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000000000C3EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024001D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x24001D; - // DEB - 0x00000000000021200000F9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010001E9F - bitmaps.teb[0] = 0x10001E9F; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // RBM - 0x00000000000000000027FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF61EBF + bitmaps.teb[0] = 0xDFF61EBF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000000; + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000000000; + disabledRunKernelsBitmap[1] = 0x1; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024001D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x24001D; - // DEB - 0x00000000000021200000F9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001000009F - bitmaps.teb[0] = 0x1000009F; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000027FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001FB + bitmaps.deb[0] = 0xED8001FB; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF200BF + bitmaps.teb[0] = 0xDFF200BF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FC1C0000; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000000C3EC0; + disabledRunKernelsBitmap[1] = 0x1; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 image_upscaler_1_1- inner node disablement - // 24 cas_1_1- inner node disablement - // 25 odr_ofs_mp_1_4- inner node disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFE3FFC0; + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 gmv_statistics_1_1- inner node disablement + // 46 odr_gmv_feature_1_4- inner node disablement + // 47 odr_gmv_match_1_4- inner node disablement + // 48 ifd_segmap_tnr_bc_1_4- inner node disablement + // 49 smurf_tnr_bc_1_0- inner node disablement + // 50 tnr7_bc_1_2- inner node disablement + // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 52 ifd_segmap_tnr_blend_1_4- inner node disablement + // 53 smurf_tnr_blend_1_0- inner node disablement + // 54 tnr7_blend_1_1- inner node disablement + // 55 odr_tnr_fp_yuvn_1_4- inner node disablement + // 56 tnr_scaler_fp_1_1- inner node disablement + // 57 image_upscaler_1_1- inner node disablement + // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 59 ifd_segmap_cas_1_4- inner node disablement + // 60 smurf_cas_1_0- inner node disablement + // 61 cas_1_1- inner node disablement + // 62 odr_ofs_mp_1_4- inner node disablement + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF30000; + disabledRunKernelsBitmap[1] = 0x1; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -17853,53 +16143,87 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInne // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 image_upscaler_1_1- inner node disablement - // 24 cas_1_1- inner node disablement - // 25 odr_ofs_mp_1_4- inner node disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFF; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 fr_grid_1_0- inner node disablement + // 19 odr_af_std_1_4- inner node disablement + // 20 ifd_gmv_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 gmv_statistics_1_1- inner node disablement + // 46 odr_gmv_feature_1_4- inner node disablement + // 47 odr_gmv_match_1_4- inner node disablement + // 48 ifd_segmap_tnr_bc_1_4- inner node disablement + // 49 smurf_tnr_bc_1_0- inner node disablement + // 50 tnr7_bc_1_2- inner node disablement + // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 52 ifd_segmap_tnr_blend_1_4- inner node disablement + // 53 smurf_tnr_blend_1_0- inner node disablement + // 54 tnr7_blend_1_1- inner node disablement + // 55 odr_tnr_fp_yuvn_1_4- inner node disablement + // 56 tnr_scaler_fp_1_1- inner node disablement + // 57 image_upscaler_1_1- inner node disablement + // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 59 ifd_segmap_cas_1_4- inner node disablement + // 60 smurf_cas_1_0- inner node disablement + // 61 cas_1_1- inner node disablement + // 62 odr_ofs_mp_1_4- inner node disablement + // 63 b2i_ds_output_1_1- inner node disablement + // 64 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x1; } else // default inner node { - // RBM - 0x00000000000000000064001D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x64001D; - // DEB - 0x000000000000E1200000F9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030001E9F - bitmaps.teb[0] = 0x30001E9F; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // RBM - 0x00000000000000000067FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED9FF1FB + bitmaps.deb[0] = 0xED9FF1FB; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF61EBF + bitmaps.teb[0] = 0xFFF61EBF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -17907,18 +16231,17 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInne } -void LbffIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 33; ++i) + for (uint8_t i = 0; i < 65; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -17962,7 +16285,8 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatu bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFE3FFC0; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFF30000; + disabledRunKernelsBitmap[1] |= 0x1; break; } @@ -17982,7 +16306,8 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatu bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF800000; + disabledRunKernelsBitmap[0] |= 0xFA00000000000000; + disabledRunKernelsBitmap[1] |= 0x1; break; } @@ -17992,184 +16317,359 @@ void LbffIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatu SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 37; ++i) + for (uint8_t i = 0; i < 39; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064003D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x64003D; - // DEB - 0x000000000000E120000FF9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0xFF9CE; + // RBM - 0x00000000000000000064009D54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003032009F - bitmaps.teb[0] = 0x3032009F; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // TEB - 0x000000003008009F + bitmaps.teb[0] = 0x3008009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F01C0000; + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC0700000; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000044003D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x44003D; - // DEB - 0x000000000000C120000FF9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020321E9F - bitmaps.teb[0] = 0x20321E9F; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // RBM - 0x00000000000000000064009D541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8DBBF1F1 + bitmaps.deb[0] = 0x8DBBF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030081E9F + bitmaps.teb[0] = 0x30081E9F; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 25 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000000; + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7800000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000044003D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x44003D; - // DEB - 0x000000000000C120000FF9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002032009F - bitmaps.teb[0] = 0x2032009F; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000064009D54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003008009F + bitmaps.teb[0] = 0x3008009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_ofs_mp_1_4- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1F21C0000; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000024003D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x24003D; - // DEB - 0x0000000000002120000FF9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010321E9F - bitmaps.teb[0] = 0x10321E9F; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC0700000; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044019D541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x44019D; + // DEB - 0x000000000000C1200000F9CE8DFBFFF1 + bitmaps.deb[0] = 0x8DFBFFF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020083F9F + bitmaps.teb[0] = 0x20083F9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000000; + // 27 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044009D54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002008009F + bitmaps.teb[0] = 0x2008009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC8700000; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044009D541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8DBBF1F1 + bitmaps.deb[0] = 0x8DBBF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020081E9F + bitmaps.teb[0] = 0x20081E9F; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7808000000; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044009D54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002008009F + bitmaps.teb[0] = 0x2008009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC8700000; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024019D541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x24019D; + // DEB - 0x00000000000021200000F9CE8DFBFFF1 + bitmaps.deb[0] = 0x8DFBFFF1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010083F9F + bitmaps.teb[0] = 0x10083F9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024003D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x24003D; - // DEB - 0x0000000000002120000FF9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0xFF9CE; + // RBM - 0x00000000000000000024009D54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xF9CE; bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001032009F - bitmaps.teb[0] = 0x1032009F; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // TEB - 0x000000001008009F + bitmaps.teb[0] = 0x1008009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FC1C0000; + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FF0700000; + } + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024009D541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8DBBF1F1 + bitmaps.deb[0] = 0x8DBBF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010081E9F + bitmaps.teb[0] = 0x10081E9F; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7830000000; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024009D54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001008009F + bitmaps.teb[0] = 0x1008009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FF0700000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // RBM - 0x000000000000000000000180041E6811 + bitmaps.rbm[0] = 0x41E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001FBFFF1 + bitmaps.deb[0] = 0x1FBFFF1; + // TEB - 0x0000000000083F97 + bitmaps.teb[0] = 0x83F97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 image_upscaler_1_1- inner node disablement - // 24 cas_1_1- inner node disablement - // 25 odr_ofs_mp_1_4- inner node disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - // 33 ifd_gmv_1_4- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0FE3FFC0; + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3F8FFF00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -18183,55 +16683,146 @@ void LbffIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn // 0 ifd_pipe_1_4- inner node disablement // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 image_upscaler_1_1- inner node disablement - // 24 cas_1_1- inner node disablement - // 25 odr_ofs_mp_1_4- inner node disablement - // 26 b2i_ds_output_1_1- inner node disablement - // 27 odr_ofs_dp_1_4- inner node disablement - // 28 odr_awb_std_1_4- inner node disablement - // 29 odr_awb_sat_1_4- inner node disablement - // 30 aestatistics_2_1- inner node disablement - // 31 odr_ae_1_4- inner node disablement - // 32 odr_af_std_1_4- inner node disablement - // 33 ifd_gmv_1_4- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFF; + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000080041E6811 + bitmaps.rbm[0] = 0x41E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x00000000000000000000000001BBF1F1 + bitmaps.deb[0] = 0x1BBF1F1; + // TEB - 0x0000000000081E97 + bitmaps.teb[0] = 0x81E97; + // REB - 0x0000000000000000000000000200FFE7 + bitmaps.reb[0] = 0x200FFE7; + + // Kernels disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x783F8FFF00; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064003D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x64003D; - // DEB - 0x000000000000E120000FF9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0xFF9CE; + // RBM - 0x00000000000000000064019D541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x64019D; + // DEB - 0x000000000000E1200000F9CE8DFBFFF1 + bitmaps.deb[0] = 0x8DFBFFF1; + bitmaps.deb[1] = 0xF9CE; bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030321E9F - bitmaps.teb[0] = 0x30321E9F; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // TEB - 0x0000000030083F9F + bitmaps.teb[0] = 0x30083F9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -18239,18 +16830,16 @@ void LbffIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn } -void LbffIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 37; ++i) + for (uint8_t i = 0; i < 39; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -18294,7 +16883,7 @@ void LbffIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSta bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1E0FE3FFC0; + disabledRunKernelsBitmap[0] |= 0x3F8FFF00; break; } @@ -18314,7 +16903,7 @@ void LbffIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSta bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF800000; + disabledRunKernelsBitmap[0] |= 0x3E000000; break; } @@ -18324,192 +16913,363 @@ void LbffIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishSta SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 45; ++i) + for (uint8_t i = 0; i < 43; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC1D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x67FC1D; - // DEB - 0x000000000000E13E79F0F9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC0009F - bitmaps.teb[0] = 0x3FC0009F; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x0000000000000000006400BD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000303A009F + bitmaps.teb[0] = 0x303A009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3E1C0000; + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC0700000; + } + else if (nodeRelevantInnerOptions == (noPdaf)) + { + // HW bitmaps + // RBM - 0x0000000000000000006400BD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8DBBF1F1 + bitmaps.deb[0] = 0x8DBBF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000303A1E9F + bitmaps.teb[0] = 0x303A1E9F; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7800000000; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) + { + // HW bitmaps + // RBM - 0x0000000000000000006400BD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000303A009F + bitmaps.teb[0] = 0x303A009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC0700000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC1D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x47FC1D; - // DEB - 0x000000000000C13E79F0F9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC01E9F - bitmaps.teb[0] = 0x2FC01E9F; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x0000000000000000004401BD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x4401BD; + // DEB - 0x000000000000C120000FF9CE8DFBFFF1 + bitmaps.deb[0] = 0x8DFBFFF1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000203A3F9F + bitmaps.teb[0] = 0x203A3F9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 41 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000000; + // 27 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC1D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x47FC1D; - // DEB - 0x000000000000C13E79F0F9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC0009F - bitmaps.teb[0] = 0x2FC0009F; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x0000000000000000004400BD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000203A009F + bitmaps.teb[0] = 0x203A009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2003E1C0000; + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC8700000; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) + { + // HW bitmaps + // RBM - 0x0000000000000000004400BD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8DBBF1F1 + bitmaps.deb[0] = 0x8DBBF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000203A1E9F + bitmaps.teb[0] = 0x203A1E9F; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7808000000; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + { + // HW bitmaps + // RBM - 0x0000000000000000004400BD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000203A009F + bitmaps.teb[0] = 0x203A009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FC8700000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC1D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x27FC1D; - // DEB - 0x000000000000213E79F0F9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC01E9F - bitmaps.teb[0] = 0x1FC01E9F; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x0000000000000000002401BD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x2401BD; + // DEB - 0x0000000000002120000FF9CE8DFBFFF1 + bitmaps.deb[0] = 0x8DFBFFF1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000103A3F9F + bitmaps.teb[0] = 0x103A3F9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000000; + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC1D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x27FC1D; - // DEB - 0x000000000000213E79F0F9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC0009F - bitmaps.teb[0] = 0x1FC0009F; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x0000000000000000002400BD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000103A009F + bitmaps.teb[0] = 0x103A009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC003E1C0000; + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FF0700000; + } + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400BD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8DBBF1F1 + bitmaps.deb[0] = 0x8DBBF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000103A1E9F + bitmaps.teb[0] = 0x103A1E9F; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7830000000; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400BD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8DA001F1 + bitmaps.deb[0] = 0x8DA001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000103A009F + bitmaps.teb[0] = 0x103A009F; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FF0700000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // RBM - 0x000000000000000000000180041E6811 + bitmaps.rbm[0] = 0x41E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001FBFFF1 + bitmaps.deb[0] = 0x1FBFFF1; + // TEB - 0x0000000000083F97 + bitmaps.teb[0] = 0x83F97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 tnr7_spatial_1_1- inner node disablement - // 24 tnr_scaler_lb_1_1- inner node disablement - // 30 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 31 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 32 tnr7_ims_1_2- inner node disablement - // 33 tnr7_bc_1_2- inner node disablement - // 34 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 35 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 36 tnr7_blend_1_1- inner node disablement - // 37 odr_tnr_fp_yuvn_1_4- inner node disablement - // 38 tnr_scaler_fp_1_1- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 cas_1_1- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - // 44 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFC1E3FFC0; + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 39 ifd_gmv_1_4- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7803F8FFF00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -18523,347 +17283,92 @@ void LbffIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn // 0 ifd_pipe_1_4- inner node disablement // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 tnr7_spatial_1_1- inner node disablement - // 24 tnr_scaler_lb_1_1- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - // 30 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 31 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 32 tnr7_ims_1_2- inner node disablement - // 33 tnr7_bc_1_2- inner node disablement - // 34 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 35 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 36 tnr7_blend_1_1- inner node disablement - // 37 odr_tnr_fp_yuvn_1_4- inner node disablement - // 38 tnr_scaler_fp_1_1- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 cas_1_1- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - // 44 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x00000000000000000067FC1D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x67FC1D; - // DEB - 0x000000000000E13E79F0F9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC01E9F - bitmaps.teb[0] = 0x3FC01E9F; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; - bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 45; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFC1E3FFC0; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF8000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} - -void LbffIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FC3D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x67FC3D; - // DEB - 0x000000000000E13E79FFF9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF2009F - bitmaps.teb[0] = 0x3FF2009F; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3E1C0000; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC3D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x47FC3D; - // DEB - 0x000000000000C13E79FFF9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF21E9F - bitmaps.teb[0] = 0x2FF21E9F; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC3D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x47FC3D; - // DEB - 0x000000000000C13E79FFF9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FF2009F - bitmaps.teb[0] = 0x2FF2009F; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20003E1C0000; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC3D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x27FC3D; - // DEB - 0x000000000000213E79FFF9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF21E9F - bitmaps.teb[0] = 0x1FF21E9F; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FC3D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x27FC3D; - // DEB - 0x000000000000213E79FFF9CE8C0001F1 - bitmaps.deb[0] = 0x8C0001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FF2009F - bitmaps.teb[0] = 0x1FF2009F; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0003E1C0000; + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + // 39 ifd_gmv_1_4- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // RBM - 0x000000000000000000000080041E6811 + bitmaps.rbm[0] = 0x41E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x00000000000000000000000001BBF1F1 + bitmaps.deb[0] = 0x1BBF1F1; + // TEB - 0x0000000000081E97 + bitmaps.teb[0] = 0x81E97; + // REB - 0x0000000000000000000000000200FFE7 + bitmaps.reb[0] = 0x200FFE7; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 tnr7_spatial_1_1- inner node disablement - // 24 tnr_scaler_lb_1_1- inner node disablement - // 30 ifd_gmv_1_4- inner node disablement - // 31 gmv_statistics_1_1- inner node disablement - // 32 odr_gmv_feature_1_4- inner node disablement - // 33 odr_gmv_match_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 36 tnr7_ims_1_2- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 40 tnr7_blend_1_1- inner node disablement - // 41 odr_tnr_fp_yuvn_1_4- inner node disablement - // 42 tnr_scaler_fp_1_1- inner node disablement - // 43 image_upscaler_1_1- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFC1E3FFC0; + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + // 39 ifd_gmv_1_4- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7F83F8FFF00; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -18875,67 +17380,61 @@ void LbffIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags node // 0 ifd_pipe_1_4- inner node disablement // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 bnlm_3_4- inner node disablement - // 9 bxt_demosaic- inner node disablement - // 10 vcsc_2_0_b- inner node disablement - // 11 gltm_2_0- inner node disablement - // 12 xnr_5_4- inner node disablement - // 13 vcr_3_1- inner node disablement - // 14 glim_2_0- inner node disablement - // 15 acm_1_2- inner node disablement - // 16 gammatm_v4- inner node disablement - // 17 csc_1_1- inner node disablement - // 18 rgbs_grid_1_1- inner node disablement - // 19 ccm_3a_2_0- inner node disablement - // 20 fr_grid_1_0- inner node disablement - // 21 b2i_ds_1_1- inner node disablement - // 22 lbff_crop_espa_1_4- inner node disablement - // 23 tnr7_spatial_1_1- inner node disablement - // 24 tnr_scaler_lb_1_1- inner node disablement - // 25 odr_awb_std_1_4- inner node disablement - // 26 odr_awb_sat_1_4- inner node disablement - // 27 aestatistics_2_1- inner node disablement - // 28 odr_ae_1_4- inner node disablement - // 29 odr_af_std_1_4- inner node disablement - // 30 ifd_gmv_1_4- inner node disablement - // 31 gmv_statistics_1_1- inner node disablement - // 32 odr_gmv_feature_1_4- inner node disablement - // 33 odr_gmv_match_1_4- inner node disablement - // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 36 tnr7_ims_1_2- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 40 tnr7_blend_1_1- inner node disablement - // 41 odr_tnr_fp_yuvn_1_4- inner node disablement - // 42 tnr_scaler_fp_1_1- inner node disablement - // 43 image_upscaler_1_1- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 bnlm_3_4- inner node disablement + // 11 bxt_demosaic- inner node disablement + // 12 vcsc_2_0_b- inner node disablement + // 13 gltm_2_0- inner node disablement + // 14 xnr_5_4- inner node disablement + // 15 vcr_3_1- inner node disablement + // 16 glim_2_0- inner node disablement + // 17 acm_1_2- inner node disablement + // 18 gammatm_v4- inner node disablement + // 19 csc_1_1- inner node disablement + // 20 rgbs_grid_1_1- inner node disablement + // 21 ccm_3a_2_0- inner node disablement + // 22 fr_grid_1_0- inner node disablement + // 23 b2i_ds_1_1- inner node disablement + // 24 lbff_crop_espa_1_4- inner node disablement + // 25 image_upscaler_1_1- inner node disablement + // 26 cas_1_1- inner node disablement + // 27 odr_ofs_mp_1_4- inner node disablement + // 28 b2i_ds_output_1_1- inner node disablement + // 29 odr_ofs_dp_1_4- inner node disablement + // 30 odr_awb_std_1_4- inner node disablement + // 31 odr_awb_sat_1_4- inner node disablement + // 32 aestatistics_2_1- inner node disablement + // 33 odr_ae_1_4- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_pdaf_1_4- inner node disablement + // 36 pext_1_0- inner node disablement + // 37 pafstatistics_1_2- inner node disablement + // 38 odr_pdaf_1_4- inner node disablement + // 39 ifd_gmv_1_4- inner node disablement + // 40 gmv_statistics_1_1- inner node disablement + // 41 odr_gmv_feature_1_4- inner node disablement + // 42 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC3D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x67FC3D; - // DEB - 0x000000000000E13E79FFF9CE8C1BF1F1 - bitmaps.deb[0] = 0x8C1BF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FF21E9F - bitmaps.teb[0] = 0x3FF21E9F; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x0000000000000000006401BD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x6401BD; + // DEB - 0x000000000000E120000FF9CE8DFBFFF1 + bitmaps.deb[0] = 0x8DFBFFF1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000303A3F9F + bitmaps.teb[0] = 0x303A3F9F; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -18943,18 +17442,16 @@ void LbffIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags node } -void LbffIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) + for (uint8_t i = 0; i < 43; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -18998,7 +17495,7 @@ void LbffIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishS bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFC1E3FFC0; + disabledRunKernelsBitmap[0] |= 0x7803F8FFF00; break; } @@ -19018,7 +17515,7 @@ void LbffIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishS bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF80000000000; + disabledRunKernelsBitmap[0] |= 0x3E000000; break; } @@ -19028,10 +17525,10 @@ void LbffIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishS SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 39; ++i) + for (uint8_t i = 0; i < 51; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -19045,307 +17542,307 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOption if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D54016811 + // RBM - 0x00000000000000000067FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8DA001F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003008009F - bitmaps.teb[0] = 0x3008009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC8009F + bitmaps.teb[0] = 0x3FC8009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF8700000; } else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000064009D541F6811 + // RBM - 0x00000000000000000067FC9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8DBBF1F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8DBBF1F1 bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030081E9F - bitmaps.teb[0] = 0x30081E9F; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC81E9F + bitmaps.teb[0] = 0x3FC81E9F; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7800000000; + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF00000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000064009D54016811 + // RBM - 0x00000000000000000067FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1200000F9CE8DA001F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x000000003008009F - bitmaps.teb[0] = 0x3008009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC8009F + bitmaps.teb[0] = 0x3FC8009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF8700000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044019D541F6811 + // RBM - 0x00000000000000000047FD9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x44019D; - // DEB - 0x000000000000C1200000F9CE8DFBFFF1 + bitmaps.rbm[1] = 0x47FD9D; + // DEB - 0x000000000000C13E79F0F9CE8DFBFFF1 bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020083F9F - bitmaps.teb[0] = 0x20083F9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC83F9F + bitmaps.teb[0] = 0x2FC83F9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 27 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000; + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D54016811 + // RBM - 0x00000000000000000047FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8DA001F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002008009F - bitmaps.teb[0] = 0x2008009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC8009F + bitmaps.teb[0] = 0x2FC8009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC8700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800FF8700000; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D541F6811 + // RBM - 0x00000000000000000047FC9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8DBBF1F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8DBBF1F1 bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x0000000020081E9F - bitmaps.teb[0] = 0x20081E9F; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC81E9F + bitmaps.teb[0] = 0x2FC81E9F; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7808000000; + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800F00000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D54016811 + // RBM - 0x00000000000000000047FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1200000F9CE8DA001F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x000000002008009F - bitmaps.teb[0] = 0x2008009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC8009F + bitmaps.teb[0] = 0x2FC8009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC8700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800FF8700000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024019D541F6811 + // RBM - 0x00000000000000000027FD9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x24019D; - // DEB - 0x00000000000021200000F9CE8DFBFFF1 + bitmaps.rbm[1] = 0x27FD9D; + // DEB - 0x000000000000213E79F0F9CE8DFBFFF1 bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010083F9F - bitmaps.teb[0] = 0x10083F9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC83F9F + bitmaps.teb[0] = 0x1FC83F9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000; + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D54016811 + // RBM - 0x00000000000000000027FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8DA001F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001008009F - bitmaps.teb[0] = 0x1008009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC8009F + bitmaps.teb[0] = 0x1FC8009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FF0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000FF8700000; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D541F6811 + // RBM - 0x00000000000000000027FC9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8DBBF1F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8DBBF1F1 bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x0000000010081E9F - bitmaps.teb[0] = 0x10081E9F; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC81E9F + bitmaps.teb[0] = 0x1FC81E9F; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7830000000; + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000F00000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D54016811 + // RBM - 0x00000000000000000027FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021200000F9CE8DA001F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x000000001008009F - bitmaps.teb[0] = 0x1008009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC8009F + bitmaps.teb[0] = 0x1FC8009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FF0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000FF8700000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -19375,12 +17872,24 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOption // 19 csc_1_1- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3F8FFF00; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 38 tnr7_ims_1_2- inner node disablement + // 39 tnr7_bc_1_2- inner node disablement + // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 42 tnr7_blend_1_1- inner node disablement + // 43 odr_tnr_fp_yuvn_1_4- inner node disablement + // 44 tnr_scaler_fp_1_1- inner node disablement + // 45 image_upscaler_1_1- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFF0078FFF00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -19416,21 +17925,33 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOption // 22 fr_grid_1_0- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 38 tnr7_ims_1_2- inner node disablement + // 39 tnr7_bc_1_2- inner node disablement + // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 42 tnr7_blend_1_1- inner node disablement + // 43 odr_tnr_fp_yuvn_1_4- inner node disablement + // 44 tnr_scaler_fp_1_1- inner node disablement + // 45 image_upscaler_1_1- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -19460,16 +17981,28 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOption // 19 csc_1_1- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x783F8FFF00; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 38 tnr7_ims_1_2- inner node disablement + // 39 tnr7_bc_1_2- inner node disablement + // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 42 tnr7_blend_1_1- inner node disablement + // 43 odr_tnr_fp_yuvn_1_4- inner node disablement + // 44 tnr_scaler_fp_1_1- inner node disablement + // 45 image_upscaler_1_1- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFF078FFF00; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -19505,35 +18038,47 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOption // 22 fr_grid_1_0- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 38 tnr7_ims_1_2- inner node disablement + // 39 tnr7_bc_1_2- inner node disablement + // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 42 tnr7_blend_1_1- inner node disablement + // 43 odr_tnr_fp_yuvn_1_4- inner node disablement + // 44 tnr_scaler_fp_1_1- inner node disablement + // 45 image_upscaler_1_1- inner node disablement + // 46 cas_1_1- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + // 48 b2i_ds_output_1_1- inner node disablement + // 49 odr_ofs_dp_1_4- inner node disablement + // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064019D541F6811 + // RBM - 0x00000000000000000067FD9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x64019D; - // DEB - 0x000000000000E1200000F9CE8DFBFFF1 + bitmaps.rbm[1] = 0x67FD9D; + // DEB - 0x000000000000E13E79F0F9CE8DFBFFF1 bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0xF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x0000000030083F9F - bitmaps.teb[0] = 0x30083F9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC83F9F + bitmaps.teb[0] = 0x3FC83F9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -19541,10 +18086,10 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOption } -void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 39; ++i) + for (uint8_t i = 0; i < 51; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -19594,7 +18139,7 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOpt bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3F8FFF00; + disabledRunKernelsBitmap[0] |= 0x7FFF0078FFF00; break; } @@ -19614,7 +18159,7 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOpt bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3E000000; + disabledRunKernelsBitmap[0] |= 0x3E00000000000; break; } @@ -19624,10 +18169,10 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOpt SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 43; ++i) + for (uint8_t i = 0; i < 55; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -19641,307 +18186,307 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOpti if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD54016811 + // RBM - 0x00000000000000000067FCBD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8DA001F1 + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000303A009F - bitmaps.teb[0] = 0x303A009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FFA009F + bitmaps.teb[0] = 0x3FFA009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF8700000; } else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD541F6811 + // RBM - 0x00000000000000000067FCBD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8DBBF1F1 + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8DBBF1F1 bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000303A1E9F - bitmaps.teb[0] = 0x303A1E9F; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FFA1E9F + bitmaps.teb[0] = 0x3FFA1E9F; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7800000000; + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF00000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD54016811 + // RBM - 0x00000000000000000067FCBD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E120000FF9CE8DA001F1 + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000303A009F - bitmaps.teb[0] = 0x303A009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FFA009F + bitmaps.teb[0] = 0x3FFA009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF8700000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004401BD541F6811 + // RBM - 0x00000000000000000047FDBD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x4401BD; - // DEB - 0x000000000000C120000FF9CE8DFBFFF1 + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C13E79FFF9CE8DFBFFF1 bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000203A3F9F - bitmaps.teb[0] = 0x203A3F9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FFA3F9F + bitmaps.teb[0] = 0x2FFA3F9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 27 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000; + // 51 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD54016811 + // RBM - 0x00000000000000000047FCBD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8DA001F1 + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000203A009F - bitmaps.teb[0] = 0x203A009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FFA009F + bitmaps.teb[0] = 0x2FFA009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC8700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000FF8700000; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD541F6811 + // RBM - 0x00000000000000000047FCBD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8DBBF1F1 + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8DBBF1F1 bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000203A1E9F - bitmaps.teb[0] = 0x203A1E9F; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FFA1E9F + bitmaps.teb[0] = 0x2FFA1E9F; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7808000000; + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000F00000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD54016811 + // RBM - 0x00000000000000000047FCBD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C120000FF9CE8DA001F1 + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xC120; - // TEB - 0x00000000203A009F - bitmaps.teb[0] = 0x203A009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FFA009F + bitmaps.teb[0] = 0x2FFA009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FC8700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000FF8700000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002401BD541F6811 + // RBM - 0x00000000000000000027FDBD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x2401BD; - // DEB - 0x0000000000002120000FF9CE8DFBFFF1 + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x000000000000213E79FFF9CE8DFBFFF1 bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000103A3F9F - bitmaps.teb[0] = 0x103A3F9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FFA3F9F + bitmaps.teb[0] = 0x1FFA3F9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000; + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD54016811 + // RBM - 0x00000000000000000027FCBD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8DA001F1 + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000103A009F - bitmaps.teb[0] = 0x103A009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FFA009F + bitmaps.teb[0] = 0x1FFA009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FF0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000FF8700000; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD541F6811 + // RBM - 0x00000000000000000027FCBD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8DBBF1F1 + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8DBBF1F1 bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000103A1E9F - bitmaps.teb[0] = 0x103A1E9F; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FFA1E9F + bitmaps.teb[0] = 0x1FFA1E9F; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7830000000; + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000F00000000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD54016811 + // RBM - 0x00000000000000000027FCBD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x0000000000002120000FF9CE8DA001F1 + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8DA001F1 bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0x2120; - // TEB - 0x00000000103A009F - bitmaps.teb[0] = 0x103A009F; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FFA009F + bitmaps.teb[0] = 0x1FFA009F; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement // 20 rgbs_grid_1_1- inner node disablement // 21 ccm_3a_2_0- inner node disablement // 22 fr_grid_1_0- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FF0700000; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x30000FF8700000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -19971,16 +18516,28 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // 19 csc_1_1- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 39 ifd_gmv_1_4- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7803F8FFF00; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 tnr7_bc_1_2- inner node disablement + // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 46 tnr7_blend_1_1- inner node disablement + // 47 odr_tnr_fp_yuvn_1_4- inner node disablement + // 48 tnr_scaler_fp_1_1- inner node disablement + // 49 image_upscaler_1_1- inner node disablement + // 50 cas_1_1- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFF0078FFF00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -20016,25 +18573,37 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // 22 fr_grid_1_0- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - // 39 ifd_gmv_1_4- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 tnr7_bc_1_2- inner node disablement + // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 46 tnr7_blend_1_1- inner node disablement + // 47 odr_tnr_fp_yuvn_1_4- inner node disablement + // 48 tnr_scaler_fp_1_1- inner node disablement + // 49 image_upscaler_1_1- inner node disablement + // 50 cas_1_1- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -20064,20 +18633,32 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // 19 csc_1_1- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - // 39 ifd_gmv_1_4- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7F83F8FFF00; + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 tnr7_bc_1_2- inner node disablement + // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 46 tnr7_blend_1_1- inner node disablement + // 47 odr_tnr_fp_yuvn_1_4- inner node disablement + // 48 tnr_scaler_fp_1_1- inner node disablement + // 49 image_upscaler_1_1- inner node disablement + // 50 cas_1_1- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFF078FFF00; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -20113,39 +18694,51 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // 22 fr_grid_1_0- inner node disablement // 23 b2i_ds_1_1- inner node disablement // 24 lbff_crop_espa_1_4- inner node disablement - // 25 image_upscaler_1_1- inner node disablement - // 26 cas_1_1- inner node disablement - // 27 odr_ofs_mp_1_4- inner node disablement - // 28 b2i_ds_output_1_1- inner node disablement - // 29 odr_ofs_dp_1_4- inner node disablement - // 30 odr_awb_std_1_4- inner node disablement - // 31 odr_awb_sat_1_4- inner node disablement - // 32 aestatistics_2_1- inner node disablement - // 33 odr_ae_1_4- inner node disablement - // 34 odr_af_std_1_4- inner node disablement - // 35 ifd_pdaf_1_4- inner node disablement - // 36 pext_1_0- inner node disablement - // 37 pafstatistics_1_2- inner node disablement - // 38 odr_pdaf_1_4- inner node disablement - // 39 ifd_gmv_1_4- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x0000000000000000006401BD541F6811 + // 25 tnr7_spatial_1_1- inner node disablement + // 26 tnr_scaler_lb_1_1- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + // 32 ifd_pdaf_1_4- inner node disablement + // 33 pext_1_0- inner node disablement + // 34 pafstatistics_1_2- inner node disablement + // 35 odr_pdaf_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 tnr7_bc_1_2- inner node disablement + // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 46 tnr7_blend_1_1- inner node disablement + // 47 odr_tnr_fp_yuvn_1_4- inner node disablement + // 48 tnr_scaler_fp_1_1- inner node disablement + // 49 image_upscaler_1_1- inner node disablement + // 50 cas_1_1- inner node disablement + // 51 odr_ofs_mp_1_4- inner node disablement + // 52 b2i_ds_output_1_1- inner node disablement + // 53 odr_ofs_dp_1_4- inner node disablement + // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000067FDBD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x6401BD; - // DEB - 0x000000000000E120000FF9CE8DFBFFF1 + bitmaps.rbm[1] = 0x67FDBD; + // DEB - 0x000000000000E13E79FFF9CE8DFBFFF1 bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0xFF9CE; - bitmaps.deb[2] = 0xE120; - // TEB - 0x00000000303A3F9F - bitmaps.teb[0] = 0x303A3F9F; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FFA3F9F + bitmaps.teb[0] = 0x3FFA3F9F; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -20153,10 +18746,10 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOpti } -void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 43; ++i) + for (uint8_t i = 0; i < 55; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -20206,7 +18799,7 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishO bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7803F8FFF00; + disabledRunKernelsBitmap[0] |= 0x7FFFF0078FFF00; break; } @@ -20226,7 +18819,7 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishO bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3E000000; + disabledRunKernelsBitmap[0] |= 0x3E000000000000; break; } @@ -20236,10 +18829,10 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishO SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 51; ++i) + for (uint8_t i = 0; i < 47; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -20253,307 +18846,318 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOpti if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D54016811 + // RBM - 0x00000000000000000064009D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC8009F - bitmaps.teb[0] = 0x3FC8009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F008009F + bitmaps.teb[0] = 0xF008009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; } else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D541F6811 + // RBM - 0x00000000000000000064009D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8DBBF1F1 - bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC81E9F - bitmaps.teb[0] = 0x3FC81E9F; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0081E9F + bitmaps.teb[0] = 0xF0081E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF00000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D54016811 + // RBM - 0x00000000000000000064009D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13E79F0F9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC8009F - bitmaps.teb[0] = 0x3FC8009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F008009F + bitmaps.teb[0] = 0xF008009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FD9D541F6811 + // RBM - 0x00000000000000000044019D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FD9D; - // DEB - 0x000000000000C13E79F0F9CE8DFBFFF1 - bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC83F9F - bitmaps.teb[0] = 0x2FC83F9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x44019D; + // DEB - 0x000000000000C1E00000FFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0083F9F + bitmaps.teb[0] = 0xE0083F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000000; + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x100000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D54016811 + // RBM - 0x00000000000000000044009D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC8009F - bitmaps.teb[0] = 0x2FC8009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E008009F + bitmaps.teb[0] = 0xE008009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000003FFC00; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D541F6811 + // RBM - 0x00000000000000000044009D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8DBBF1F1 - bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC81E9F - bitmaps.teb[0] = 0x2FC81E9F; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0081E9F + bitmaps.teb[0] = 0xE0081E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800F00000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000003C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D54016811 + // RBM - 0x00000000000000000044009D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13E79F0F9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FC8009F - bitmaps.teb[0] = 0x2FC8009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E008009F + bitmaps.teb[0] = 0xE008009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000003FFC00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FD9D541F6811 + // RBM - 0x00000000000000000024019D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FD9D; - // DEB - 0x000000000000213E79F0F9CE8DFBFFF1 - bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC83F9F - bitmaps.teb[0] = 0x1FC83F9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x24019D; + // DEB - 0x00000000000021E00000FFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0083F9F + bitmaps.teb[0] = 0xD0083F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000000; + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x600000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D54016811 + // RBM - 0x00000000000000000024009D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC8009F - bitmaps.teb[0] = 0x1FC8009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D008009F + bitmaps.teb[0] = 0xD008009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000003FFC00; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D541F6811 + // RBM - 0x00000000000000000024009D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8DBBF1F1 - bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC81E9F - bitmaps.teb[0] = 0x1FC81E9F; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0081E9F + bitmaps.teb[0] = 0xD0081E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000F00000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000003C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D54016811 + // RBM - 0x00000000000000000024009D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213E79F0F9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FC8009F - bitmaps.teb[0] = 0x1FC8009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D008009F + bitmaps.teb[0] = 0xD008009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000003FFC00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -20571,36 +19175,32 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // Kernels disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 38 tnr7_ims_1_2- inner node disablement - // 39 tnr7_bc_1_2- inner node disablement - // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 42 tnr7_blend_1_1- inner node disablement - // 43 odr_tnr_fp_yuvn_1_4- inner node disablement - // 44 tnr_scaler_fp_1_1- inner node disablement - // 45 image_upscaler_1_1- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFF0078FFF00; + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 ifd_segmap_cas_1_4- inner node disablement + // 42 smurf_cas_1_0- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFC00300; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -20621,48 +19221,44 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // 7 lsc_1_2- inner node disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 38 tnr7_ims_1_2- inner node disablement - // 39 tnr7_bc_1_2- inner node disablement - // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 42 tnr7_blend_1_1- inner node disablement - // 43 odr_tnr_fp_yuvn_1_4- inner node disablement - // 44 tnr_scaler_fp_1_1- inner node disablement - // 45 image_upscaler_1_1- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 ifd_segmap_cas_1_4- inner node disablement + // 42 smurf_cas_1_0- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -20680,40 +19276,36 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // Kernels disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 38 tnr7_ims_1_2- inner node disablement - // 39 tnr7_bc_1_2- inner node disablement - // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 42 tnr7_blend_1_1- inner node disablement - // 43 odr_tnr_fp_yuvn_1_4- inner node disablement - // 44 tnr_scaler_fp_1_1- inner node disablement - // 45 image_upscaler_1_1- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFF078FFF00; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 ifd_segmap_cas_1_4- inner node disablement + // 42 smurf_cas_1_0- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFC0300; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -20734,62 +19326,59 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOpti // 7 lsc_1_2- inner node disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 36 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 37 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 38 tnr7_ims_1_2- inner node disablement - // 39 tnr7_bc_1_2- inner node disablement - // 40 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 41 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 42 tnr7_blend_1_1- inner node disablement - // 43 odr_tnr_fp_yuvn_1_4- inner node disablement - // 44 tnr_scaler_fp_1_1- inner node disablement - // 45 image_upscaler_1_1- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - // 50 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 image_upscaler_1_1- inner node disablement + // 41 ifd_segmap_cas_1_4- inner node disablement + // 42 smurf_cas_1_0- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FD9D541F6811 + // RBM - 0x00000000000000000064019D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FD9D; - // DEB - 0x000000000000E13E79F0F9CE8DFBFFF1 - bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0x79F0F9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FC83F9F - bitmaps.teb[0] = 0x3FC83F9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x64019D; + // DEB - 0x000000000000E1E00000FFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0083F9F + bitmaps.teb[0] = 0xF0083F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -20797,10 +19386,10 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOpti } -void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 51; ++i) + for (uint8_t i = 0; i < 47; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -20850,7 +19439,7 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishO bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFF0078FFF00; + disabledRunKernelsBitmap[0] |= 0x7FFFFFC00300; break; } @@ -20870,7 +19459,7 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishO bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3E00000000000; + disabledRunKernelsBitmap[0] |= 0x7F0000000000; break; } @@ -20880,10 +19469,10 @@ void LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishO SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 55; ++i) + for (uint8_t i = 0; i < 51; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -20897,307 +19486,318 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOp if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD54016811 + // RBM - 0x0000000000000000006400BD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FFA009F - bitmaps.teb[0] = 0x3FFA009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F03A009F + bitmaps.teb[0] = 0xF03A009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; } else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD541F6811 + // RBM - 0x0000000000000000006400BD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8DBBF1F1 - bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FFA1E9F - bitmaps.teb[0] = 0x3FFA1E9F; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F03A1E9F + bitmaps.teb[0] = 0xF03A1E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xF00000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD54016811 + // RBM - 0x0000000000000000006400BD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E13E79FFF9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FFA009F - bitmaps.teb[0] = 0x3FFA009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F03A009F + bitmaps.teb[0] = 0xF03A009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FDBD541F6811 + // RBM - 0x0000000000000000004401BD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C13E79FFF9CE8DFBFFF1 - bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FFA3F9F - bitmaps.teb[0] = 0x2FFA3F9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x4401BD; + // DEB - 0x000000000000C1E0000FFFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E03A3F9F + bitmaps.teb[0] = 0xE03A3F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 51 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000000; + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD54016811 + // RBM - 0x0000000000000000004400BD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FFA009F - bitmaps.teb[0] = 0x2FFA009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E03A009F + bitmaps.teb[0] = 0xE03A009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000003FFC00; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD541F6811 + // RBM - 0x0000000000000000004400BD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8DBBF1F1 - bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FFA1E9F - bitmaps.teb[0] = 0x2FFA1E9F; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E03A1E9F + bitmaps.teb[0] = 0xE03A1E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000F00000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000003C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD54016811 + // RBM - 0x0000000000000000004400BD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C13E79FFF9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xC13E; - // TEB - 0x000000002FFA009F - bitmaps.teb[0] = 0x2FFA009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E03A009F + bitmaps.teb[0] = 0xE03A009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000003FFC00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD541F6811 + // RBM - 0x0000000000000000002401BD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x000000000000213E79FFF9CE8DFBFFF1 - bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FFA3F9F - bitmaps.teb[0] = 0x1FFA3F9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x2401BD; + // DEB - 0x00000000000021E0000FFFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D03A3F9F + bitmaps.teb[0] = 0xD03A3F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000000000; + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD54016811 + // RBM - 0x0000000000000000002400BD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FFA009F - bitmaps.teb[0] = 0x1FFA009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D03A009F + bitmaps.teb[0] = 0xD03A009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000003FFC00; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD541F6811 + // RBM - 0x0000000000000000002400BD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8DBBF1F1 - bitmaps.deb[0] = 0x8DBBF1F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FFA1E9F - bitmaps.teb[0] = 0x1FFA1E9F; - // REB - 0x00000000000000000000001FF2F6FFE7 - bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D03A1E9F + bitmaps.teb[0] = 0xD03A1E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F6FFE7 + bitmaps.reb[0] = 0x12F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000F00000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000003C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD54016811 + // RBM - 0x0000000000000000002400BD54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x000000000000213E79FFF9CE8DA001F1 - bitmaps.deb[0] = 0x8DA001F1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0x213E; - // TEB - 0x000000001FFA009F - bitmaps.teb[0] = 0x1FFA009F; - // REB - 0x00000000000000000000001FF2F687E7 - bitmaps.reb[0] = 0xF2F687E7; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x00000000000021E0000FFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D03A009F + bitmaps.teb[0] = 0xD03A009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F12F687E7 + bitmaps.reb[0] = 0x12F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000FF8700000; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000003FFC00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -21215,40 +19815,36 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOp // Kernels disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 tnr7_bc_1_2- inner node disablement - // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 46 tnr7_blend_1_1- inner node disablement - // 47 odr_tnr_fp_yuvn_1_4- inner node disablement - // 48 tnr_scaler_fp_1_1- inner node disablement - // 49 image_upscaler_1_1- inner node disablement - // 50 cas_1_1- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFF0078FFF00; + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 image_upscaler_1_1- inner node disablement + // 42 gmv_statistics_1_1- inner node disablement + // 43 odr_gmv_feature_1_4- inner node disablement + // 44 odr_gmv_match_1_4- inner node disablement + // 45 ifd_segmap_cas_1_4- inner node disablement + // 46 smurf_cas_1_0- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFC00300; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -21269,52 +19865,48 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOp // 7 lsc_1_2- inner node disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 tnr7_bc_1_2- inner node disablement - // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 46 tnr7_blend_1_1- inner node disablement - // 47 odr_tnr_fp_yuvn_1_4- inner node disablement - // 48 tnr_scaler_fp_1_1- inner node disablement - // 49 image_upscaler_1_1- inner node disablement - // 50 cas_1_1- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFF; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 image_upscaler_1_1- inner node disablement + // 42 gmv_statistics_1_1- inner node disablement + // 43 odr_gmv_feature_1_4- inner node disablement + // 44 odr_gmv_match_1_4- inner node disablement + // 45 ifd_segmap_cas_1_4- inner node disablement + // 46 smurf_cas_1_0- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -21332,44 +19924,40 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOp // Kernels disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 tnr7_bc_1_2- inner node disablement - // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 46 tnr7_blend_1_1- inner node disablement - // 47 odr_tnr_fp_yuvn_1_4- inner node disablement - // 48 tnr_scaler_fp_1_1- inner node disablement - // 49 image_upscaler_1_1- inner node disablement - // 50 cas_1_1- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFF078FFF00; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 image_upscaler_1_1- inner node disablement + // 42 gmv_statistics_1_1- inner node disablement + // 43 odr_gmv_feature_1_4- inner node disablement + // 44 odr_gmv_match_1_4- inner node disablement + // 45 ifd_segmap_cas_1_4- inner node disablement + // 46 smurf_cas_1_0- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFC0300; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) { @@ -21390,66 +19978,63 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOp // 7 lsc_1_2- inner node disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 10 bnlm_3_4- inner node disablement - // 11 bxt_demosaic- inner node disablement - // 12 vcsc_2_0_b- inner node disablement - // 13 gltm_2_0- inner node disablement - // 14 xnr_5_4- inner node disablement - // 15 vcr_3_1- inner node disablement - // 16 glim_2_0- inner node disablement - // 17 acm_1_2- inner node disablement - // 18 gammatm_v4- inner node disablement - // 19 csc_1_1- inner node disablement - // 20 rgbs_grid_1_1- inner node disablement - // 21 ccm_3a_2_0- inner node disablement - // 22 fr_grid_1_0- inner node disablement - // 23 b2i_ds_1_1- inner node disablement - // 24 lbff_crop_espa_1_4- inner node disablement - // 25 tnr7_spatial_1_1- inner node disablement - // 26 tnr_scaler_lb_1_1- inner node disablement - // 27 odr_awb_std_1_4- inner node disablement - // 28 odr_awb_sat_1_4- inner node disablement - // 29 aestatistics_2_1- inner node disablement - // 30 odr_ae_1_4- inner node disablement - // 31 odr_af_std_1_4- inner node disablement - // 32 ifd_pdaf_1_4- inner node disablement - // 33 pext_1_0- inner node disablement - // 34 pafstatistics_1_2- inner node disablement - // 35 odr_pdaf_1_4- inner node disablement - // 36 ifd_gmv_1_4- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - // 40 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 41 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 tnr7_bc_1_2- inner node disablement - // 44 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 45 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 46 tnr7_blend_1_1- inner node disablement - // 47 odr_tnr_fp_yuvn_1_4- inner node disablement - // 48 tnr_scaler_fp_1_1- inner node disablement - // 49 image_upscaler_1_1- inner node disablement - // 50 cas_1_1- inner node disablement - // 51 odr_ofs_mp_1_4- inner node disablement - // 52 b2i_ds_output_1_1- inner node disablement - // 53 odr_ofs_dp_1_4- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFF; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 image_upscaler_1_1- inner node disablement + // 42 gmv_statistics_1_1- inner node disablement + // 43 odr_gmv_feature_1_4- inner node disablement + // 44 odr_gmv_match_1_4- inner node disablement + // 45 ifd_segmap_cas_1_4- inner node disablement + // 46 smurf_cas_1_0- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FDBD541F6811 + // RBM - 0x0000000000000000006401BD541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E13E79FFF9CE8DFBFFF1 - bitmaps.deb[0] = 0x8DFBFFF1; - bitmaps.deb[1] = 0x79FFF9CE; - bitmaps.deb[2] = 0xE13E; - // TEB - 0x000000003FFA3F9F - bitmaps.teb[0] = 0x3FFA3F9F; - // REB - 0x00000000000000000000001FF6F7FFE7 - bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.rbm[1] = 0x6401BD; + // DEB - 0x000000000000E1E0000FFFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F03A3F9F + bitmaps.teb[0] = 0xF03A3F9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F16F7FFE7 + bitmaps.reb[0] = 0x16F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -21457,10 +20042,10 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOp } -void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 55; ++i) + for (uint8_t i = 0; i < 51; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -21510,7 +20095,7 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(Vanis bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFF0078FFF00; + disabledRunKernelsBitmap[0] |= 0x7FFFFFFC00300; break; } @@ -21530,7 +20115,7 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(Vanis bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3E000000000000; + disabledRunKernelsBitmap[0] |= 0x7E20000000000; break; } @@ -21540,10 +20125,10 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode::configVanishStatus(Vanis SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 67; ++i) + for (uint8_t i = 0; i < 63; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -21557,15 +20142,15 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD54016811 + // RBM - 0x00000000000000000067FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDA001F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEEDA001F1 bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFFA009F - bitmaps.teb[0] = 0xFFFA009F; + // TEB - 0x0000000FFFC8009F + bitmaps.teb[0] = 0xFFC8009F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F687E7 bitmaps.reb[0] = 0xF2F687E7; @@ -21589,15 +20174,15 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD541F6811 + // RBM - 0x00000000000000000067FC9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDBBF1F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEEDBBF1F1 bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFFA1E9F - bitmaps.teb[0] = 0xFFFA1E9F; + // TEB - 0x0000000FFFC81E9F + bitmaps.teb[0] = 0xFFC81E9F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F6FFE7 bitmaps.reb[0] = 0xF2F6FFE7; @@ -21613,15 +20198,15 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD54016811 + // RBM - 0x00000000000000000067FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDA001F1 + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEEDA001F1 bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFFA009F - bitmaps.teb[0] = 0xFFFA009F; + // TEB - 0x0000000FFFC8009F + bitmaps.teb[0] = 0xFFC8009F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F687E7 bitmaps.reb[0] = 0xF2F687E7; @@ -21645,36 +20230,36 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FDBD541F6811 + // RBM - 0x00000000000000000047FD9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FDBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDFBFFF1 + bitmaps.rbm[1] = 0x47FD9D; + // DEB - 0x000000000000C1FFFFF0FFFEEDFBFFF1 bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFFA3F9F - bitmaps.teb[0] = 0xEFFA3F9F; + // TEB - 0x0000000FEFC83F9F + bitmaps.teb[0] = 0xEFC83F9F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF6F7FFE7 bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 64 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[1] = 0x1; + // 60 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD54016811 + // RBM - 0x00000000000000000047FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDA001F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEEDA001F1 bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFFA009F - bitmaps.teb[0] = 0xEFFA009F; + // TEB - 0x0000000FEFC8009F + bitmaps.teb[0] = 0xEFC8009F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F687E7 bitmaps.reb[0] = 0xF2F687E7; @@ -21693,22 +20278,21 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; - disabledRunKernelsBitmap[1] = 0x1; + // 60 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000003FFC00; } else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD541F6811 + // RBM - 0x00000000000000000047FC9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDBBF1F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEEDBBF1F1 bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFFA1E9F - bitmaps.teb[0] = 0xEFFA1E9F; + // TEB - 0x0000000FEFC81E9F + bitmaps.teb[0] = 0xEFC81E9F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F6FFE7 bitmaps.reb[0] = 0xF2F6FFE7; @@ -21719,22 +20303,21 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C0000; - disabledRunKernelsBitmap[1] = 0x1; + // 60 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000003C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD54016811 + // RBM - 0x00000000000000000047FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEEDA001F1 + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEEDA001F1 bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFFA009F - bitmaps.teb[0] = 0xEFFA009F; + // TEB - 0x0000000FEFC8009F + bitmaps.teb[0] = 0xEFC8009F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F687E7 bitmaps.reb[0] = 0xF2F687E7; @@ -21753,44 +20336,43 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; - disabledRunKernelsBitmap[1] = 0x1; + // 60 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000003FFC00; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FDBD541F6811 + // RBM - 0x00000000000000000027FD9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FDBD; - // DEB - 0x00000000000021FFFFFFFFFEEDFBFFF1 + bitmaps.rbm[1] = 0x27FD9D; + // DEB - 0x00000000000021FFFFF0FFFEEDFBFFF1 bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFFA3F9F - bitmaps.teb[0] = 0xDFFA3F9F; + // TEB - 0x0000000FDFC83F9F + bitmaps.teb[0] = 0xDFC83F9F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF6F7FFE7 bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[1] = 0x6; + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD54016811 + // RBM - 0x00000000000000000027FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEEDA001F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEEDA001F1 bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFFA009F - bitmaps.teb[0] = 0xDFFA009F; + // TEB - 0x0000000FDFC8009F + bitmaps.teb[0] = 0xDFC8009F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F687E7 bitmaps.reb[0] = 0xF2F687E7; @@ -21809,23 +20391,22 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; - disabledRunKernelsBitmap[1] = 0x6; + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000003FFC00; } else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD541F6811 + // RBM - 0x00000000000000000027FC9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEEDBBF1F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEEDBBF1F1 bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFFA1E9F - bitmaps.teb[0] = 0xDFFA1E9F; + // TEB - 0x0000000FDFC81E9F + bitmaps.teb[0] = 0xDFC81E9F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F6FFE7 bitmaps.reb[0] = 0xF2F6FFE7; @@ -21836,23 +20417,22 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C0000; - disabledRunKernelsBitmap[1] = 0x6; + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000003C0000; } else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD54016811 + // RBM - 0x00000000000000000027FC9D54016811 bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEEDA001F1 + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEEDA001F1 bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFFA009F - bitmaps.teb[0] = 0xDFFA009F; + // TEB - 0x0000000FDFC8009F + bitmaps.teb[0] = 0xDFC8009F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF2F687E7 bitmaps.reb[0] = 0xF2F687E7; @@ -21871,10 +20451,9 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; - disabledRunKernelsBitmap[1] = 0x6; + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000003FFC00; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -21892,53 +20471,48 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // Kernels disablement // 8 gd_2_2- inner node disablement // 9 wb_1_1- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 26 ifd_segmap_bnlm_1_4- inner node disablement - // 27 smurf_bnlm_1_0- inner node disablement - // 28 bnlm_3_4- inner node disablement - // 29 bxt_demosaic- inner node disablement - // 30 vcsc_2_0_b- inner node disablement - // 31 gltm_2_0- inner node disablement - // 32 ifd_segmap_xnr_1_4- inner node disablement - // 33 smurf_xnr_1_0- inner node disablement - // 34 xnr_5_4- inner node disablement - // 35 vcr_3_1- inner node disablement - // 36 glim_2_0- inner node disablement - // 37 ifd_segmap_acm_1_4- inner node disablement - // 38 smurf_acm_1_0- inner node disablement - // 39 acm_1_2- inner node disablement - // 40 gammatm_v4- inner node disablement - // 41 csc_1_1- inner node disablement - // 42 b2i_ds_1_1- inner node disablement - // 43 lbff_crop_espa_1_4- inner node disablement - // 44 tnr7_spatial_1_1- inner node disablement - // 45 tnr_scaler_lb_1_1- inner node disablement - // 46 tnr7_ims_1_2- inner node disablement - // 47 gmv_statistics_1_1- inner node disablement - // 48 odr_gmv_feature_1_4- inner node disablement - // 49 odr_gmv_match_1_4- inner node disablement - // 50 ifd_segmap_tnr_bc_1_4- inner node disablement - // 51 smurf_tnr_bc_1_0- inner node disablement - // 52 tnr7_bc_1_2- inner node disablement - // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 54 ifd_segmap_tnr_blend_1_4- inner node disablement - // 55 smurf_tnr_blend_1_0- inner node disablement - // 56 tnr7_blend_1_1- inner node disablement - // 57 odr_tnr_fp_yuvn_1_4- inner node disablement - // 58 tnr_scaler_fp_1_1- inner node disablement - // 59 image_upscaler_1_1- inner node disablement - // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 61 ifd_segmap_cas_1_4- inner node disablement - // 62 smurf_cas_1_0- inner node disablement - // 63 cas_1_1- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFC00300; - disabledRunKernelsBitmap[1] = 0x7; + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 ifd_segmap_tnr_bc_1_4- inner node disablement + // 47 smurf_tnr_bc_1_0- inner node disablement + // 48 tnr7_bc_1_2- inner node disablement + // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 50 ifd_segmap_tnr_blend_1_4- inner node disablement + // 51 smurf_tnr_blend_1_0- inner node disablement + // 52 tnr7_blend_1_1- inner node disablement + // 53 odr_tnr_fp_yuvn_1_4- inner node disablement + // 54 tnr_scaler_fp_1_1- inner node disablement + // 55 image_upscaler_1_1- inner node disablement + // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 57 ifd_segmap_cas_1_4- inner node disablement + // 58 smurf_cas_1_0- inner node disablement + // 59 cas_1_1- inner node disablement + // 60 odr_ofs_mp_1_4- inner node disablement + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFC00300; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -21971,53 +20545,48 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 26 ifd_segmap_bnlm_1_4- inner node disablement - // 27 smurf_bnlm_1_0- inner node disablement - // 28 bnlm_3_4- inner node disablement - // 29 bxt_demosaic- inner node disablement - // 30 vcsc_2_0_b- inner node disablement - // 31 gltm_2_0- inner node disablement - // 32 ifd_segmap_xnr_1_4- inner node disablement - // 33 smurf_xnr_1_0- inner node disablement - // 34 xnr_5_4- inner node disablement - // 35 vcr_3_1- inner node disablement - // 36 glim_2_0- inner node disablement - // 37 ifd_segmap_acm_1_4- inner node disablement - // 38 smurf_acm_1_0- inner node disablement - // 39 acm_1_2- inner node disablement - // 40 gammatm_v4- inner node disablement - // 41 csc_1_1- inner node disablement - // 42 b2i_ds_1_1- inner node disablement - // 43 lbff_crop_espa_1_4- inner node disablement - // 44 tnr7_spatial_1_1- inner node disablement - // 45 tnr_scaler_lb_1_1- inner node disablement - // 46 tnr7_ims_1_2- inner node disablement - // 47 gmv_statistics_1_1- inner node disablement - // 48 odr_gmv_feature_1_4- inner node disablement - // 49 odr_gmv_match_1_4- inner node disablement - // 50 ifd_segmap_tnr_bc_1_4- inner node disablement - // 51 smurf_tnr_bc_1_0- inner node disablement - // 52 tnr7_bc_1_2- inner node disablement - // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 54 ifd_segmap_tnr_blend_1_4- inner node disablement - // 55 smurf_tnr_blend_1_0- inner node disablement - // 56 tnr7_blend_1_1- inner node disablement - // 57 odr_tnr_fp_yuvn_1_4- inner node disablement - // 58 tnr_scaler_fp_1_1- inner node disablement - // 59 image_upscaler_1_1- inner node disablement - // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 61 ifd_segmap_cas_1_4- inner node disablement - // 62 smurf_cas_1_0- inner node disablement - // 63 cas_1_1- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x7; + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 ifd_segmap_tnr_bc_1_4- inner node disablement + // 47 smurf_tnr_bc_1_0- inner node disablement + // 48 tnr7_bc_1_2- inner node disablement + // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 50 ifd_segmap_tnr_blend_1_4- inner node disablement + // 51 smurf_tnr_blend_1_0- inner node disablement + // 52 tnr7_blend_1_1- inner node disablement + // 53 odr_tnr_fp_yuvn_1_4- inner node disablement + // 54 tnr_scaler_fp_1_1- inner node disablement + // 55 image_upscaler_1_1- inner node disablement + // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 57 ifd_segmap_cas_1_4- inner node disablement + // 58 smurf_cas_1_0- inner node disablement + // 59 cas_1_1- inner node disablement + // 60 odr_ofs_mp_1_4- inner node disablement + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFFFF; } else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) { @@ -22039,144 +20608,134 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode // 19 pext_1_0- inner node disablement // 20 pafstatistics_1_2- inner node disablement // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 26 ifd_segmap_bnlm_1_4- inner node disablement - // 27 smurf_bnlm_1_0- inner node disablement - // 28 bnlm_3_4- inner node disablement - // 29 bxt_demosaic- inner node disablement - // 30 vcsc_2_0_b- inner node disablement - // 31 gltm_2_0- inner node disablement - // 32 ifd_segmap_xnr_1_4- inner node disablement - // 33 smurf_xnr_1_0- inner node disablement - // 34 xnr_5_4- inner node disablement - // 35 vcr_3_1- inner node disablement - // 36 glim_2_0- inner node disablement - // 37 ifd_segmap_acm_1_4- inner node disablement - // 38 smurf_acm_1_0- inner node disablement - // 39 acm_1_2- inner node disablement - // 40 gammatm_v4- inner node disablement - // 41 csc_1_1- inner node disablement - // 42 b2i_ds_1_1- inner node disablement - // 43 lbff_crop_espa_1_4- inner node disablement - // 44 tnr7_spatial_1_1- inner node disablement - // 45 tnr_scaler_lb_1_1- inner node disablement - // 46 tnr7_ims_1_2- inner node disablement - // 47 gmv_statistics_1_1- inner node disablement - // 48 odr_gmv_feature_1_4- inner node disablement - // 49 odr_gmv_match_1_4- inner node disablement - // 50 ifd_segmap_tnr_bc_1_4- inner node disablement - // 51 smurf_tnr_bc_1_0- inner node disablement - // 52 tnr7_bc_1_2- inner node disablement - // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 54 ifd_segmap_tnr_blend_1_4- inner node disablement - // 55 smurf_tnr_blend_1_0- inner node disablement - // 56 tnr7_blend_1_1- inner node disablement - // 57 odr_tnr_fp_yuvn_1_4- inner node disablement - // 58 tnr_scaler_fp_1_1- inner node disablement - // 59 image_upscaler_1_1- inner node disablement - // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 61 ifd_segmap_cas_1_4- inner node disablement - // 62 smurf_cas_1_0- inner node disablement - // 63 cas_1_1- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFC0300; - disabledRunKernelsBitmap[1] = 0x7; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 26 ifd_segmap_bnlm_1_4- inner node disablement - // 27 smurf_bnlm_1_0- inner node disablement - // 28 bnlm_3_4- inner node disablement - // 29 bxt_demosaic- inner node disablement - // 30 vcsc_2_0_b- inner node disablement - // 31 gltm_2_0- inner node disablement - // 32 ifd_segmap_xnr_1_4- inner node disablement - // 33 smurf_xnr_1_0- inner node disablement - // 34 xnr_5_4- inner node disablement - // 35 vcr_3_1- inner node disablement - // 36 glim_2_0- inner node disablement - // 37 ifd_segmap_acm_1_4- inner node disablement - // 38 smurf_acm_1_0- inner node disablement - // 39 acm_1_2- inner node disablement - // 40 gammatm_v4- inner node disablement - // 41 csc_1_1- inner node disablement - // 42 b2i_ds_1_1- inner node disablement - // 43 lbff_crop_espa_1_4- inner node disablement - // 44 tnr7_spatial_1_1- inner node disablement - // 45 tnr_scaler_lb_1_1- inner node disablement - // 46 tnr7_ims_1_2- inner node disablement - // 47 gmv_statistics_1_1- inner node disablement - // 48 odr_gmv_feature_1_4- inner node disablement - // 49 odr_gmv_match_1_4- inner node disablement - // 50 ifd_segmap_tnr_bc_1_4- inner node disablement - // 51 smurf_tnr_bc_1_0- inner node disablement - // 52 tnr7_bc_1_2- inner node disablement - // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 54 ifd_segmap_tnr_blend_1_4- inner node disablement - // 55 smurf_tnr_blend_1_0- inner node disablement - // 56 tnr7_blend_1_1- inner node disablement - // 57 odr_tnr_fp_yuvn_1_4- inner node disablement - // 58 tnr_scaler_fp_1_1- inner node disablement - // 59 image_upscaler_1_1- inner node disablement - // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 61 ifd_segmap_cas_1_4- inner node disablement - // 62 smurf_cas_1_0- inner node disablement - // 63 cas_1_1- inner node disablement - // 64 odr_ofs_mp_1_4- inner node disablement - // 65 b2i_ds_output_1_1- inner node disablement - // 66 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x7; + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 ifd_segmap_tnr_bc_1_4- inner node disablement + // 47 smurf_tnr_bc_1_0- inner node disablement + // 48 tnr7_bc_1_2- inner node disablement + // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 50 ifd_segmap_tnr_blend_1_4- inner node disablement + // 51 smurf_tnr_blend_1_0- inner node disablement + // 52 tnr7_blend_1_1- inner node disablement + // 53 odr_tnr_fp_yuvn_1_4- inner node disablement + // 54 tnr_scaler_fp_1_1- inner node disablement + // 55 image_upscaler_1_1- inner node disablement + // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 57 ifd_segmap_cas_1_4- inner node disablement + // 58 smurf_cas_1_0- inner node disablement + // 59 cas_1_1- inner node disablement + // 60 odr_ofs_mp_1_4- inner node disablement + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFC0300; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 ifd_segmap_tnr_bc_1_4- inner node disablement + // 47 smurf_tnr_bc_1_0- inner node disablement + // 48 tnr7_bc_1_2- inner node disablement + // 49 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 50 ifd_segmap_tnr_blend_1_4- inner node disablement + // 51 smurf_tnr_blend_1_0- inner node disablement + // 52 tnr7_blend_1_1- inner node disablement + // 53 odr_tnr_fp_yuvn_1_4- inner node disablement + // 54 tnr_scaler_fp_1_1- inner node disablement + // 55 image_upscaler_1_1- inner node disablement + // 56 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 57 ifd_segmap_cas_1_4- inner node disablement + // 58 smurf_cas_1_0- inner node disablement + // 59 cas_1_1- inner node disablement + // 60 odr_ofs_mp_1_4- inner node disablement + // 61 b2i_ds_output_1_1- inner node disablement + // 62 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FDBD541F6811 + // RBM - 0x00000000000000000067FD9D541F6811 bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x67FDBD; - // DEB - 0x000000000000E1FFFFFFFFFEEDFBFFF1 + bitmaps.rbm[1] = 0x67FD9D; + // DEB - 0x000000000000E1FFFFF0FFFEEDFBFFF1 bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[1] = 0xFFF0FFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFFA3F9F - bitmaps.teb[0] = 0xFFFA3F9F; + // TEB - 0x0000000FFFC83F9F + bitmaps.teb[0] = 0xFFC83F9F; bitmaps.teb[1] = 0xF; // REB - 0x00000000000000000000001FF6F7FFE7 bitmaps.reb[0] = 0xF6F7FFE7; @@ -22187,10 +20746,10 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNode } -void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 67; ++i) + for (uint8_t i = 0; i < 63; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -22240,8 +20799,7 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(Van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFC00300; - disabledRunKernelsBitmap[1] |= 0x7; + disabledRunKernelsBitmap[0] |= 0x7FFFFFFFFFC00300; break; } @@ -22261,8 +20819,7 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(Van bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xE800000000000000; - disabledRunKernelsBitmap[1] |= 0x7; + disabledRunKernelsBitmap[0] |= 0x7E80000000000000; break; } @@ -22272,260 +20829,646 @@ void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(Van SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 42; ++i) + for (uint8_t i = 0; i < 67; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F000009F - bitmaps.teb[0] = 0xF000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000067FCBD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFFA009F + bitmaps.teb[0] = 0xFFFA009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FE00; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000044009D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0001E9F - bitmaps.teb[0] = 0xE0001E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000067FCBD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFFA1E9F + bitmaps.teb[0] = 0xFFFA1E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 39 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C0000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E000009F - bitmaps.teb[0] = 0xE000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000067FCBD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFFA009F + bitmaps.teb[0] = 0xFFFA009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 39 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800001FE00; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0001E9F - bitmaps.teb[0] = 0xD0001E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000047FDBD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFFA3F9F + bitmaps.teb[0] = 0xEFFA3F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 40 b2i_ds_output_1_1- inner node disablement - // 41 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000000000; + // 64 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[1] = 0x1; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D000009F - bitmaps.teb[0] = 0xD000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000047FCBD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFFA009F + bitmaps.teb[0] = 0xEFFA009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 40 b2i_ds_output_1_1- inner node disablement - // 41 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000001FE00; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; + disabledRunKernelsBitmap[1] = 0x1; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; + // RBM - 0x00000000000000000047FCBD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFFA1E9F + bitmaps.teb[0] = 0xEFFA1E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 17 ifd_segmap_bnlm_1_4- inner node disablement - // 18 smurf_bnlm_1_0- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 ifd_segmap_xnr_1_4- inner node disablement - // 24 smurf_xnr_1_0- inner node disablement - // 25 xnr_5_4- inner node disablement - // 26 vcr_3_1- inner node disablement - // 27 glim_2_0- inner node disablement - // 28 ifd_segmap_acm_1_4- inner node disablement - // 29 smurf_acm_1_0- inner node disablement - // 30 acm_1_2- inner node disablement - // 31 gammatm_v4- inner node disablement - // 32 csc_1_1- inner node disablement - // 33 b2i_ds_1_1- inner node disablement - // 34 lbff_crop_espa_1_4- inner node disablement - // 35 image_upscaler_1_1- inner node disablement - // 36 ifd_segmap_cas_1_4- inner node disablement - // 37 smurf_cas_1_0- inner node disablement - // 38 cas_1_1- inner node disablement - // 39 odr_ofs_mp_1_4- inner node disablement - // 40 b2i_ds_output_1_1- inner node disablement - // 41 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFE0180; + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C0000; + disabledRunKernelsBitmap[1] = 0x1; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + // RBM - 0x00000000000000000047FCBD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFFA009F + bitmaps.teb[0] = 0xEFFA009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_segmap_bnlm_1_4- inner node disablement - // 18 smurf_bnlm_1_0- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 ifd_segmap_xnr_1_4- inner node disablement - // 24 smurf_xnr_1_0- inner node disablement - // 25 xnr_5_4- inner node disablement - // 26 vcr_3_1- inner node disablement - // 27 glim_2_0- inner node disablement - // 28 ifd_segmap_acm_1_4- inner node disablement - // 29 smurf_acm_1_0- inner node disablement - // 30 acm_1_2- inner node disablement - // 31 gammatm_v4- inner node disablement - // 32 csc_1_1- inner node disablement - // 33 b2i_ds_1_1- inner node disablement - // 34 lbff_crop_espa_1_4- inner node disablement - // 35 image_upscaler_1_1- inner node disablement - // 36 ifd_segmap_cas_1_4- inner node disablement - // 37 smurf_cas_1_0- inner node disablement - // 38 cas_1_1- inner node disablement - // 39 odr_ofs_mp_1_4- inner node disablement - // 40 b2i_ds_output_1_1- inner node disablement - // 41 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; + disabledRunKernelsBitmap[1] = 0x1; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FDBD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x00000000000021FFFFFFFFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFFA3F9F + bitmaps.teb[0] = 0xDFFA3F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[1] = 0x6; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCBD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFFA009F + bitmaps.teb[0] = 0xDFFA009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; + disabledRunKernelsBitmap[1] = 0x6; + } + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCBD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEEDBBF1F1 + bitmaps.deb[0] = 0xEDBBF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFFA1E9F + bitmaps.teb[0] = 0xDFFA1E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F6FFE7 + bitmaps.reb[0] = 0xF2F6FFE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3C0000; + disabledRunKernelsBitmap[1] = 0x6; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCBD54016811 + bitmaps.rbm[0] = 0x54016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEEDA001F1 + bitmaps.deb[0] = 0xEDA001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFFA009F + bitmaps.teb[0] = 0xDFFA009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F687E7 + bitmaps.reb[0] = 0xF2F687E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFC00; + disabledRunKernelsBitmap[1] = 0x6; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000180041E6811 + bitmaps.rbm[0] = 0x41E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001FBFFF1 + bitmaps.deb[0] = 0x1FBFFF1; + // TEB - 0x0000000000083F97 + bitmaps.teb[0] = 0x83F97; + // REB - 0x0000000000000000000000000601FFE7 + bitmaps.reb[0] = 0x601FFE7; + + // Kernels disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 26 ifd_segmap_bnlm_1_4- inner node disablement + // 27 smurf_bnlm_1_0- inner node disablement + // 28 bnlm_3_4- inner node disablement + // 29 bxt_demosaic- inner node disablement + // 30 vcsc_2_0_b- inner node disablement + // 31 gltm_2_0- inner node disablement + // 32 ifd_segmap_xnr_1_4- inner node disablement + // 33 smurf_xnr_1_0- inner node disablement + // 34 xnr_5_4- inner node disablement + // 35 vcr_3_1- inner node disablement + // 36 glim_2_0- inner node disablement + // 37 ifd_segmap_acm_1_4- inner node disablement + // 38 smurf_acm_1_0- inner node disablement + // 39 acm_1_2- inner node disablement + // 40 gammatm_v4- inner node disablement + // 41 csc_1_1- inner node disablement + // 42 b2i_ds_1_1- inner node disablement + // 43 lbff_crop_espa_1_4- inner node disablement + // 44 tnr7_spatial_1_1- inner node disablement + // 45 tnr_scaler_lb_1_1- inner node disablement + // 46 tnr7_ims_1_2- inner node disablement + // 47 gmv_statistics_1_1- inner node disablement + // 48 odr_gmv_feature_1_4- inner node disablement + // 49 odr_gmv_match_1_4- inner node disablement + // 50 ifd_segmap_tnr_bc_1_4- inner node disablement + // 51 smurf_tnr_bc_1_0- inner node disablement + // 52 tnr7_bc_1_2- inner node disablement + // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 54 ifd_segmap_tnr_blend_1_4- inner node disablement + // 55 smurf_tnr_blend_1_0- inner node disablement + // 56 tnr7_blend_1_1- inner node disablement + // 57 odr_tnr_fp_yuvn_1_4- inner node disablement + // 58 tnr_scaler_fp_1_1- inner node disablement + // 59 image_upscaler_1_1- inner node disablement + // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 61 ifd_segmap_cas_1_4- inner node disablement + // 62 smurf_cas_1_0- inner node disablement + // 63 cas_1_1- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFC00300; + disabledRunKernelsBitmap[1] = 0x7; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 26 ifd_segmap_bnlm_1_4- inner node disablement + // 27 smurf_bnlm_1_0- inner node disablement + // 28 bnlm_3_4- inner node disablement + // 29 bxt_demosaic- inner node disablement + // 30 vcsc_2_0_b- inner node disablement + // 31 gltm_2_0- inner node disablement + // 32 ifd_segmap_xnr_1_4- inner node disablement + // 33 smurf_xnr_1_0- inner node disablement + // 34 xnr_5_4- inner node disablement + // 35 vcr_3_1- inner node disablement + // 36 glim_2_0- inner node disablement + // 37 ifd_segmap_acm_1_4- inner node disablement + // 38 smurf_acm_1_0- inner node disablement + // 39 acm_1_2- inner node disablement + // 40 gammatm_v4- inner node disablement + // 41 csc_1_1- inner node disablement + // 42 b2i_ds_1_1- inner node disablement + // 43 lbff_crop_espa_1_4- inner node disablement + // 44 tnr7_spatial_1_1- inner node disablement + // 45 tnr_scaler_lb_1_1- inner node disablement + // 46 tnr7_ims_1_2- inner node disablement + // 47 gmv_statistics_1_1- inner node disablement + // 48 odr_gmv_feature_1_4- inner node disablement + // 49 odr_gmv_match_1_4- inner node disablement + // 50 ifd_segmap_tnr_bc_1_4- inner node disablement + // 51 smurf_tnr_bc_1_0- inner node disablement + // 52 tnr7_bc_1_2- inner node disablement + // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 54 ifd_segmap_tnr_blend_1_4- inner node disablement + // 55 smurf_tnr_blend_1_0- inner node disablement + // 56 tnr7_blend_1_1- inner node disablement + // 57 odr_tnr_fp_yuvn_1_4- inner node disablement + // 58 tnr_scaler_fp_1_1- inner node disablement + // 59 image_upscaler_1_1- inner node disablement + // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 61 ifd_segmap_cas_1_4- inner node disablement + // 62 smurf_cas_1_0- inner node disablement + // 63 cas_1_1- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x7; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000080041E6811 + bitmaps.rbm[0] = 0x41E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x00000000000000000000000001BBF1F1 + bitmaps.deb[0] = 0x1BBF1F1; + // TEB - 0x0000000000081E97 + bitmaps.teb[0] = 0x81E97; + // REB - 0x0000000000000000000000000200FFE7 + bitmaps.reb[0] = 0x200FFE7; + + // Kernels disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 26 ifd_segmap_bnlm_1_4- inner node disablement + // 27 smurf_bnlm_1_0- inner node disablement + // 28 bnlm_3_4- inner node disablement + // 29 bxt_demosaic- inner node disablement + // 30 vcsc_2_0_b- inner node disablement + // 31 gltm_2_0- inner node disablement + // 32 ifd_segmap_xnr_1_4- inner node disablement + // 33 smurf_xnr_1_0- inner node disablement + // 34 xnr_5_4- inner node disablement + // 35 vcr_3_1- inner node disablement + // 36 glim_2_0- inner node disablement + // 37 ifd_segmap_acm_1_4- inner node disablement + // 38 smurf_acm_1_0- inner node disablement + // 39 acm_1_2- inner node disablement + // 40 gammatm_v4- inner node disablement + // 41 csc_1_1- inner node disablement + // 42 b2i_ds_1_1- inner node disablement + // 43 lbff_crop_espa_1_4- inner node disablement + // 44 tnr7_spatial_1_1- inner node disablement + // 45 tnr_scaler_lb_1_1- inner node disablement + // 46 tnr7_ims_1_2- inner node disablement + // 47 gmv_statistics_1_1- inner node disablement + // 48 odr_gmv_feature_1_4- inner node disablement + // 49 odr_gmv_match_1_4- inner node disablement + // 50 ifd_segmap_tnr_bc_1_4- inner node disablement + // 51 smurf_tnr_bc_1_0- inner node disablement + // 52 tnr7_bc_1_2- inner node disablement + // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 54 ifd_segmap_tnr_blend_1_4- inner node disablement + // 55 smurf_tnr_blend_1_0- inner node disablement + // 56 tnr7_blend_1_1- inner node disablement + // 57 odr_tnr_fp_yuvn_1_4- inner node disablement + // 58 tnr_scaler_fp_1_1- inner node disablement + // 59 image_upscaler_1_1- inner node disablement + // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 61 ifd_segmap_cas_1_4- inner node disablement + // 62 smurf_cas_1_0- inner node disablement + // 63 cas_1_1- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFC0300; + disabledRunKernelsBitmap[1] = 0x7; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 odr_dpc_pdaf_1_4- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 ifd_lsc_1_4- inner node disablement + // 7 lsc_1_2- inner node disablement + // 8 gd_2_2- inner node disablement + // 9 wb_1_1- inner node disablement + // 10 rgbs_grid_1_1- inner node disablement + // 11 ccm_3a_2_0- inner node disablement + // 12 fr_grid_1_0- inner node disablement + // 13 odr_awb_std_1_4- inner node disablement + // 14 odr_awb_sat_1_4- inner node disablement + // 15 aestatistics_2_1- inner node disablement + // 16 odr_ae_1_4- inner node disablement + // 17 odr_af_std_1_4- inner node disablement + // 18 ifd_pdaf_1_4- inner node disablement + // 19 pext_1_0- inner node disablement + // 20 pafstatistics_1_2- inner node disablement + // 21 odr_pdaf_1_4- inner node disablement + // 22 ifd_gmv_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 24 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 25 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 26 ifd_segmap_bnlm_1_4- inner node disablement + // 27 smurf_bnlm_1_0- inner node disablement + // 28 bnlm_3_4- inner node disablement + // 29 bxt_demosaic- inner node disablement + // 30 vcsc_2_0_b- inner node disablement + // 31 gltm_2_0- inner node disablement + // 32 ifd_segmap_xnr_1_4- inner node disablement + // 33 smurf_xnr_1_0- inner node disablement + // 34 xnr_5_4- inner node disablement + // 35 vcr_3_1- inner node disablement + // 36 glim_2_0- inner node disablement + // 37 ifd_segmap_acm_1_4- inner node disablement + // 38 smurf_acm_1_0- inner node disablement + // 39 acm_1_2- inner node disablement + // 40 gammatm_v4- inner node disablement + // 41 csc_1_1- inner node disablement + // 42 b2i_ds_1_1- inner node disablement + // 43 lbff_crop_espa_1_4- inner node disablement + // 44 tnr7_spatial_1_1- inner node disablement + // 45 tnr_scaler_lb_1_1- inner node disablement + // 46 tnr7_ims_1_2- inner node disablement + // 47 gmv_statistics_1_1- inner node disablement + // 48 odr_gmv_feature_1_4- inner node disablement + // 49 odr_gmv_match_1_4- inner node disablement + // 50 ifd_segmap_tnr_bc_1_4- inner node disablement + // 51 smurf_tnr_bc_1_0- inner node disablement + // 52 tnr7_bc_1_2- inner node disablement + // 53 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 54 ifd_segmap_tnr_blend_1_4- inner node disablement + // 55 smurf_tnr_blend_1_0- inner node disablement + // 56 tnr7_blend_1_1- inner node disablement + // 57 odr_tnr_fp_yuvn_1_4- inner node disablement + // 58 tnr_scaler_fp_1_1- inner node disablement + // 59 image_upscaler_1_1- inner node disablement + // 60 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 61 ifd_segmap_cas_1_4- inner node disablement + // 62 smurf_cas_1_0- inner node disablement + // 63 cas_1_1- inner node disablement + // 64 odr_ofs_mp_1_4- inner node disablement + // 65 b2i_ds_output_1_1- inner node disablement + // 66 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x7; } else // default inner node { - // RBM - 0x00000000000000000064009D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0001E9F - bitmaps.teb[0] = 0xF0001E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000067FDBD541F6811 + bitmaps.rbm[0] = 0x541F6811; + bitmaps.rbm[1] = 0x67FDBD; + // DEB - 0x000000000000E1FFFFFFFFFEEDFBFFF1 + bitmaps.deb[0] = 0xEDFBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFFA3F9F + bitmaps.teb[0] = 0xFFFA3F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F7FFE7 + bitmaps.reb[0] = 0xF6F7FFE7; bitmaps.reb[1] = 0x1F; } @@ -22533,16 +21476,16 @@ void LbffBayerNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod } -void LbffBayerNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 42; ++i) + for (uint8_t i = 0; i < 67; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -22586,7 +21529,8 @@ void LbffBayerNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFE0180; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFC00300; + disabledRunKernelsBitmap[1] |= 0x7; break; } @@ -22606,7 +21550,8 @@ void LbffBayerNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F800000000; + disabledRunKernelsBitmap[0] |= 0xE800000000000000; + disabledRunKernelsBitmap[1] |= 0x7; break; } @@ -22616,196 +21561,284 @@ void LbffBayerNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanish SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDolSmoothOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 46; ++i) + for (uint8_t i = 0; i < 8; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + // RBM - 0x0000000000000000000000025001A011 + bitmaps.rbm[0] = 0x5001A011; + bitmaps.rbm[1] = 0x2; + // DEB - 0x0000000000000000000000018C000131 + bitmaps.deb[0] = 0x8C000131; + bitmaps.deb[1] = 0x1; + // TEB - 0x0000000000010017 + bitmaps.teb[0] = 0x10017; + // REB - 0x00000000000000000000000000160787 + bitmaps.reb[0] = 0x160787; + // No inner nodes + (void)nodeInnerOptions; +} - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) +void LbffDolSmoothOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 8; ++i) { - // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F032009F - bitmaps.teb[0] = 0xF032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; - bitmaps.reb[1] = 0x1F; + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0xF0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 38; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000064009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000300000FF + bitmaps.teb[0] = 0x300000FF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2020007D80; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0321E9F - bitmaps.teb[0] = 0xE0321E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000044009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020041EFF + bitmaps.teb[0] = 0x20041EFF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000000; + // 34 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E032009F - bitmaps.teb[0] = 0xE032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000044009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000200000FF + bitmaps.teb[0] = 0x200000FF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000001FE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_ofs_mp_1_4- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2420007D80; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0321E9F - bitmaps.teb[0] = 0xD0321E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000024009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010041EFF + bitmaps.teb[0] = 0x10041EFF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x300000000000; + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D032009F - bitmaps.teb[0] = 0xD032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000024009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000100000FF + bitmaps.teb[0] = 0x100000FF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000001FE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3820007D80; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 17 ifd_gmv_1_4- inner node disablement - // 18 ifd_segmap_bnlm_1_4- inner node disablement - // 19 smurf_bnlm_1_0- inner node disablement - // 20 bnlm_3_4- inner node disablement - // 21 bxt_demosaic- inner node disablement - // 22 vcsc_2_0_b- inner node disablement - // 23 gltm_2_0- inner node disablement - // 24 ifd_segmap_xnr_1_4- inner node disablement - // 25 smurf_xnr_1_0- inner node disablement - // 26 xnr_5_4- inner node disablement - // 27 vcr_3_1- inner node disablement - // 28 glim_2_0- inner node disablement - // 29 ifd_segmap_acm_1_4- inner node disablement - // 30 smurf_acm_1_0- inner node disablement - // 31 acm_1_2- inner node disablement - // 32 gammatm_v4- inner node disablement - // 33 csc_1_1- inner node disablement - // 34 b2i_ds_1_1- inner node disablement - // 35 lbff_crop_espa_1_4- inner node disablement - // 36 image_upscaler_1_1- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFE0180; + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 image_upscaler_1_1- inner node disablement + // 33 cas_1_1- inner node disablement + // 34 odr_ofs_mp_1_4- inner node disablement + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FDFFE0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -22817,67 +21850,58 @@ void LbffBayerWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_gmv_1_4- inner node disablement - // 18 ifd_segmap_bnlm_1_4- inner node disablement - // 19 smurf_bnlm_1_0- inner node disablement - // 20 bnlm_3_4- inner node disablement - // 21 bxt_demosaic- inner node disablement - // 22 vcsc_2_0_b- inner node disablement - // 23 gltm_2_0- inner node disablement - // 24 ifd_segmap_xnr_1_4- inner node disablement - // 25 smurf_xnr_1_0- inner node disablement - // 26 xnr_5_4- inner node disablement - // 27 vcr_3_1- inner node disablement - // 28 glim_2_0- inner node disablement - // 29 ifd_segmap_acm_1_4- inner node disablement - // 30 smurf_acm_1_0- inner node disablement - // 31 acm_1_2- inner node disablement - // 32 gammatm_v4- inner node disablement - // 33 csc_1_1- inner node disablement - // 34 b2i_ds_1_1- inner node disablement - // 35 lbff_crop_espa_1_4- inner node disablement - // 36 image_upscaler_1_1- inner node disablement - // 37 gmv_statistics_1_1- inner node disablement - // 38 odr_gmv_feature_1_4- inner node disablement - // 39 odr_gmv_match_1_4- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 image_upscaler_1_1- inner node disablement + // 33 cas_1_1- inner node disablement + // 34 odr_ofs_mp_1_4- inner node disablement + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0321E9F - bitmaps.teb[0] = 0xF0321E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000064009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030041EFF + bitmaps.teb[0] = 0x30041EFF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; } @@ -22885,16 +21909,17 @@ void LbffBayerWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffBayerWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol3InputsNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 46; ++i) + for (uint8_t i = 0; i < 38; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -22938,7 +21963,7 @@ void LbffBayerWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFE0180; + disabledRunKernelsBitmap[0] |= 0x1FDFFE0000; break; } @@ -22958,7 +21983,7 @@ void LbffBayerWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F1000000000; + disabledRunKernelsBitmap[0] |= 0x1F00000000; break; } @@ -22968,16 +21993,17 @@ void LbffBayerWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerNoGmvWithTnrWithOpacityOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 42; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -22985,183 +22011,169 @@ void LbffBayerNoGmvWithTnrWithOpacityOuterNode::setInnerNode(InnerNodeOptionsFla if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13FFFF0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFFF0F9CE; - bitmaps.deb[2] = 0xE13F; - // TEB - 0x000000063FC0009F - bitmaps.teb[0] = 0x3FC0009F; - bitmaps.teb[1] = 0x6; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + // RBM - 0x0000000000000000006400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x00000000303200FF + bitmaps.teb[0] = 0x303200FF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C380000; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2020007D80; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13FFFF0F9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFFF0F9CE; - bitmaps.deb[2] = 0xC13F; - // TEB - 0x000000062FC01E9F - bitmaps.teb[0] = 0x2FC01E9F; - bitmaps.teb[1] = 0x6; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + // RBM - 0x0000000000000000004400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020361EFF + bitmaps.teb[0] = 0x20361EFF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000; + // 34 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C13FFFF0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFFF0F9CE; - bitmaps.deb[2] = 0xC13F; - // TEB - 0x000000062FC0009F - bitmaps.teb[0] = 0x2FC0009F; - bitmaps.teb[1] = 0x6; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + // RBM - 0x0000000000000000004400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x00000000203200FF + bitmaps.teb[0] = 0x203200FF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40007C380000; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_ofs_mp_1_4- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2420007D80; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213FFFF0F9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFFF0F9CE; - bitmaps.deb[2] = 0x213F; - // TEB - 0x000000061FC01E9F - bitmaps.teb[0] = 0x1FC01E9F; - bitmaps.teb[1] = 0x6; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + // RBM - 0x0000000000000000002400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010361EFF + bitmaps.teb[0] = 0x10361EFF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000; + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x000000000000213FFFF0F9CE8D8001F1 - bitmaps.deb[0] = 0x8D8001F1; - bitmaps.deb[1] = 0xFFF0F9CE; - bitmaps.deb[2] = 0x213F; - // TEB - 0x000000061FC0009F - bitmaps.teb[0] = 0x1FC0009F; - bitmaps.teb[1] = 0x6; - // REB - 0x00000000000000000000001FF2F607E7 - bitmaps.reb[0] = 0xF2F607E7; + // RBM - 0x0000000000000000002400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x00000000103200FF + bitmaps.teb[0] = 0x103200FF; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180007C380000; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3820007D80; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 bnlm_3_4- inner node disablement - // 10 bxt_demosaic- inner node disablement - // 11 vcsc_2_0_b- inner node disablement - // 12 gltm_2_0- inner node disablement - // 13 xnr_5_4- inner node disablement - // 14 vcr_3_1- inner node disablement - // 15 glim_2_0- inner node disablement - // 16 acm_1_2- inner node disablement - // 17 gammatm_v4- inner node disablement - // 18 csc_1_1- inner node disablement - // 22 b2i_ds_1_1- inner node disablement - // 23 lbff_crop_espa_1_4- inner node disablement - // 24 tnr7_spatial_1_1- inner node disablement - // 25 tnr_scaler_lb_1_1- inner node disablement - // 31 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 32 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 33 tnr7_ims_1_2- inner node disablement - // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 35 ifd_segmap_tnr_bc_1_4- inner node disablement - // 36 smurf_tnr_bc_1_0- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_segmap_tnr_blend_1_4- inner node disablement - // 40 smurf_tnr_blend_1_0- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFF83C7FF80; + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 image_upscaler_1_1- inner node disablement + // 33 cas_1_1- inner node disablement + // 34 odr_ofs_mp_1_4- inner node disablement + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + // 38 ifd_gmv_1_4- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3DFDFFE0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -23173,71 +22185,62 @@ void LbffBayerNoGmvWithTnrWithOpacityOuterNode::setInnerNode(InnerNodeOptionsFla // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 bnlm_3_4- inner node disablement - // 10 bxt_demosaic- inner node disablement - // 11 vcsc_2_0_b- inner node disablement - // 12 gltm_2_0- inner node disablement - // 13 xnr_5_4- inner node disablement - // 14 vcr_3_1- inner node disablement - // 15 glim_2_0- inner node disablement - // 16 acm_1_2- inner node disablement - // 17 gammatm_v4- inner node disablement - // 18 csc_1_1- inner node disablement - // 19 rgbs_grid_1_1- inner node disablement - // 20 ccm_3a_2_0- inner node disablement - // 21 fr_grid_1_0- inner node disablement - // 22 b2i_ds_1_1- inner node disablement - // 23 lbff_crop_espa_1_4- inner node disablement - // 24 tnr7_spatial_1_1- inner node disablement - // 25 tnr_scaler_lb_1_1- inner node disablement - // 26 odr_awb_std_1_4- inner node disablement - // 27 odr_awb_sat_1_4- inner node disablement - // 28 aestatistics_2_1- inner node disablement - // 29 odr_ae_1_4- inner node disablement - // 30 odr_af_std_1_4- inner node disablement - // 31 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 32 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 33 tnr7_ims_1_2- inner node disablement - // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 35 ifd_segmap_tnr_bc_1_4- inner node disablement - // 36 smurf_tnr_bc_1_0- inner node disablement - // 37 tnr7_bc_1_2- inner node disablement - // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 39 ifd_segmap_tnr_blend_1_4- inner node disablement - // 40 smurf_tnr_blend_1_0- inner node disablement - // 41 tnr7_blend_1_1- inner node disablement - // 42 odr_tnr_fp_yuvn_1_4- inner node disablement - // 43 tnr_scaler_fp_1_1- inner node disablement - // 44 image_upscaler_1_1- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 image_upscaler_1_1- inner node disablement + // 33 cas_1_1- inner node disablement + // 34 odr_ofs_mp_1_4- inner node disablement + // 35 b2i_ds_output_1_1- inner node disablement + // 36 odr_ofs_dp_1_4- inner node disablement + // 37 odr_af_std_1_4- inner node disablement + // 38 ifd_gmv_1_4- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC9D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E13FFFF0F9CE8D9BF1F1 - bitmaps.deb[0] = 0x8D9BF1F1; - bitmaps.deb[1] = 0xFFF0F9CE; - bitmaps.deb[2] = 0xE13F; - // TEB - 0x000000063FC01E9F - bitmaps.teb[0] = 0x3FC01E9F; - bitmaps.teb[1] = 0x6; - // REB - 0x00000000000000000000001FF2F67FE7 - bitmaps.reb[0] = 0xF2F67FE7; + // RBM - 0x0000000000000000006400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030361EFF + bitmaps.teb[0] = 0x30361EFF; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; } @@ -23245,16 +22248,17 @@ void LbffBayerNoGmvWithTnrWithOpacityOuterNode::setInnerNode(InnerNodeOptionsFla } -void LbffBayerNoGmvWithTnrWithOpacityOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol3InputsWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 42; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -23298,7 +22302,7 @@ void LbffBayerNoGmvWithTnrWithOpacityOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFF83C7FF80; + disabledRunKernelsBitmap[0] |= 0x3DFDFFE0000; break; } @@ -23318,7 +22322,7 @@ void LbffBayerNoGmvWithTnrWithOpacityOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F00000000000; + disabledRunKernelsBitmap[0] |= 0x1F00000000; break; } @@ -23328,484 +22332,556 @@ void LbffBayerNoGmvWithTnrWithOpacityOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 46; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F000009F - bitmaps.teb[0] = 0xF000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000067FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC000FF + bitmaps.teb[0] = 0x3FC000FF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x420007D80; } - else if (nodeRelevantInnerOptions == (noPdaf)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000064009D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0001E9F - bitmaps.teb[0] = 0xF0001E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000047FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC41EFF + bitmaps.teb[0] = 0x2FC41EFF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0000; + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F000009F - bitmaps.teb[0] = 0xF000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000047FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC000FF + bitmaps.teb[0] = 0x2FC000FF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400420007D80; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000044019D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x44019D; - // DEB - 0x000000000000C1E00000FFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0003F9F - bitmaps.teb[0] = 0xE0003F9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + // RBM - 0x00000000000000000027FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC41EFF + bitmaps.teb[0] = 0x1FC41EFF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000000; + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E000009F - bitmaps.teb[0] = 0xE000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000027FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC000FF + bitmaps.teb[0] = 0x1FC000FF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800001FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800420007D80; } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0001E9F - bitmaps.teb[0] = 0xE0001E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800001E0000; + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 tnr7_spatial_1_1- inner node disablement + // 33 tnr_scaler_lb_1_1- inner node disablement + // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 tnr7_bc_1_2- inner node disablement + // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFBDFFE0000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E000009F - bitmaps.teb[0] = 0xE000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800001FFE00; + // 0 ifd_pipe_1_4- inner node disablement + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 tnr7_spatial_1_1- inner node disablement + // 33 tnr_scaler_lb_1_1- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 36 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 tnr7_bc_1_2- inner node disablement + // 39 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 40 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } - else if (nodeRelevantInnerOptions == (noDp)) + else // default inner node + { + // RBM - 0x00000000000000000067FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC41EFF + bitmaps.teb[0] = 0x3FC41EFF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffDol3InputsNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 50; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x3FFFBDFFE0000; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x1F00000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 54; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000024019D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x24019D; - // DEB - 0x00000000000021E00000FFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0003F9F - bitmaps.teb[0] = 0xD0003F9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + // RBM - 0x00000000000000000067FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF200FF + bitmaps.teb[0] = 0x3FF200FF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x300000000000; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x420007D80; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D000009F - bitmaps.teb[0] = 0xD000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000047FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF61EFF + bitmaps.teb[0] = 0x2FF61EFF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000001FFE00; + // 50 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000000000000; } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0001E9F - bitmaps.teb[0] = 0xD0001E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // RBM - 0x00000000000000000047FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF200FF + bitmaps.teb[0] = 0x2FF200FF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000001E0000; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x4000420007D80; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D000009F - bitmaps.teb[0] = 0xD000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // RBM - 0x00000000000000000027FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF61EFF + bitmaps.teb[0] = 0x1FF61EFF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000001FFE00; + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000000000000; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFFF1 - bitmaps.deb[0] = 0x1DBFFF1; - // TEB - 0x0000000000003F97 - bitmaps.teb[0] = 0x3F97; - // REB - 0x00000000000000000000000006017FE7 - bitmaps.reb[0] = 0x6017FE7; + // RBM - 0x00000000000000000027FCBD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D8001FF + bitmaps.deb[0] = 0x8D8001FF; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF200FF + bitmaps.teb[0] = 0x1FF200FF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFE00180; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x18000420007D80; } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFE0180; + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 tnr7_spatial_1_1- inner node disablement + // 33 tnr_scaler_lb_1_1- inner node disablement + // 35 ifd_gmv_1_4- inner node disablement + // 36 gmv_statistics_1_1- inner node disablement + // 37 odr_gmv_feature_1_4- inner node disablement + // 38 odr_gmv_match_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 tnr7_bc_1_2- inner node disablement + // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 45 tnr7_blend_1_1- inner node disablement + // 46 odr_tnr_fp_yuvn_1_4- inner node disablement + // 47 tnr_scaler_fp_1_1- inner node disablement + // 48 image_upscaler_1_1- inner node disablement + // 49 cas_1_1- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFBDFFE0000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -23815,67 +22891,74 @@ void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 xnr_5_4- inner node disablement + // 24 vcr_3_1- inner node disablement + // 25 glim_2_0- inner node disablement + // 26 acm_1_2- inner node disablement + // 27 gammatm_v4- inner node disablement + // 28 csc_1_1- inner node disablement + // 29 fr_grid_1_0- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 tnr7_spatial_1_1- inner node disablement + // 33 tnr_scaler_lb_1_1- inner node disablement + // 34 odr_af_std_1_4- inner node disablement + // 35 ifd_gmv_1_4- inner node disablement + // 36 gmv_statistics_1_1- inner node disablement + // 37 odr_gmv_feature_1_4- inner node disablement + // 38 odr_gmv_match_1_4- inner node disablement + // 39 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 40 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 41 tnr7_ims_1_2- inner node disablement + // 42 tnr7_bc_1_2- inner node disablement + // 43 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 44 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 45 tnr7_blend_1_1- inner node disablement + // 46 odr_tnr_fp_yuvn_1_4- inner node disablement + // 47 tnr_scaler_fp_1_1- inner node disablement + // 48 image_upscaler_1_1- inner node disablement + // 49 cas_1_1- inner node disablement + // 50 odr_ofs_mp_1_4- inner node disablement + // 51 b2i_ds_output_1_1- inner node disablement + // 52 odr_ofs_dp_1_4- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064019D501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x64019D; - // DEB - 0x000000000000E1E00000FFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0003F9F - bitmaps.teb[0] = 0xF0003F9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + // RBM - 0x00000000000000000067FCBD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D9FF1FF + bitmaps.deb[0] = 0x8D9FF1FF; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF61EFF + bitmaps.teb[0] = 0x3FF61EFF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -23883,16 +22966,17 @@ void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol3InputsWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 46; ++i) + for (uint8_t i = 0; i < 54; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -23936,7 +23020,7 @@ void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFE00180; + disabledRunKernelsBitmap[0] |= 0x3FFFFBDFFE0000; break; } @@ -23956,7 +23040,7 @@ void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F8000000000; + disabledRunKernelsBitmap[0] |= 0x1F000000000000; break; } @@ -23966,352 +23050,523 @@ void LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 46; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; + // RBM - 0x00000000000000000064009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFFE; bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F032009F - bitmaps.teb[0] = 0xF032009F; + // TEB - 0x00000009F00000FF + bitmaps.teb[0] = 0xF00000FF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x187D80; } - else if (nodeRelevantInnerOptions == (noPdaf)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0321E9F - bitmaps.teb[0] = 0xF0321E9F; + // RBM - 0x00000000000000000044009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0041EFF + bitmaps.teb[0] = 0xE0041EFF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1E0000; + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F032009F - bitmaps.teb[0] = 0xF032009F; + // RBM - 0x00000000000000000044009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E00000FF + bitmaps.teb[0] = 0xE00000FF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000187D80; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000004401BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x4401BD; - // DEB - 0x000000000000C1E0000FFFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0323F9F - bitmaps.teb[0] = 0xE0323F9F; + // RBM - 0x00000000000000000024009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0041EFF + bitmaps.teb[0] = 0xD0041EFF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000000; + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x300000000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E032009F - bitmaps.teb[0] = 0xE032009F; + // RBM - 0x00000000000000000024009D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D00000FF + bitmaps.teb[0] = 0xD00000FF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000001FFE00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0321E9F - bitmaps.teb[0] = 0xE0321E9F; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x300000187D80; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; + + // Kernels disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFE60000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 21 ifd_segmap_bnlm_1_4- inner node disablement + // 22 smurf_bnlm_1_0- inner node disablement + // 23 bnlm_3_4- inner node disablement + // 24 bxt_demosaic- inner node disablement + // 25 vcsc_2_0_b- inner node disablement + // 26 gltm_2_0- inner node disablement + // 27 ifd_segmap_xnr_1_4- inner node disablement + // 28 smurf_xnr_1_0- inner node disablement + // 29 xnr_5_4- inner node disablement + // 30 vcr_3_1- inner node disablement + // 31 glim_2_0- inner node disablement + // 32 ifd_segmap_acm_1_4- inner node disablement + // 33 smurf_acm_1_0- inner node disablement + // 34 acm_1_2- inner node disablement + // 35 gammatm_v4- inner node disablement + // 36 csc_1_1- inner node disablement + // 37 b2i_ds_1_1- inner node disablement + // 38 lbff_crop_espa_1_4- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 ifd_segmap_cas_1_4- inner node disablement + // 41 smurf_cas_1_0- inner node disablement + // 42 cas_1_1- inner node disablement + // 43 odr_ofs_mp_1_4- inner node disablement + // 44 b2i_ds_output_1_1- inner node disablement + // 45 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000064009D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0041EFF + bitmaps.teb[0] = 0xF0041EFF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; + } - // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000001E0000; + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 46; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + + // Pass-through kernels + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x3FFFFFE60000; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x3F8000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 50; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; + // RBM - 0x0000000000000000006400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E032009F - bitmaps.teb[0] = 0xE032009F; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F03200FF + bitmaps.teb[0] = 0xF03200FF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000001FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x187D80; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000002401BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x2401BD; - // DEB - 0x00000000000021E0000FFFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; + // RBM - 0x0000000000000000004400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0323F9F - bitmaps.teb[0] = 0xD0323F9F; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0361EFF + bitmaps.teb[0] = 0xE0361EFF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000000; + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; + // RBM - 0x0000000000000000004400BD50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C1E0000FFFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D032009F - bitmaps.teb[0] = 0xD032009F; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E03200FF + bitmaps.teb[0] = 0xE03200FF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000001FFE00; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 47 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000187D80; } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD501F6811 - bitmaps.rbm[0] = 0x501F6811; + // RBM - 0x0000000000000000002400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED9BF1F1 - bitmaps.deb[0] = 0xED9BF1F1; + // DEB - 0x00000000000021E0000FFFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0321E9F - bitmaps.teb[0] = 0xD0321E9F; + // TEB - 0x00000009D0361EFF + bitmaps.teb[0] = 0xD0361EFF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FE7 - bitmaps.reb[0] = 0x12F67FE7; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement // 48 b2i_ds_output_1_1- inner node disablement // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000001E0000; + disabledRunKernelsBitmap[0] = 0x3000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 - bitmaps.rbm[0] = 0x50016811; + // RBM - 0x0000000000000000002400BD50016816 + bitmaps.rbm[0] = 0x50016816; bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; + // DEB - 0x00000000000021E0000FFFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D032009F - bitmaps.teb[0] = 0xD032009F; + // TEB - 0x00000009D03200FF + bitmaps.teb[0] = 0xD03200FF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607E7 - bitmaps.reb[0] = 0x12F607E7; + // REB - 0x00000000000000000000001F12F607F7 + bitmaps.reb[0] = 0x12F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement // 48 b2i_ds_output_1_1- inner node disablement // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x30000001FFE00; + disabledRunKernelsBitmap[0] = 0x3000000187D80; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFFF1 - bitmaps.deb[0] = 0x1DBFFF1; - // TEB - 0x0000000000003F97 - bitmaps.teb[0] = 0x3F97; - // REB - 0x00000000000000000000000006017FE7 - bitmaps.reb[0] = 0x6017FE7; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement // 21 ifd_gmv_1_4- inner node disablement // 22 ifd_segmap_bnlm_1_4- inner node disablement // 23 smurf_bnlm_1_0- inner node disablement @@ -24341,7 +23596,7 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // 47 odr_ofs_mp_1_4- inner node disablement // 48 b2i_ds_output_1_1- inner node disablement // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFE00180; + disabledRunKernelsBitmap[0] = 0x3FFFFFFE60000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -24353,26 +23608,26 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement // 21 ifd_gmv_1_4- inner node disablement // 22 ifd_segmap_bnlm_1_4- inner node disablement // 23 smurf_bnlm_1_0- inner node disablement @@ -24404,132 +23659,20 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // 49 odr_ofs_dp_1_4- inner node disablement disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + else // default inner node { - // HW bitmaps - // RBM - 0x000000000000000000000080001E6811 - bitmaps.rbm[0] = 0x1E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019BF1F1 - bitmaps.deb[0] = 0x19BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000002007FE7 - bitmaps.reb[0] = 0x2007FE7; - - // Kernels disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 gmv_statistics_1_1- inner node disablement - // 42 odr_gmv_feature_1_4- inner node disablement - // 43 odr_gmv_match_1_4- inner node disablement - // 44 ifd_segmap_cas_1_4- inner node disablement - // 45 smurf_cas_1_0- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFE0180; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgb_ir_2_0- inner node disablement - // 5 ifd_lsc_1_4- inner node disablement - // 6 lsc_1_2- inner node disablement - // 7 gd_2_2- inner node disablement - // 8 wb_1_1- inner node disablement - // 9 rgbs_grid_1_1- inner node disablement - // 10 ccm_3a_2_0- inner node disablement - // 11 fr_grid_1_0- inner node disablement - // 12 odr_awb_std_1_4- inner node disablement - // 13 odr_awb_sat_1_4- inner node disablement - // 14 aestatistics_2_1- inner node disablement - // 15 odr_ae_1_4- inner node disablement - // 16 odr_af_std_1_4- inner node disablement - // 17 ifd_pdaf_1_4- inner node disablement - // 18 pext_1_0- inner node disablement - // 19 pafstatistics_1_2- inner node disablement - // 20 odr_pdaf_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 gmv_statistics_1_1- inner node disablement - // 42 odr_gmv_feature_1_4- inner node disablement - // 43 odr_gmv_match_1_4- inner node disablement - // 44 ifd_segmap_cas_1_4- inner node disablement - // 45 smurf_cas_1_0- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x0000000000000000006401BD501F6811 - bitmaps.rbm[0] = 0x501F6811; - bitmaps.rbm[1] = 0x6401BD; - // DEB - 0x000000000000E1E0000FFFFEEDDBFFF1 - bitmaps.deb[0] = 0xEDDBFFF1; + // RBM - 0x0000000000000000006400BD52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E1E0000FFFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0323F9F - bitmaps.teb[0] = 0xF0323F9F; + // TEB - 0x00000009F0361EFF + bitmaps.teb[0] = 0xF0361EFF; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F77FE7 - bitmaps.reb[0] = 0x16F77FE7; + // REB - 0x00000000000000000000001F12F67FF7 + bitmaps.reb[0] = 0x12F67FF7; bitmaps.reb[1] = 0x1F; } @@ -24537,7 +23680,7 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement for (uint8_t i = 0; i < 50; ++i) @@ -24546,7 +23689,8 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption } // Pass-through kernels - nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -24590,7 +23734,7 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFE00180; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFE60000; break; } @@ -24620,16 +23764,17 @@ void LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 45; ++i) + for (uint8_t i = 0; i < 62; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -24637,184 +23782,194 @@ void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F000009F - bitmaps.teb[0] = 0xF000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000067FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC000FF + bitmaps.teb[0] = 0xFFC000FF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF0D0; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x187D80; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044019D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x44019D; - // DEB - 0x000000000000C1E00000FFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0003E9F - bitmaps.teb[0] = 0xE0003E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000047FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC41EFF + bitmaps.teb[0] = 0xEFC41EFF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 42 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000000000; + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E000009F - bitmaps.teb[0] = 0xE000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000047FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC000FF + bitmaps.teb[0] = 0xEFC000FF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 42 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000FF0D0; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x800000000187D80; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024019D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x24019D; - // DEB - 0x00000000000021E00000FFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0003E9F - bitmaps.teb[0] = 0xD0003E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000027FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC41EFF + bitmaps.teb[0] = 0xDFC41EFF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180000000000; + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D000009F - bitmaps.teb[0] = 0xD000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; + // RBM - 0x00000000000000000027FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC000FF + bitmaps.teb[0] = 0xDFC000FF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000FF0D0; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3000000000187D80; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 ifd_segmap_cas_1_4- inner node disablement - // 40 smurf_cas_1_0- inner node disablement - // 41 cas_1_1- inner node disablement - // 42 odr_ofs_mp_1_4- inner node disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFF00C00; + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFE60000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -24826,430 +23981,83 @@ void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 ifd_segmap_cas_1_4- inner node disablement - // 40 smurf_cas_1_0- inner node disablement - // 41 cas_1_1- inner node disablement - // 42 odr_ofs_mp_1_4- inner node disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x00000000000000000064019D581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x64019D; - // DEB - 0x000000000000E1E00000FFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0003E9F - bitmaps.teb[0] = 0xF0003E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; - bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 45; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFFF00C00; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1FC000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} - -void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) - { - // HW bitmaps - // RBM - 0x0000000000000000006400BD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F032009F - bitmaps.teb[0] = 0xF032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF0D0; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004401BD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x4401BD; - // DEB - 0x000000000000C1E0000FFFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0323E9F - bitmaps.teb[0] = 0xE0323E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400BD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E032009F - bitmaps.teb[0] = 0xE032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000FF0D0; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x0000000000000000002401BD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x2401BD; - // DEB - 0x00000000000021E0000FFFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0323E9F - bitmaps.teb[0] = 0xD0323E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x0000000000000000002400BD58016811 - bitmaps.rbm[0] = 0x58016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D032009F - bitmaps.teb[0] = 0xD032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F787E7 - bitmaps.reb[0] = 0x16F787E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 pext_1_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000FF0D0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000180081E6811 - bitmaps.rbm[0] = 0x81E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001DBFDF1 - bitmaps.deb[0] = 0x1DBFDF1; - // TEB - 0x0000000000003E97 - bitmaps.teb[0] = 0x3E97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; - - // Kernels disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - // 43 ifd_segmap_cas_1_4- inner node disablement - // 44 smurf_cas_1_0- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFF00C00; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 pext_1_0- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 pafstatistics_1_2- inner node disablement - // 7 odr_pdaf_1_4- inner node disablement - // 8 ifd_lsc_1_4- inner node disablement - // 9 lsc_1_2- inner node disablement - // 10 gd_2_2- inner node disablement - // 11 wb_1_1- inner node disablement - // 12 rgbs_grid_1_1- inner node disablement - // 13 ccm_3a_2_0- inner node disablement - // 14 fr_grid_1_0- inner node disablement - // 15 odr_awb_std_1_4- inner node disablement - // 16 odr_awb_sat_1_4- inner node disablement - // 17 aestatistics_2_1- inner node disablement - // 18 odr_ae_1_4- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - // 43 ifd_segmap_cas_1_4- inner node disablement - // 44 smurf_cas_1_0- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 24 ifd_segmap_bnlm_1_4- inner node disablement + // 25 smurf_bnlm_1_0- inner node disablement + // 26 bnlm_3_4- inner node disablement + // 27 bxt_demosaic- inner node disablement + // 28 vcsc_2_0_b- inner node disablement + // 29 gltm_2_0- inner node disablement + // 30 ifd_segmap_xnr_1_4- inner node disablement + // 31 smurf_xnr_1_0- inner node disablement + // 32 xnr_5_4- inner node disablement + // 33 vcr_3_1- inner node disablement + // 34 glim_2_0- inner node disablement + // 35 ifd_segmap_acm_1_4- inner node disablement + // 36 smurf_acm_1_0- inner node disablement + // 37 acm_1_2- inner node disablement + // 38 gammatm_v4- inner node disablement + // 39 csc_1_1- inner node disablement + // 40 b2i_ds_1_1- inner node disablement + // 41 lbff_crop_espa_1_4- inner node disablement + // 42 tnr7_spatial_1_1- inner node disablement + // 43 tnr_scaler_lb_1_1- inner node disablement + // 44 tnr7_ims_1_2- inner node disablement + // 45 ifd_segmap_tnr_bc_1_4- inner node disablement + // 46 smurf_tnr_bc_1_0- inner node disablement + // 47 tnr7_bc_1_2- inner node disablement + // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 49 ifd_segmap_tnr_blend_1_4- inner node disablement + // 50 smurf_tnr_blend_1_0- inner node disablement + // 51 tnr7_blend_1_1- inner node disablement + // 52 odr_tnr_fp_yuvn_1_4- inner node disablement + // 53 tnr_scaler_fp_1_1- inner node disablement + // 54 image_upscaler_1_1- inner node disablement + // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 56 ifd_segmap_cas_1_4- inner node disablement + // 57 smurf_cas_1_0- inner node disablement + // 58 cas_1_1- inner node disablement + // 59 odr_ofs_mp_1_4- inner node disablement + // 60 b2i_ds_output_1_1- inner node disablement + // 61 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006401BD581F6811 - bitmaps.rbm[0] = 0x581F6811; - bitmaps.rbm[1] = 0x6401BD; - // DEB - 0x000000000000E1E0000FFFFEEDDBFDF1 - bitmaps.deb[0] = 0xEDDBFDF1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0323E9F - bitmaps.teb[0] = 0xF0323E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // RBM - 0x00000000000000000067FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC41EFF + bitmaps.teb[0] = 0xFFC41EFF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -25257,16 +24065,17 @@ void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) + for (uint8_t i = 0; i < 62; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -25310,7 +24119,7 @@ void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFFFF00C00; + disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFE60000; break; } @@ -25330,7 +24139,7 @@ void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F88000000000; + disabledRunKernelsBitmap[0] |= 0x3F40000000000000; break; } @@ -25340,30 +24149,17 @@ void LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void IsysDolWithCvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - - // No inner nodes - (void)nodeInnerOptions; -} - -void IsysDolWithCvOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - (void)vanishStatus; - return; -} - -void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol3InputsWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 45; ++i) + for (uint8_t i = 0; i < 66; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -25371,135 +24167,136 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016816 + // RBM - 0x00000000000000000067FCBD50016816 bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F00000BF - bitmaps.teb[0] = 0xF00000BF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF200FF + bitmaps.teb[0] = 0xFFF200FF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC3EC0; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x187D80; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D52536E16 + // RBM - 0x00000000000000000047FCBD52536E16 bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0041EBF - bitmaps.teb[0] = 0xE0041EBF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF61EFF + bitmaps.teb[0] = 0xEFF61EFF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 42 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000000000; + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016816 + // RBM - 0x00000000000000000047FCBD50016816 bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E00000BF - bitmaps.teb[0] = 0xE00000BF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF200FF + bitmaps.teb[0] = 0xEFF200FF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 42 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000C3EC0; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000187D80; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D52536E16 + // RBM - 0x00000000000000000027FCBD52536E16 bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0041EBF - bitmaps.teb[0] = 0xD0041EBF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF61EFF + bitmaps.teb[0] = 0xDFF61EFF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x180000000000; + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016816 + // RBM - 0x00000000000000000027FCBD50016816 bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D00000BF - bitmaps.teb[0] = 0xD00000BF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001FF + bitmaps.deb[0] = 0xED8001FF; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF200FF + bitmaps.teb[0] = 0xDFF200FF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000C3EC0; + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x187D80; + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -25507,42 +24304,63 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag // RBM - 0x00000000000000000000008002526E16 bitmaps.rbm[0] = 0x2526E16; bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; + // DEB - 0x000000000000000000000000019FF1FF + bitmaps.deb[0] = 0x19FF1FF; + // TEB - 0x0000000000041EFF + bitmaps.teb[0] = 0x41EFF; // REB - 0x00000000000000000000000002007FF7 bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 ifd_segmap_cas_1_4- inner node disablement - // 40 smurf_cas_1_0- inner node disablement - // 41 cas_1_1- inner node disablement - // 42 odr_ofs_mp_1_4- inner node disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFF30000; + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFE60000; + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -25555,65 +24373,87 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 ifd_segmap_cas_1_4- inner node disablement - // 40 smurf_cas_1_0- inner node disablement - // 41 cas_1_1- inner node disablement - // 42 odr_ofs_mp_1_4- inner node disablement - // 43 b2i_ds_output_1_1- inner node disablement - // 44 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFF; + // 2 ifd_pipe_short_smth_1_4- inner node disablement + // 3 dol_lite_1_2- inner node disablement + // 4 bxt_blc- inner node disablement + // 5 linearization2_0- inner node disablement + // 6 dpc_2_2- inner node disablement + // 7 rgbs_grid_1_1- inner node disablement + // 8 ccm_3a_2_0- inner node disablement + // 9 rgb_ir_2_0- inner node disablement + // 10 odr_awb_std_1_4- inner node disablement + // 11 odr_awb_sve_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 ifd_lsc_1_4- inner node disablement + // 16 lsc_1_2- inner node disablement + // 17 gd_2_2- inner node disablement + // 18 wb_1_1- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 odr_af_std_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x3; } else // default inner node { - // RBM - 0x00000000000000000064009D52536E16 + // RBM - 0x00000000000000000067FCBD52536E16 bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0041EBF - bitmaps.teb[0] = 0xF0041EBF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED9FF1FF + bitmaps.deb[0] = 0xED9FF1FF; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF61EFF + bitmaps.teb[0] = 0xFFF61EFF; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -25621,17 +24461,17 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol3InputsWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 45; ++i) + for (uint8_t i = 0; i < 66; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -25675,7 +24515,8 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFFF30000; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFE60000; + disabledRunKernelsBitmap[1] |= 0x3; break; } @@ -25695,7 +24536,8 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1FC000000000; + disabledRunKernelsBitmap[0] |= 0xF400000000000000; + disabledRunKernelsBitmap[1] |= 0x3; break; } @@ -25705,572 +24547,402 @@ void LbffDol2InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol2InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerPdaf2WithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) + for (uint8_t i = 0; i < 66; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F03200BF - bitmaps.teb[0] = 0xF03200BF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000067FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC3EC0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noPdaf)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0361EBF - bitmaps.teb[0] = 0xE0361EBF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000067FCBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF21E9F + bitmaps.teb[0] = 0xFFF21E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0000; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E03200BF - bitmaps.teb[0] = 0xE03200BF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000067FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000C3EC0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0361EBF - bitmaps.teb[0] = 0xD0361EBF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000047FDBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FDBD; + // DEB - 0x000000000000C1FFFFFFFFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF23F9F + bitmaps.teb[0] = 0xEFF23F9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000; + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x8000000000000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D03200BF - bitmaps.teb[0] = 0xD03200BF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000047FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2009F + bitmaps.teb[0] = 0xEFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000C3EC0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; - - // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - // 43 ifd_segmap_cas_1_4- inner node disablement - // 44 smurf_cas_1_0- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFF30000; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001FFE00; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 gmv_statistics_1_1- inner node disablement - // 41 odr_gmv_feature_1_4- inner node disablement - // 42 odr_gmv_match_1_4- inner node disablement - // 43 ifd_segmap_cas_1_4- inner node disablement - // 44 smurf_cas_1_0- inner node disablement - // 45 cas_1_1- inner node disablement - // 46 odr_ofs_mp_1_4- inner node disablement - // 47 b2i_ds_output_1_1- inner node disablement - // 48 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x0000000000000000006400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0361EBF - bitmaps.teb[0] = 0xF0361EBF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000047FCBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF21E9F + bitmaps.teb[0] = 0xEFF21E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffDol2InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 49; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFFFF30000; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1F88000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 61; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001E0000; } - - // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC000BF - bitmaps.teb[0] = 0xFFC000BF; + // RBM - 0x00000000000000000047FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2009F + bitmaps.teb[0] = 0xEFF2009F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC3EC0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x80000000001FFE00; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC41EBF - bitmaps.teb[0] = 0xEFC41EBF; + // RBM - 0x00000000000000000027FDBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FDBD; + // DEB - 0x00000000000021FFFFFFFFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF23F9F + bitmaps.teb[0] = 0xDFF23F9F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 58 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x400000000000000; + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[1] = 0x3; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC000BF - bitmaps.teb[0] = 0xEFC000BF; + // RBM - 0x00000000000000000027FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF2009F + bitmaps.teb[0] = 0xDFF2009F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 58 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000000C3EC0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; + disabledRunKernelsBitmap[1] = 0x3; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFF0FFFE; + // RBM - 0x00000000000000000027FCBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED9BF1F1 + bitmaps.deb[0] = 0xED9BF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC41EBF - bitmaps.teb[0] = 0xDFC41EBF; + // TEB - 0x0000000FDFF21E9F + bitmaps.teb[0] = 0xDFF21E9F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1800000000000000; + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0000; + disabledRunKernelsBitmap[1] = 0x3; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFF0FFFE; + // RBM - 0x00000000000000000027FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC000BF - bitmaps.teb[0] = 0xDFC000BF; + // TEB - 0x0000000FDFF2009F + bitmaps.teb[0] = 0xDFF2009F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x18000000000C3EC0; + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFE00; + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000180001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x180; + // DEB - 0x00000000000000000000000001DBFFF1 + bitmaps.deb[0] = 0x1DBFFF1; + // TEB - 0x0000000000003F97 + bitmaps.teb[0] = 0x3F97; + // REB - 0x00000000000000000000000006017FE7 + bitmaps.reb[0] = 0x6017FE7; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 ifd_segmap_tnr_bc_1_4- inner node disablement - // 45 smurf_tnr_bc_1_0- inner node disablement - // 46 tnr7_bc_1_2- inner node disablement - // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 48 ifd_segmap_tnr_blend_1_4- inner node disablement - // 49 smurf_tnr_blend_1_0- inner node disablement - // 50 tnr7_blend_1_1- inner node disablement - // 51 odr_tnr_fp_yuvn_1_4- inner node disablement - // 52 tnr_scaler_fp_1_1- inner node disablement - // 53 image_upscaler_1_1- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 55 ifd_segmap_cas_1_4- inner node disablement - // 56 smurf_cas_1_0- inner node disablement - // 57 cas_1_1- inner node disablement - // 58 odr_ofs_mp_1_4- inner node disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFF30000; + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFE00180; + disabledRunKernelsBitmap[1] = 0x3; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -26282,82 +24954,234 @@ void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 ifd_segmap_tnr_bc_1_4- inner node disablement - // 45 smurf_tnr_bc_1_0- inner node disablement - // 46 tnr7_bc_1_2- inner node disablement - // 47 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 48 ifd_segmap_tnr_blend_1_4- inner node disablement - // 49 smurf_tnr_blend_1_0- inner node disablement - // 50 tnr7_blend_1_1- inner node disablement - // 51 odr_tnr_fp_yuvn_1_4- inner node disablement - // 52 tnr_scaler_fp_1_1- inner node disablement - // 53 image_upscaler_1_1- inner node disablement - // 54 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 55 ifd_segmap_cas_1_4- inner node disablement - // 56 smurf_cas_1_0- inner node disablement - // 57 cas_1_1- inner node disablement - // 58 odr_ofs_mp_1_4- inner node disablement - // 59 b2i_ds_output_1_1- inner node disablement - // 60 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x3; + } + else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; + + // Kernels disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFE0180; + disabledRunKernelsBitmap[1] = 0x3; + } + else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 rgbs_grid_1_1- inner node disablement + // 10 ccm_3a_2_0- inner node disablement + // 11 fr_grid_1_0- inner node disablement + // 12 odr_awb_std_1_4- inner node disablement + // 13 odr_awb_sat_1_4- inner node disablement + // 14 aestatistics_2_1- inner node disablement + // 15 odr_ae_1_4- inner node disablement + // 16 odr_af_std_1_4- inner node disablement + // 17 ifd_pdaf_1_4- inner node disablement + // 18 pext_1_0- inner node disablement + // 19 pafstatistics_1_2- inner node disablement + // 20 odr_pdaf_1_4- inner node disablement + // 21 ifd_gmv_1_4- inner node disablement + // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 25 ifd_segmap_bnlm_1_4- inner node disablement + // 26 smurf_bnlm_1_0- inner node disablement + // 27 bnlm_3_4- inner node disablement + // 28 bxt_demosaic- inner node disablement + // 29 vcsc_2_0_b- inner node disablement + // 30 gltm_2_0- inner node disablement + // 31 ifd_segmap_xnr_1_4- inner node disablement + // 32 smurf_xnr_1_0- inner node disablement + // 33 xnr_5_4- inner node disablement + // 34 vcr_3_1- inner node disablement + // 35 glim_2_0- inner node disablement + // 36 ifd_segmap_acm_1_4- inner node disablement + // 37 smurf_acm_1_0- inner node disablement + // 38 acm_1_2- inner node disablement + // 39 gammatm_v4- inner node disablement + // 40 csc_1_1- inner node disablement + // 41 b2i_ds_1_1- inner node disablement + // 42 lbff_crop_espa_1_4- inner node disablement + // 43 tnr7_spatial_1_1- inner node disablement + // 44 tnr_scaler_lb_1_1- inner node disablement + // 45 tnr7_ims_1_2- inner node disablement + // 46 gmv_statistics_1_1- inner node disablement + // 47 odr_gmv_feature_1_4- inner node disablement + // 48 odr_gmv_match_1_4- inner node disablement + // 49 ifd_segmap_tnr_bc_1_4- inner node disablement + // 50 smurf_tnr_bc_1_0- inner node disablement + // 51 tnr7_bc_1_2- inner node disablement + // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 53 ifd_segmap_tnr_blend_1_4- inner node disablement + // 54 smurf_tnr_blend_1_0- inner node disablement + // 55 tnr7_blend_1_1- inner node disablement + // 56 odr_tnr_fp_yuvn_1_4- inner node disablement + // 57 tnr_scaler_fp_1_1- inner node disablement + // 58 image_upscaler_1_1- inner node disablement + // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 60 ifd_segmap_cas_1_4- inner node disablement + // 61 smurf_cas_1_0- inner node disablement + // 62 cas_1_1- inner node disablement + // 63 odr_ofs_mp_1_4- inner node disablement + // 64 b2i_ds_output_1_1- inner node disablement + // 65 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + disabledRunKernelsBitmap[1] = 0x3; } else // default inner node { - // RBM - 0x00000000000000000067FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFF0FFFE; + // RBM - 0x00000000000000000067FDBD501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x67FDBD; + // DEB - 0x000000000000E1FFFFFFFFFEEDDBFFF1 + bitmaps.deb[0] = 0xEDDBFFF1; + bitmaps.deb[1] = 0xFFFFFFFE; bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC41EBF - bitmaps.teb[0] = 0xFFC41EBF; + // TEB - 0x0000000FFFF23F9F + bitmaps.teb[0] = 0xFFF23F9F; bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // REB - 0x00000000000000000000001FF6F77FE7 + bitmaps.reb[0] = 0xF6F77FE7; bitmaps.reb[1] = 0x1F; } @@ -26365,17 +25189,16 @@ void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerPdaf2WithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 61; ++i) + for (uint8_t i = 0; i < 66; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -26419,7 +25242,8 @@ void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x1FFFFFFFFFF30000; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFE00180; + disabledRunKernelsBitmap[1] |= 0x3; break; } @@ -26439,7 +25263,8 @@ void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x1FA0000000000000; + disabledRunKernelsBitmap[0] |= 0xF400000000000000; + disabledRunKernelsBitmap[1] |= 0x3; break; } @@ -26449,596 +25274,431 @@ void LbffDol2InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol2InputsWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 65; ++i) + for (uint8_t i = 0; i < 36; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF200BF - bitmaps.teb[0] = 0xFFF200BF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x0000000000000000006400DD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x6400DD; + // DEB - 0x000000000000E1200000F9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000409F + bitmaps.teb[0] = 0x3000409F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC3EC0; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE03000390; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF61EBF - bitmaps.teb[0] = 0xEFF61EBF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000064009D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030041E9F + bitmaps.teb[0] = 0x30041E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 62 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x4000000000000000; + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF200BF - bitmaps.teb[0] = 0xEFF200BF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 62 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40000000000C3EC0; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000027FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF61EBF - bitmaps.teb[0] = 0xDFF61EBF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000064009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000009F + bitmaps.teb[0] = 0x3000009F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000000000; - disabledRunKernelsBitmap[1] = 0x1; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE030003D0; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001FB - bitmaps.deb[0] = 0xED8001FB; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF200BF - bitmaps.teb[0] = 0xDFF200BF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x0000000000000000004400DD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x4400DD; + // DEB - 0x000000000000C1200000F9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020045E9F + bitmaps.teb[0] = 0x20045E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000000C3EC0; - disabledRunKernelsBitmap[1] = 0x1; + // 30 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000000; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FB - bitmaps.deb[0] = 0x19FF1FB; - // TEB - 0x0000000000041EBF - bitmaps.teb[0] = 0x41EBF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x0000000000000000004400DD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x4400DD; + // DEB - 0x000000000000C1200000F9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000409F + bitmaps.teb[0] = 0x2000409F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 gmv_statistics_1_1- inner node disablement - // 46 odr_gmv_feature_1_4- inner node disablement - // 47 odr_gmv_match_1_4- inner node disablement - // 48 ifd_segmap_tnr_bc_1_4- inner node disablement - // 49 smurf_tnr_bc_1_0- inner node disablement - // 50 tnr7_bc_1_2- inner node disablement - // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 52 ifd_segmap_tnr_blend_1_4- inner node disablement - // 53 smurf_tnr_blend_1_0- inner node disablement - // 54 tnr7_blend_1_1- inner node disablement - // 55 odr_tnr_fp_yuvn_1_4- inner node disablement - // 56 tnr_scaler_fp_1_1- inner node disablement - // 57 image_upscaler_1_1- inner node disablement - // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 59 ifd_segmap_cas_1_4- inner node disablement - // 60 smurf_cas_1_0- inner node disablement - // 61 cas_1_1- inner node disablement - // 62 odr_ofs_mp_1_4- inner node disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF30000; - disabledRunKernelsBitmap[1] = 0x1; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE43000390; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + // RBM - 0x00000000000000000044009D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020041E9F + bitmaps.teb[0] = 0x20041E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 dol_lite_1_2- inner node disablement - // 3 bxt_blc- inner node disablement - // 4 linearization2_0- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 rgbs_grid_1_1- inner node disablement - // 7 ccm_3a_2_0- inner node disablement - // 8 rgb_ir_2_0- inner node disablement - // 9 odr_awb_std_1_4- inner node disablement - // 10 odr_awb_sve_1_4- inner node disablement - // 11 odr_awb_sat_1_4- inner node disablement - // 12 aestatistics_2_1- inner node disablement - // 13 odr_ae_1_4- inner node disablement - // 14 ifd_lsc_1_4- inner node disablement - // 15 lsc_1_2- inner node disablement - // 16 gd_2_2- inner node disablement - // 17 wb_1_1- inner node disablement - // 18 fr_grid_1_0- inner node disablement - // 19 odr_af_std_1_4- inner node disablement - // 20 ifd_gmv_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 gmv_statistics_1_1- inner node disablement - // 46 odr_gmv_feature_1_4- inner node disablement - // 47 odr_gmv_match_1_4- inner node disablement - // 48 ifd_segmap_tnr_bc_1_4- inner node disablement - // 49 smurf_tnr_bc_1_0- inner node disablement - // 50 tnr7_bc_1_2- inner node disablement - // 51 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 52 ifd_segmap_tnr_blend_1_4- inner node disablement - // 53 smurf_tnr_blend_1_0- inner node disablement - // 54 tnr7_blend_1_1- inner node disablement - // 55 odr_tnr_fp_yuvn_1_4- inner node disablement - // 56 tnr_scaler_fp_1_1- inner node disablement - // 57 image_upscaler_1_1- inner node disablement - // 58 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 59 ifd_segmap_cas_1_4- inner node disablement - // 60 smurf_cas_1_0- inner node disablement - // 61 cas_1_1- inner node disablement - // 62 odr_ofs_mp_1_4- inner node disablement - // 63 b2i_ds_output_1_1- inner node disablement - // 64 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x1; + // 6 odr_ir_1_4- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000040; } - else // default inner node + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) { - // RBM - 0x00000000000000000067FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED9FF1FB - bitmaps.deb[0] = 0xED9FF1FB; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF61EBF - bitmaps.teb[0] = 0xFFF61EBF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // HW bitmaps + // RBM - 0x00000000000000000044009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000009F + bitmaps.teb[0] = 0x2000009F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffDol2InputsWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 65; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFF30000; - disabledRunKernelsBitmap[1] |= 0x1; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xFA00000000000000; - disabledRunKernelsBitmap[1] |= 0x1; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 46; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE430003D0; } - - // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F00000FF - bitmaps.teb[0] = 0xF00000FF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x0000000000000000002400DD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x2400DD; + // DEB - 0x00000000000021200000F9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010045E9F + bitmaps.teb[0] = 0x10045E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x187D80; + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180000000; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000044009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0041EFF - bitmaps.teb[0] = 0xE0041EFF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x0000000000000000002400DD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x2400DD; + // DEB - 0x00000000000021200000F9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000409F + bitmaps.teb[0] = 0x1000409F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000000000; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF83000390; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (noDp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000044009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E00000FF - bitmaps.teb[0] = 0xE00000FF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000024009D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021200000F9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010041E9F + bitmaps.teb[0] = 0x10041E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x80000187D80; + // 6 odr_ir_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180000040; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000024009D52536E16 - bitmaps.rbm[0] = 0x52536E16; + // RBM - 0x00000000000000000024009D50016811 + bitmaps.rbm[0] = 0x50016811; bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0041EFF - bitmaps.teb[0] = 0xD0041EFF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // DEB - 0x00000000000021200000F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000009F + bitmaps.teb[0] = 0x1000009F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x300000000000; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF830003D0; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D00000FF - bitmaps.teb[0] = 0xD00000FF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000004000206071 + bitmaps.rbm[0] = 0x206071; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003871131 + bitmaps.deb[0] = 0x3871131; + // TEB - 0x0000000000045817 + bitmaps.teb[0] = 0x45817; + // REB - 0x0000000000000000000000000300118F + bitmaps.reb[0] = 0x300118F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x300000187D80; + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFC00; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x00000000000000000000004000006011 + bitmaps.rbm[0] = 0x6011; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003800131 + bitmaps.deb[0] = 0x3800131; + // TEB - 0x0000000000004017 + bitmaps.teb[0] = 0x4017; + // REB - 0x00000000000000000000000003000187 + bitmaps.reb[0] = 0x3000187; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFE60000; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFF90; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000200061 + bitmaps.rbm[0] = 0x200061; + // DEB - 0x00000000000000000000000000071031 + bitmaps.deb[0] = 0x71031; + // TEB - 0x0000000000041817 + bitmaps.teb[0] = 0x41817; + // REB - 0x0000000000000000000000000000100F + bitmaps.reb[0] = 0x100F; + + // Kernels disablement + // 3 dpc_2_2- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFC68; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -27048,67 +25708,56 @@ void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 21 ifd_segmap_bnlm_1_4- inner node disablement - // 22 smurf_bnlm_1_0- inner node disablement - // 23 bnlm_3_4- inner node disablement - // 24 bxt_demosaic- inner node disablement - // 25 vcsc_2_0_b- inner node disablement - // 26 gltm_2_0- inner node disablement - // 27 ifd_segmap_xnr_1_4- inner node disablement - // 28 smurf_xnr_1_0- inner node disablement - // 29 xnr_5_4- inner node disablement - // 30 vcr_3_1- inner node disablement - // 31 glim_2_0- inner node disablement - // 32 ifd_segmap_acm_1_4- inner node disablement - // 33 smurf_acm_1_0- inner node disablement - // 34 acm_1_2- inner node disablement - // 35 gammatm_v4- inner node disablement - // 36 csc_1_1- inner node disablement - // 37 b2i_ds_1_1- inner node disablement - // 38 lbff_crop_espa_1_4- inner node disablement - // 39 image_upscaler_1_1- inner node disablement - // 40 ifd_segmap_cas_1_4- inner node disablement - // 41 smurf_cas_1_0- inner node disablement - // 42 cas_1_1- inner node disablement - // 43 odr_ofs_mp_1_4- inner node disablement - // 44 b2i_ds_output_1_1- inner node disablement - // 45 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFF; + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064009D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0041EFF - bitmaps.teb[0] = 0xF0041EFF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x0000000000000000006400DD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x6400DD; + // DEB - 0x000000000000E1200000F9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030045E9F + bitmaps.teb[0] = 0x30045E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; } @@ -27116,18 +25765,14 @@ void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlag } -void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffRgbIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 46; ++i) + for (uint8_t i = 0; i < 36; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -27170,7 +25815,7 @@ void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFE60000; + disabledRunKernelsBitmap[0] |= 0x1FCFFF000; break; } @@ -27190,7 +25835,7 @@ void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F8000000000; + disabledRunKernelsBitmap[0] |= 0x1F0000000; break; } @@ -27200,17 +25845,20 @@ void LbffDol3InputsNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption v SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 32; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc + nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 + nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -27218,182 +25866,161 @@ void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F03200FF - bitmaps.teb[0] = 0xF03200FF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000064001D50010009 + bitmaps.rbm[0] = 0x50010009; + bitmaps.rbm[1] = 0x64001D; + // DEB - 0x000000000000E1200000F9CE8C0000F1 + bitmaps.deb[0] = 0x8C0000F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000009F + bitmaps.teb[0] = 0x3000009F; + // REB - 0x00000000000000000000001F10F60667 + bitmaps.reb[0] = 0x10F60667; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x187D80; + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF80E0000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0361EFF - bitmaps.teb[0] = 0xE0361EFF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000044001D501F0009 + bitmaps.rbm[0] = 0x501F0009; + bitmaps.rbm[1] = 0x44001D; + // DEB - 0x000000000000C1200000F9CE8C1BF0F1 + bitmaps.deb[0] = 0x8C1BF0F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020001E9F + bitmaps.teb[0] = 0x20001E9F; + // REB - 0x00000000000000000000001F10F67E67 + bitmaps.reb[0] = 0x10F67E67; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000000; + // 24 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E03200FF - bitmaps.teb[0] = 0xE03200FF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000044001D50010009 + bitmaps.rbm[0] = 0x50010009; + bitmaps.rbm[1] = 0x44001D; + // DEB - 0x000000000000C1200000F9CE8C0000F1 + bitmaps.deb[0] = 0x8C0000F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000009F + bitmaps.teb[0] = 0x2000009F; + // REB - 0x00000000000000000000001F10F60667 + bitmaps.reb[0] = 0x10F60667; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000187D80; + // 24 odr_ofs_mp_1_4- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF90E0000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0361EFF - bitmaps.teb[0] = 0xD0361EFF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000024001D501F0009 + bitmaps.rbm[0] = 0x501F0009; + bitmaps.rbm[1] = 0x24001D; + // DEB - 0x00000000000021200000F9CE8C1BF0F1 + bitmaps.deb[0] = 0x8C1BF0F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010001E9F + bitmaps.teb[0] = 0x10001E9F; + // REB - 0x00000000000000000000001F10F67E67 + bitmaps.reb[0] = 0x10F67E67; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000000; + // 25 b2i_ds_output_1_1- inner node disablement + // 26 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D03200FF - bitmaps.teb[0] = 0xD03200FF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F607F7 - bitmaps.reb[0] = 0x12F607F7; + // RBM - 0x00000000000000000024001D50010009 + bitmaps.rbm[0] = 0x50010009; + bitmaps.rbm[1] = 0x24001D; + // DEB - 0x00000000000021200000F9CE8C0000F1 + bitmaps.deb[0] = 0x8C0000F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000009F + bitmaps.teb[0] = 0x1000009F; + // REB - 0x00000000000000000000001F10F60667 + bitmaps.reb[0] = 0x10F60667; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000187D80; + // 25 b2i_ds_output_1_1- inner node disablement + // 26 odr_ofs_dp_1_4- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFE0E0000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x000000000000000000000000001E0009 + bitmaps.rbm[0] = 0x1E0009; + // DEB - 0x000000000000000000000000001BF0F1 + bitmaps.deb[0] = 0x1BF0F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007E67 + bitmaps.reb[0] = 0x7E67; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 gmv_statistics_1_1- inner node disablement - // 42 odr_gmv_feature_1_4- inner node disablement - // 43 odr_gmv_match_1_4- inner node disablement - // 44 ifd_segmap_cas_1_4- inner node disablement - // 45 smurf_cas_1_0- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFE60000; + // 5 gd_2_2- inner node disablement + // 6 wb_1_1- inner node disablement + // 7 bnlm_3_4- inner node disablement + // 8 bxt_demosaic- inner node disablement + // 9 vcsc_2_0_b- inner node disablement + // 10 gltm_2_0- inner node disablement + // 11 xnr_5_4- inner node disablement + // 12 vcr_3_1- inner node disablement + // 13 glim_2_0- inner node disablement + // 14 acm_1_2- inner node disablement + // 15 gammatm_v4- inner node disablement + // 16 csc_1_1- inner node disablement + // 20 b2i_ds_1_1- inner node disablement + // 21 lbff_crop_espa_1_4- inner node disablement + // 22 image_upscaler_1_1- inner node disablement + // 23 cas_1_1- inner node disablement + // 24 odr_ofs_mp_1_4- inner node disablement + // 25 b2i_ds_output_1_1- inner node disablement + // 26 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7F1FFE0; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -27405,71 +26032,52 @@ void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 gd_2_2- inner node disablement + // 6 wb_1_1- inner node disablement + // 7 bnlm_3_4- inner node disablement + // 8 bxt_demosaic- inner node disablement + // 9 vcsc_2_0_b- inner node disablement + // 10 gltm_2_0- inner node disablement + // 11 xnr_5_4- inner node disablement + // 12 vcr_3_1- inner node disablement + // 13 glim_2_0- inner node disablement + // 14 acm_1_2- inner node disablement + // 15 gammatm_v4- inner node disablement + // 16 csc_1_1- inner node disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 gmv_statistics_1_1- inner node disablement - // 42 odr_gmv_feature_1_4- inner node disablement - // 43 odr_gmv_match_1_4- inner node disablement - // 44 ifd_segmap_cas_1_4- inner node disablement - // 45 smurf_cas_1_0- inner node disablement - // 46 cas_1_1- inner node disablement - // 47 odr_ofs_mp_1_4- inner node disablement - // 48 b2i_ds_output_1_1- inner node disablement - // 49 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; + // 20 b2i_ds_1_1- inner node disablement + // 21 lbff_crop_espa_1_4- inner node disablement + // 22 image_upscaler_1_1- inner node disablement + // 23 cas_1_1- inner node disablement + // 24 odr_ofs_mp_1_4- inner node disablement + // 25 b2i_ds_output_1_1- inner node disablement + // 26 odr_ofs_dp_1_4- inner node disablement + // 27 odr_awb_std_1_4- inner node disablement + // 28 odr_awb_sat_1_4- inner node disablement + // 29 aestatistics_2_1- inner node disablement + // 30 odr_ae_1_4- inner node disablement + // 31 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400BD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0361EFF - bitmaps.teb[0] = 0xF0361EFF; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F67FF7 - bitmaps.reb[0] = 0x12F67FF7; + // RBM - 0x00000000000000000064001D501F0009 + bitmaps.rbm[0] = 0x501F0009; + bitmaps.rbm[1] = 0x64001D; + // DEB - 0x000000000000E1200000F9CE8C1BF0F1 + bitmaps.deb[0] = 0x8C1BF0F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030001E9F + bitmaps.teb[0] = 0x30001E9F; + // REB - 0x00000000000000000000001F10F67E67 + bitmaps.reb[0] = 0x10F67E67; bitmaps.reb[1] = 0x1F; } @@ -27477,17 +26085,20 @@ void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffRgbIrIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 50; ++i) + for (uint8_t i = 0; i < 32; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc + nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 + nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -27531,7 +26142,7 @@ void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFE60000; + disabledRunKernelsBitmap[0] |= 0x7F1FFE0; break; } @@ -27551,7 +26162,7 @@ void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F10000000000; + disabledRunKernelsBitmap[0] |= 0x7C00000; break; } @@ -27561,300 +26172,506 @@ void LbffDol3InputsWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 62; ++i) + for (uint8_t i = 0; i < 40; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC000FF - bitmaps.teb[0] = 0xFFC000FF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x0000000000000000006400FD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x6400FD; + // DEB - 0x000000000000E120000FF9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003032409F + bitmaps.teb[0] = 0x3032409F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x187D80; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE03000390; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC41EFF - bitmaps.teb[0] = 0xEFC41EFF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x0000000000000000006400BD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030361E9F + bitmaps.teb[0] = 0x30361E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000000000; + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC000FF - bitmaps.teb[0] = 0xEFC000FF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x0000000000000000006400BD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x6400BD; + // DEB - 0x000000000000E120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003032009F + bitmaps.teb[0] = 0x3032009F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x800000000187D80; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE030003D0; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC41EFF - bitmaps.teb[0] = 0xDFC41EFF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x0000000000000000004400FD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x4400FD; + // DEB - 0x000000000000C120000FF9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020365E9F + bitmaps.teb[0] = 0x20365E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000000000; + // 30 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC000FF - bitmaps.teb[0] = 0xDFC000FF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x0000000000000000004400FD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x4400FD; + // DEB - 0x000000000000C120000FF9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002032409F + bitmaps.teb[0] = 0x2032409F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3000000000187D80; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE43000390; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x0000000000000000004400BD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020361E9F + bitmaps.teb[0] = 0x20361E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFE60000; + // 6 odr_ir_1_4- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40000040; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 23 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 24 ifd_segmap_bnlm_1_4- inner node disablement - // 25 smurf_bnlm_1_0- inner node disablement - // 26 bnlm_3_4- inner node disablement - // 27 bxt_demosaic- inner node disablement - // 28 vcsc_2_0_b- inner node disablement - // 29 gltm_2_0- inner node disablement - // 30 ifd_segmap_xnr_1_4- inner node disablement - // 31 smurf_xnr_1_0- inner node disablement - // 32 xnr_5_4- inner node disablement - // 33 vcr_3_1- inner node disablement - // 34 glim_2_0- inner node disablement - // 35 ifd_segmap_acm_1_4- inner node disablement - // 36 smurf_acm_1_0- inner node disablement - // 37 acm_1_2- inner node disablement - // 38 gammatm_v4- inner node disablement - // 39 csc_1_1- inner node disablement - // 40 b2i_ds_1_1- inner node disablement - // 41 lbff_crop_espa_1_4- inner node disablement - // 42 tnr7_spatial_1_1- inner node disablement - // 43 tnr_scaler_lb_1_1- inner node disablement - // 44 tnr7_ims_1_2- inner node disablement - // 45 ifd_segmap_tnr_bc_1_4- inner node disablement - // 46 smurf_tnr_bc_1_0- inner node disablement - // 47 tnr7_bc_1_2- inner node disablement - // 48 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 49 ifd_segmap_tnr_blend_1_4- inner node disablement - // 50 smurf_tnr_blend_1_0- inner node disablement - // 51 tnr7_blend_1_1- inner node disablement - // 52 odr_tnr_fp_yuvn_1_4- inner node disablement - // 53 tnr_scaler_fp_1_1- inner node disablement - // 54 image_upscaler_1_1- inner node disablement - // 55 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 56 ifd_segmap_cas_1_4- inner node disablement - // 57 smurf_cas_1_0- inner node disablement - // 58 cas_1_1- inner node disablement - // 59 odr_ofs_mp_1_4- inner node disablement - // 60 b2i_ds_output_1_1- inner node disablement - // 61 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFFFFF; + // RBM - 0x0000000000000000004400BD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x4400BD; + // DEB - 0x000000000000C120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002032009F + bitmaps.teb[0] = 0x2032009F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xE430003D0; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400FD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x2400FD; + // DEB - 0x0000000000002120000FF9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010365E9F + bitmaps.teb[0] = 0x10365E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400FD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x2400FD; + // DEB - 0x0000000000002120000FF9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001032409F + bitmaps.teb[0] = 0x1032409F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF83000390; + } + else if (nodeRelevantInnerOptions == (noDp | noIr)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400BD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010361E9F + bitmaps.teb[0] = 0x10361E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180000040; + } + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x0000000000000000002400BD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x2400BD; + // DEB - 0x0000000000002120000FF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001032009F + bitmaps.teb[0] = 0x1032009F; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xF830003D0; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000206071 + bitmaps.rbm[0] = 0x206071; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003871131 + bitmaps.deb[0] = 0x3871131; + // TEB - 0x0000000000045817 + bitmaps.teb[0] = 0x45817; + // REB - 0x0000000000000000000000000300118F + bitmaps.reb[0] = 0x300118F; + + // Kernels disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFC00; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000006011 + bitmaps.rbm[0] = 0x6011; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003800131 + bitmaps.deb[0] = 0x3800131; + // TEB - 0x0000000000004017 + bitmaps.teb[0] = 0x4017; + // REB - 0x00000000000000000000000003000187 + bitmaps.reb[0] = 0x3000187; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFF90; + } + else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000200061 + bitmaps.rbm[0] = 0x200061; + // DEB - 0x00000000000000000000000000071031 + bitmaps.deb[0] = 0x71031; + // TEB - 0x0000000000041817 + bitmaps.teb[0] = 0x41817; + // REB - 0x0000000000000000000000000000100F + bitmaps.reb[0] = 0x100F; + + // Kernels disablement + // 3 dpc_2_2- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFC68; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 image_upscaler_1_1- inner node disablement + // 29 cas_1_1- inner node disablement + // 30 odr_ofs_mp_1_4- inner node disablement + // 31 b2i_ds_output_1_1- inner node disablement + // 32 odr_ofs_dp_1_4- inner node disablement + // 33 aestatistics_2_1- inner node disablement + // 34 odr_ae_1_4- inner node disablement + // 35 odr_af_std_1_4- inner node disablement + // 36 ifd_gmv_1_4- inner node disablement + // 37 gmv_statistics_1_1- inner node disablement + // 38 odr_gmv_feature_1_4- inner node disablement + // 39 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC9D52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC41EFF - bitmaps.teb[0] = 0xFFC41EFF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x0000000000000000006400FD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x6400FD; + // DEB - 0x000000000000E120000FF9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030365E9F + bitmaps.teb[0] = 0x30365E9F; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; } @@ -27862,18 +26679,14 @@ void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFl } -void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffRgbIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 62; ++i) + for (uint8_t i = 0; i < 40; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -27916,7 +26729,7 @@ void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x3FFFFFFFFFE60000; + disabledRunKernelsBitmap[0] |= 0xF1FCFFF000; break; } @@ -27936,7 +26749,7 @@ void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x3F40000000000000; + disabledRunKernelsBitmap[0] |= 0x1F0000000; break; } @@ -27946,430 +26759,229 @@ void LbffDol3InputsNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffDol3InputsWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 66; ++i) + for (uint8_t i = 0; i < 48; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF200FF - bitmaps.teb[0] = 0xFFF200FF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000067FCDD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCDD; + // DEB - 0x000000000000E13E79F0F9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0409F + bitmaps.teb[0] = 0x3FC0409F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x187D80; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1C3000390; } - else if (nodeRelevantInnerOptions == (noMp)) + else if (nodeRelevantInnerOptions == (noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF61EFF - bitmaps.teb[0] = 0xEFF61EFF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000067FC9D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC41E9F + bitmaps.teb[0] = 0x3FC41E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000000000; + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF200FF - bitmaps.teb[0] = 0xEFF200FF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000067FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13E79F0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0009F + bitmaps.teb[0] = 0x3FC0009F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x8000000000187D80; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1C30003D0; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF61EFF - bitmaps.teb[0] = 0xDFF61EFF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // RBM - 0x00000000000000000047FCDD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x47FCDD; + // DEB - 0x000000000000C13E79F0F9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC45E9F + bitmaps.teb[0] = 0x2FC45E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[1] = 0x3; + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x100000000000; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016816 - bitmaps.rbm[0] = 0x50016816; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001FF - bitmaps.deb[0] = 0xED8001FF; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF200FF - bitmaps.teb[0] = 0xDFF200FF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F607F7 - bitmaps.reb[0] = 0xF2F607F7; + // RBM - 0x00000000000000000047FCDD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCDD; + // DEB - 0x000000000000C13E79F0F9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0409F + bitmaps.teb[0] = 0x2FC0409F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x187D80; - disabledRunKernelsBitmap[1] = 0x3; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1001C3000390; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000000008002526E16 - bitmaps.rbm[0] = 0x2526E16; - bitmaps.rbm[1] = 0x80; - // DEB - 0x000000000000000000000000019FF1FF - bitmaps.deb[0] = 0x19FF1FF; - // TEB - 0x0000000000041EFF - bitmaps.teb[0] = 0x41EFF; - // REB - 0x00000000000000000000000002007FF7 - bitmaps.reb[0] = 0x2007FF7; + // RBM - 0x00000000000000000047FC9D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC41E9F + bitmaps.teb[0] = 0x2FC41E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFE60000; - disabledRunKernelsBitmap[1] = 0x3; + // 6 odr_ir_1_4- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x100000000040; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + // RBM - 0x00000000000000000047FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13E79F0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0009F + bitmaps.teb[0] = 0x2FC0009F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 ifd_pipe_long_1_4- inner node disablement - // 2 ifd_pipe_short_smth_1_4- inner node disablement - // 3 dol_lite_1_2- inner node disablement - // 4 bxt_blc- inner node disablement - // 5 linearization2_0- inner node disablement - // 6 dpc_2_2- inner node disablement - // 7 rgbs_grid_1_1- inner node disablement - // 8 ccm_3a_2_0- inner node disablement - // 9 rgb_ir_2_0- inner node disablement - // 10 odr_awb_std_1_4- inner node disablement - // 11 odr_awb_sve_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 ifd_lsc_1_4- inner node disablement - // 16 lsc_1_2- inner node disablement - // 17 gd_2_2- inner node disablement - // 18 wb_1_1- inner node disablement - // 19 fr_grid_1_0- inner node disablement - // 20 odr_af_std_1_4- inner node disablement - // 21 ifd_gmv_1_4- inner node disablement - // 22 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 23 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 24 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 25 ifd_segmap_bnlm_1_4- inner node disablement - // 26 smurf_bnlm_1_0- inner node disablement - // 27 bnlm_3_4- inner node disablement - // 28 bxt_demosaic- inner node disablement - // 29 vcsc_2_0_b- inner node disablement - // 30 gltm_2_0- inner node disablement - // 31 ifd_segmap_xnr_1_4- inner node disablement - // 32 smurf_xnr_1_0- inner node disablement - // 33 xnr_5_4- inner node disablement - // 34 vcr_3_1- inner node disablement - // 35 glim_2_0- inner node disablement - // 36 ifd_segmap_acm_1_4- inner node disablement - // 37 smurf_acm_1_0- inner node disablement - // 38 acm_1_2- inner node disablement - // 39 gammatm_v4- inner node disablement - // 40 csc_1_1- inner node disablement - // 41 b2i_ds_1_1- inner node disablement - // 42 lbff_crop_espa_1_4- inner node disablement - // 43 tnr7_spatial_1_1- inner node disablement - // 44 tnr_scaler_lb_1_1- inner node disablement - // 45 tnr7_ims_1_2- inner node disablement - // 46 gmv_statistics_1_1- inner node disablement - // 47 odr_gmv_feature_1_4- inner node disablement - // 48 odr_gmv_match_1_4- inner node disablement - // 49 ifd_segmap_tnr_bc_1_4- inner node disablement - // 50 smurf_tnr_bc_1_0- inner node disablement - // 51 tnr7_bc_1_2- inner node disablement - // 52 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 53 ifd_segmap_tnr_blend_1_4- inner node disablement - // 54 smurf_tnr_blend_1_0- inner node disablement - // 55 tnr7_blend_1_1- inner node disablement - // 56 odr_tnr_fp_yuvn_1_4- inner node disablement - // 57 tnr_scaler_fp_1_1- inner node disablement - // 58 image_upscaler_1_1- inner node disablement - // 59 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 60 ifd_segmap_cas_1_4- inner node disablement - // 61 smurf_cas_1_0- inner node disablement - // 62 cas_1_1- inner node disablement - // 63 odr_ofs_mp_1_4- inner node disablement - // 64 b2i_ds_output_1_1- inner node disablement - // 65 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - disabledRunKernelsBitmap[1] = 0x3; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1001C30003D0; } - else // default inner node + else if (nodeRelevantInnerOptions == (noDp)) { - // RBM - 0x00000000000000000067FCBD52536E16 - bitmaps.rbm[0] = 0x52536E16; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED9FF1FF - bitmaps.deb[0] = 0xED9FF1FF; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF61EFF - bitmaps.teb[0] = 0xFFF61EFF; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF2F67FF7 - bitmaps.reb[0] = 0xF2F67FF7; + // HW bitmaps + // RBM - 0x00000000000000000027FCDD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x27FCDD; + // DEB - 0x000000000000213E79F0F9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC45E9F + bitmaps.teb[0] = 0x1FC45E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffDol3InputsWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 66; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[9].run_kernel.enable = 0; // rgb_ir_2_0 - nodeKernels.kernelList[18].run_kernel.enable = 0; // wb_1_1 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFE60000; - disabledRunKernelsBitmap[1] |= 0x3; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xF400000000000000; - disabledRunKernelsBitmap[1] |= 0x3; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 44; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x600000000000; } - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000006400DD50016811 + // RBM - 0x00000000000000000027FCDD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400DD; - // DEB - 0x000000000000E1E00000FFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F000409F - bitmaps.teb[0] = 0xF000409F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x27FCDD; + // DEB - 0x000000000000213E79F0F9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0409F + bitmaps.teb[0] = 0x1FC0409F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -28377,49 +26989,51 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C390; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6001C3000390; } - else if (nodeRelevantInnerOptions == (noIr)) + else if (nodeRelevantInnerOptions == (noDp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000064009D503B6871 + // RBM - 0x00000000000000000027FC9D503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0041E9F - bitmaps.teb[0] = 0xF0041E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC41E9F + bitmaps.teb[0] = 0x1FC41E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x600000000040; } - else if (nodeRelevantInnerOptions == (no3A | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000064009D50016811 + // RBM - 0x00000000000000000027FC9D50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F000009F - bitmaps.teb[0] = 0xF000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213E79F0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0009F + bitmaps.teb[0] = 0x1FC0009F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -28428,224 +27042,14 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C3D0; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400DD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x4400DD; - // DEB - 0x000000000000C1E00000FFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0045E9F - bitmaps.teb[0] = 0xE0045E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 41 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x0000000000000000004400DD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400DD; - // DEB - 0x000000000000C1E00000FFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E000409F - bitmaps.teb[0] = 0xE000409F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000007C390; - } - else if (nodeRelevantInnerOptions == (noMp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0041E9F - bitmaps.teb[0] = 0xE0041E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000040; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E000009F - bitmaps.teb[0] = 0xE000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000007C3D0; - } - else if (nodeRelevantInnerOptions == (noDp)) - { - // HW bitmaps - // RBM - 0x0000000000000000002400DD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x2400DD; - // DEB - 0x00000000000021E00000FFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0045E9F - bitmaps.teb[0] = 0xD0045E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noDp)) - { - // HW bitmaps - // RBM - 0x0000000000000000002400DD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400DD; - // DEB - 0x00000000000021E00000FFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D000409F - bitmaps.teb[0] = 0xD000409F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000007C390; - } - else if (nodeRelevantInnerOptions == (noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000024009D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0041E9F - bitmaps.teb[0] = 0xD0041E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000040; - } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000024009D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D000009F - bitmaps.teb[0] = 0xD000009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000007C3D0; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6001C30003D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -28665,37 +27069,41 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_segmap_bnlm_1_4- inner node disablement - // 20 smurf_bnlm_1_0- inner node disablement - // 21 bnlm_3_4- inner node disablement - // 22 bxt_demosaic- inner node disablement - // 23 vcsc_2_0_b- inner node disablement - // 24 gltm_2_0- inner node disablement - // 25 ifd_segmap_xnr_1_4- inner node disablement - // 26 smurf_xnr_1_0- inner node disablement - // 27 xnr_5_4- inner node disablement - // 28 vcr_3_1- inner node disablement - // 29 glim_2_0- inner node disablement - // 30 ifd_segmap_acm_1_4- inner node disablement - // 31 smurf_acm_1_0- inner node disablement - // 32 acm_1_2- inner node disablement - // 33 gammatm_v4- inner node disablement - // 34 csc_1_1- inner node disablement - // 35 b2i_ds_1_1- inner node disablement - // 36 lbff_crop_espa_1_4- inner node disablement - // 37 image_upscaler_1_1- inner node disablement - // 38 ifd_segmap_cas_1_4- inner node disablement - // 39 smurf_cas_1_0- inner node disablement - // 40 cas_1_1- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFC00; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 35 tnr7_ims_1_2- inner node disablement + // 36 tnr7_bc_1_2- inner node disablement + // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 39 tnr7_blend_1_1- inner node disablement + // 40 odr_tnr_fp_yuvn_1_4- inner node disablement + // 41 tnr_scaler_fp_1_1- inner node disablement + // 42 image_upscaler_1_1- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -28719,37 +27127,41 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_segmap_bnlm_1_4- inner node disablement - // 20 smurf_bnlm_1_0- inner node disablement - // 21 bnlm_3_4- inner node disablement - // 22 bxt_demosaic- inner node disablement - // 23 vcsc_2_0_b- inner node disablement - // 24 gltm_2_0- inner node disablement - // 25 ifd_segmap_xnr_1_4- inner node disablement - // 26 smurf_xnr_1_0- inner node disablement - // 27 xnr_5_4- inner node disablement - // 28 vcr_3_1- inner node disablement - // 29 glim_2_0- inner node disablement - // 30 ifd_segmap_acm_1_4- inner node disablement - // 31 smurf_acm_1_0- inner node disablement - // 32 acm_1_2- inner node disablement - // 33 gammatm_v4- inner node disablement - // 34 csc_1_1- inner node disablement - // 35 b2i_ds_1_1- inner node disablement - // 36 lbff_crop_espa_1_4- inner node disablement - // 37 image_upscaler_1_1- inner node disablement - // 38 ifd_segmap_cas_1_4- inner node disablement - // 39 smurf_cas_1_0- inner node disablement - // 40 cas_1_1- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFF90; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 35 tnr7_ims_1_2- inner node disablement + // 36 tnr7_bc_1_2- inner node disablement + // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 39 tnr7_blend_1_1- inner node disablement + // 40 odr_tnr_fp_yuvn_1_4- inner node disablement + // 41 tnr_scaler_fp_1_1- inner node disablement + // 42 image_upscaler_1_1- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFF90; } else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) { @@ -28771,37 +27183,41 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_segmap_bnlm_1_4- inner node disablement - // 20 smurf_bnlm_1_0- inner node disablement - // 21 bnlm_3_4- inner node disablement - // 22 bxt_demosaic- inner node disablement - // 23 vcsc_2_0_b- inner node disablement - // 24 gltm_2_0- inner node disablement - // 25 ifd_segmap_xnr_1_4- inner node disablement - // 26 smurf_xnr_1_0- inner node disablement - // 27 xnr_5_4- inner node disablement - // 28 vcr_3_1- inner node disablement - // 29 glim_2_0- inner node disablement - // 30 ifd_segmap_acm_1_4- inner node disablement - // 31 smurf_acm_1_0- inner node disablement - // 32 acm_1_2- inner node disablement - // 33 gammatm_v4- inner node disablement - // 34 csc_1_1- inner node disablement - // 35 b2i_ds_1_1- inner node disablement - // 36 lbff_crop_espa_1_4- inner node disablement - // 37 image_upscaler_1_1- inner node disablement - // 38 ifd_segmap_cas_1_4- inner node disablement - // 39 smurf_cas_1_0- inner node disablement - // 40 cas_1_1- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFC68; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 35 tnr7_ims_1_2- inner node disablement + // 36 tnr7_bc_1_2- inner node disablement + // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 39 tnr7_blend_1_1- inner node disablement + // 40 odr_tnr_fp_yuvn_1_4- inner node disablement + // 41 tnr_scaler_fp_1_1- inner node disablement + // 42 image_upscaler_1_1- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC68; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { @@ -28826,52 +27242,55 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_segmap_bnlm_1_4- inner node disablement - // 20 smurf_bnlm_1_0- inner node disablement - // 21 bnlm_3_4- inner node disablement - // 22 bxt_demosaic- inner node disablement - // 23 vcsc_2_0_b- inner node disablement - // 24 gltm_2_0- inner node disablement - // 25 ifd_segmap_xnr_1_4- inner node disablement - // 26 smurf_xnr_1_0- inner node disablement - // 27 xnr_5_4- inner node disablement - // 28 vcr_3_1- inner node disablement - // 29 glim_2_0- inner node disablement - // 30 ifd_segmap_acm_1_4- inner node disablement - // 31 smurf_acm_1_0- inner node disablement - // 32 acm_1_2- inner node disablement - // 33 gammatm_v4- inner node disablement - // 34 csc_1_1- inner node disablement - // 35 b2i_ds_1_1- inner node disablement - // 36 lbff_crop_espa_1_4- inner node disablement - // 37 image_upscaler_1_1- inner node disablement - // 38 ifd_segmap_cas_1_4- inner node disablement - // 39 smurf_cas_1_0- inner node disablement - // 40 cas_1_1- inner node disablement - // 41 odr_ofs_mp_1_4- inner node disablement - // 42 b2i_ds_output_1_1- inner node disablement - // 43 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 35 tnr7_ims_1_2- inner node disablement + // 36 tnr7_bc_1_2- inner node disablement + // 37 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 38 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 39 tnr7_blend_1_1- inner node disablement + // 40 odr_tnr_fp_yuvn_1_4- inner node disablement + // 41 tnr_scaler_fp_1_1- inner node disablement + // 42 image_upscaler_1_1- inner node disablement + // 43 cas_1_1- inner node disablement + // 44 odr_ofs_mp_1_4- inner node disablement + // 45 b2i_ds_output_1_1- inner node disablement + // 46 odr_ofs_dp_1_4- inner node disablement + // 47 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400DD503B6871 + // RBM - 0x00000000000000000067FCDD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x6400DD; - // DEB - 0x000000000000E1E00000FFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0045E9F - bitmaps.teb[0] = 0xF0045E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x67FCDD; + // DEB - 0x000000000000E13E79F0F9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC45E9F + bitmaps.teb[0] = 0x3FC45E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; } @@ -28879,10 +27298,10 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nod } -void LbffRgbIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffRgbIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 44; ++i) + for (uint8_t i = 0; i < 48; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -28929,7 +27348,7 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFF83000; + disabledRunKernelsBitmap[0] |= 0xFFFE3CFFF000; break; } @@ -28949,7 +27368,7 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanish bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xFE000000000; + disabledRunKernelsBitmap[0] |= 0x7C0000000000; break; } @@ -28959,10 +27378,361 @@ void LbffRgbIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanish SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 48; ++i) + for (uint8_t i = 0; i < 44; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc + nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 + nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FC1D50010009 + bitmaps.rbm[0] = 0x50010009; + bitmaps.rbm[1] = 0x67FC1D; + // DEB - 0x000000000000E13E79F0F9CE8C0000F1 + bitmaps.deb[0] = 0x8C0000F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0009F + bitmaps.teb[0] = 0x3FC0009F; + // REB - 0x00000000000000000000001FF0F60667 + bitmaps.reb[0] = 0xF0F60667; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 24 odr_awb_std_1_4- inner node disablement + // 25 odr_awb_sat_1_4- inner node disablement + // 26 aestatistics_2_1- inner node disablement + // 27 odr_ae_1_4- inner node disablement + // 28 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F0E0000; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC1D501F0009 + bitmaps.rbm[0] = 0x501F0009; + bitmaps.rbm[1] = 0x47FC1D; + // DEB - 0x000000000000C13E79F0F9CE8C1BF0F1 + bitmaps.deb[0] = 0x8C1BF0F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC01E9F + bitmaps.teb[0] = 0x2FC01E9F; + // REB - 0x00000000000000000000001FF0F67E67 + bitmaps.reb[0] = 0xF0F67E67; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 40 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC1D50010009 + bitmaps.rbm[0] = 0x50010009; + bitmaps.rbm[1] = 0x47FC1D; + // DEB - 0x000000000000C13E79F0F9CE8C0000F1 + bitmaps.deb[0] = 0x8C0000F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0009F + bitmaps.teb[0] = 0x2FC0009F; + // REB - 0x00000000000000000000001FF0F60667 + bitmaps.reb[0] = 0xF0F60667; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 24 odr_awb_std_1_4- inner node disablement + // 25 odr_awb_sat_1_4- inner node disablement + // 26 aestatistics_2_1- inner node disablement + // 27 odr_ae_1_4- inner node disablement + // 28 odr_af_std_1_4- inner node disablement + // 40 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1001F0E0000; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC1D501F0009 + bitmaps.rbm[0] = 0x501F0009; + bitmaps.rbm[1] = 0x27FC1D; + // DEB - 0x000000000000213E79F0F9CE8C1BF0F1 + bitmaps.deb[0] = 0x8C1BF0F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC01E9F + bitmaps.teb[0] = 0x1FC01E9F; + // REB - 0x00000000000000000000001FF0F67E67 + bitmaps.reb[0] = 0xF0F67E67; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC1D50010009 + bitmaps.rbm[0] = 0x50010009; + bitmaps.rbm[1] = 0x27FC1D; + // DEB - 0x000000000000213E79F0F9CE8C0000F1 + bitmaps.deb[0] = 0x8C0000F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0009F + bitmaps.teb[0] = 0x1FC0009F; + // REB - 0x00000000000000000000001FF0F60667 + bitmaps.reb[0] = 0xF0F60667; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 24 odr_awb_std_1_4- inner node disablement + // 25 odr_awb_sat_1_4- inner node disablement + // 26 aestatistics_2_1- inner node disablement + // 27 odr_ae_1_4- inner node disablement + // 28 odr_af_std_1_4- inner node disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6001F0E0000; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000000001E0009 + bitmaps.rbm[0] = 0x1E0009; + // DEB - 0x000000000000000000000000001BF0F1 + bitmaps.deb[0] = 0x1BF0F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007E67 + bitmaps.reb[0] = 0x7E67; + + // Kernels disablement + // 5 gd_2_2- inner node disablement + // 6 wb_1_1- inner node disablement + // 7 bnlm_3_4- inner node disablement + // 8 bxt_demosaic- inner node disablement + // 9 vcsc_2_0_b- inner node disablement + // 10 gltm_2_0- inner node disablement + // 11 xnr_5_4- inner node disablement + // 12 vcr_3_1- inner node disablement + // 13 glim_2_0- inner node disablement + // 14 acm_1_2- inner node disablement + // 15 gammatm_v4- inner node disablement + // 16 csc_1_1- inner node disablement + // 20 b2i_ds_1_1- inner node disablement + // 21 lbff_crop_espa_1_4- inner node disablement + // 22 tnr7_spatial_1_1- inner node disablement + // 23 tnr_scaler_lb_1_1- inner node disablement + // 29 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 30 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 31 tnr7_ims_1_2- inner node disablement + // 32 tnr7_bc_1_2- inner node disablement + // 33 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 35 tnr7_blend_1_1- inner node disablement + // 36 odr_tnr_fp_yuvn_1_4- inner node disablement + // 37 tnr_scaler_fp_1_1- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 cas_1_1- inner node disablement + // 40 odr_ofs_mp_1_4- inner node disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + // 43 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFE0F1FFE0; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 gd_2_2- inner node disablement + // 6 wb_1_1- inner node disablement + // 7 bnlm_3_4- inner node disablement + // 8 bxt_demosaic- inner node disablement + // 9 vcsc_2_0_b- inner node disablement + // 10 gltm_2_0- inner node disablement + // 11 xnr_5_4- inner node disablement + // 12 vcr_3_1- inner node disablement + // 13 glim_2_0- inner node disablement + // 14 acm_1_2- inner node disablement + // 15 gammatm_v4- inner node disablement + // 16 csc_1_1- inner node disablement + // 17 rgbs_grid_1_1- inner node disablement + // 18 ccm_3a_2_0- inner node disablement + // 19 fr_grid_1_0- inner node disablement + // 20 b2i_ds_1_1- inner node disablement + // 21 lbff_crop_espa_1_4- inner node disablement + // 22 tnr7_spatial_1_1- inner node disablement + // 23 tnr_scaler_lb_1_1- inner node disablement + // 24 odr_awb_std_1_4- inner node disablement + // 25 odr_awb_sat_1_4- inner node disablement + // 26 aestatistics_2_1- inner node disablement + // 27 odr_ae_1_4- inner node disablement + // 28 odr_af_std_1_4- inner node disablement + // 29 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 30 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 31 tnr7_ims_1_2- inner node disablement + // 32 tnr7_bc_1_2- inner node disablement + // 33 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 35 tnr7_blend_1_1- inner node disablement + // 36 odr_tnr_fp_yuvn_1_4- inner node disablement + // 37 tnr_scaler_fp_1_1- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 cas_1_1- inner node disablement + // 40 odr_ofs_mp_1_4- inner node disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + // 43 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000067FC1D501F0009 + bitmaps.rbm[0] = 0x501F0009; + bitmaps.rbm[1] = 0x67FC1D; + // DEB - 0x000000000000E13E79F0F9CE8C1BF0F1 + bitmaps.deb[0] = 0x8C1BF0F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC01E9F + bitmaps.teb[0] = 0x3FC01E9F; + // REB - 0x00000000000000000000001FF0F67E67 + bitmaps.reb[0] = 0xF0F67E67; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffRgbIrIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 44; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[1].run_kernel.enable = 0; // bxt_blc + nodeKernels.kernelList[2].run_kernel.enable = 0; // linearization2_0 + nodeKernels.kernelList[6].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[8].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[14].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0xFFFE0F1FFE0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x7C000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffRgbIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 52; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -28973,18 +27743,17 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400FD50016811 + // RBM - 0x00000000000000000067FCFD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400FD; - // DEB - 0x000000000000E1E0000FFFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F032409F - bitmaps.teb[0] = 0xF032409F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x67FCFD; + // DEB - 0x000000000000E13E79FFF9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF2409F + bitmaps.teb[0] = 0x3FF2409F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -28992,28 +27761,27 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C390; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1C3000390; } else if (nodeRelevantInnerOptions == (noIr)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD503B6871 + // RBM - 0x00000000000000000067FCBD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0361E9F - bitmaps.teb[0] = 0xF0361E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF61E9F + bitmaps.teb[0] = 0x3FF61E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -29023,18 +27791,17 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n else if (nodeRelevantInnerOptions == (no3A | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD50016811 + // RBM - 0x00000000000000000067FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F032009F - bitmaps.teb[0] = 0xF032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E13E79FFF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF2009F + bitmaps.teb[0] = 0x3FF2009F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -29043,49 +27810,47 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C3D0; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1C30003D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400FD503B6871 + // RBM - 0x00000000000000000047FCFD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x4400FD; - // DEB - 0x000000000000C1E0000FFFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0365E9F - bitmaps.teb[0] = 0xE0365E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x47FCFD; + // DEB - 0x000000000000C13E79FFF9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF65E9F + bitmaps.teb[0] = 0x2FF65E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000000; + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400FD50016811 + // RBM - 0x00000000000000000047FCFD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400FD; - // DEB - 0x000000000000C1E0000FFFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E032409F - bitmaps.teb[0] = 0xE032409F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x47FCFD; + // DEB - 0x000000000000C13E79FFF9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF2409F + bitmaps.teb[0] = 0x2FF2409F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -29093,51 +27858,49 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000007C390; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10001C3000390; } else if (nodeRelevantInnerOptions == (noMp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD503B6871 + // RBM - 0x00000000000000000047FCBD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0361E9F - bitmaps.teb[0] = 0xE0361E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF61E9F + bitmaps.teb[0] = 0x2FF61E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement // 6 odr_ir_1_4- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000040; + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000000040; } else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD50016811 + // RBM - 0x00000000000000000047FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E032009F - bitmaps.teb[0] = 0xE032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C13E79FFF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF2009F + bitmaps.teb[0] = 0x2FF2009F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -29146,51 +27909,49 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000007C3D0; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10001C30003D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400FD503B6871 + // RBM - 0x00000000000000000027FCFD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x2400FD; - // DEB - 0x00000000000021E0000FFFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0365E9F - bitmaps.teb[0] = 0xD0365E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x27FCFD; + // DEB - 0x000000000000213E79FFF9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF65E9F + bitmaps.teb[0] = 0x1FF65E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000000; + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400FD50016811 + // RBM - 0x00000000000000000027FCFD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400FD; - // DEB - 0x00000000000021E0000FFFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D032409F - bitmaps.teb[0] = 0xD032409F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x27FCFD; + // DEB - 0x000000000000213E79FFF9CE8F8001F1 + bitmaps.deb[0] = 0x8F8001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF2409F + bitmaps.teb[0] = 0x1FF2409F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -29198,53 +27959,51 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000007C390; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60001C3000390; } else if (nodeRelevantInnerOptions == (noDp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD503B6871 + // RBM - 0x00000000000000000027FCBD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0361E9F - bitmaps.teb[0] = 0xD0361E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D9FF1F1 + bitmaps.deb[0] = 0x8D9FF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF61E9F + bitmaps.teb[0] = 0x1FF61E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement // 6 odr_ir_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000040; + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000000040; } else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD50016811 + // RBM - 0x00000000000000000027FCBD50016811 bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D032009F - bitmaps.teb[0] = 0xD032009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F607E7 - bitmaps.reb[0] = 0x13F607E7; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x000000000000213E79FFF9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF2009F + bitmaps.teb[0] = 0x1FF2009F; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement @@ -29253,14 +28012,14 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 7 odr_awb_std_1_4- inner node disablement // 8 odr_awb_sve_1_4- inner node disablement // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000007C3D0; + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60001C30003D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -29280,41 +28039,45 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - // 42 ifd_segmap_cas_1_4- inner node disablement - // 43 smurf_cas_1_0- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC00; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_gmv_1_4- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 39 tnr7_ims_1_2- inner node disablement + // 40 tnr7_bc_1_2- inner node disablement + // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 43 tnr7_blend_1_1- inner node disablement + // 44 odr_tnr_fp_yuvn_1_4- inner node disablement + // 45 tnr_scaler_fp_1_1- inner node disablement + // 46 image_upscaler_1_1- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -29338,41 +28101,45 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - // 42 ifd_segmap_cas_1_4- inner node disablement - // 43 smurf_cas_1_0- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFF90; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_gmv_1_4- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 39 tnr7_ims_1_2- inner node disablement + // 40 tnr7_bc_1_2- inner node disablement + // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 43 tnr7_blend_1_1- inner node disablement + // 44 odr_tnr_fp_yuvn_1_4- inner node disablement + // 45 tnr_scaler_fp_1_1- inner node disablement + // 46 image_upscaler_1_1- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF90; } else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) { @@ -29394,41 +28161,45 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - // 42 ifd_segmap_cas_1_4- inner node disablement - // 43 smurf_cas_1_0- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC68; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_gmv_1_4- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 39 tnr7_ims_1_2- inner node disablement + // 40 tnr7_bc_1_2- inner node disablement + // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 43 tnr7_blend_1_1- inner node disablement + // 44 odr_tnr_fp_yuvn_1_4- inner node disablement + // 45 tnr_scaler_fp_1_1- inner node disablement + // 46 image_upscaler_1_1- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFC68; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { @@ -29453,56 +28224,59 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 11 lsc_1_2- inner node disablement // 12 gd_2_2- inner node disablement // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 ifd_segmap_acm_1_4- inner node disablement - // 32 smurf_acm_1_0- inner node disablement - // 33 acm_1_2- inner node disablement - // 34 gammatm_v4- inner node disablement - // 35 csc_1_1- inner node disablement - // 36 b2i_ds_1_1- inner node disablement - // 37 lbff_crop_espa_1_4- inner node disablement - // 38 image_upscaler_1_1- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - // 42 ifd_segmap_cas_1_4- inner node disablement - // 43 smurf_cas_1_0- inner node disablement - // 44 cas_1_1- inner node disablement - // 45 odr_ofs_mp_1_4- inner node disablement - // 46 b2i_ds_output_1_1- inner node disablement - // 47 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFF; + // 14 bnlm_3_4- inner node disablement + // 15 bxt_demosaic- inner node disablement + // 16 vcsc_2_0_b- inner node disablement + // 17 gltm_2_0- inner node disablement + // 18 xnr_5_4- inner node disablement + // 19 vcr_3_1- inner node disablement + // 20 glim_2_0- inner node disablement + // 21 acm_1_2- inner node disablement + // 22 gammatm_v4- inner node disablement + // 23 csc_1_1- inner node disablement + // 24 ccm_3a_2_0- inner node disablement + // 25 fr_grid_1_0- inner node disablement + // 26 b2i_ds_1_1- inner node disablement + // 27 lbff_crop_espa_1_4- inner node disablement + // 28 tnr7_spatial_1_1- inner node disablement + // 29 tnr_scaler_lb_1_1- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_gmv_1_4- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + // 37 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 38 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 39 tnr7_ims_1_2- inner node disablement + // 40 tnr7_bc_1_2- inner node disablement + // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 42 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 43 tnr7_blend_1_1- inner node disablement + // 44 odr_tnr_fp_yuvn_1_4- inner node disablement + // 45 tnr_scaler_fp_1_1- inner node disablement + // 46 image_upscaler_1_1- inner node disablement + // 47 cas_1_1- inner node disablement + // 48 odr_ofs_mp_1_4- inner node disablement + // 49 b2i_ds_output_1_1- inner node disablement + // 50 odr_ofs_dp_1_4- inner node disablement + // 51 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x0000000000000000006400FD503B6871 + // RBM - 0x00000000000000000067FCFD503B6871 bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x6400FD; - // DEB - 0x000000000000E1E0000FFFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0365E9F - bitmaps.teb[0] = 0xF0365E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F13F67FEF - bitmaps.reb[0] = 0x13F67FEF; + bitmaps.rbm[1] = 0x67FCFD; + // DEB - 0x000000000000E13E79FFF9CE8F9FF1F1 + bitmaps.deb[0] = 0x8F9FF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF65E9F + bitmaps.teb[0] = 0x3FF65E9F; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; bitmaps.reb[1] = 0x1F; } @@ -29510,10 +28284,10 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffRgbIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffRgbIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 48; ++i) + for (uint8_t i = 0; i < 52; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } @@ -29560,7 +28334,7 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFF83000; + disabledRunKernelsBitmap[0] |= 0xFFFFE3CFFF000; break; } @@ -29580,7 +28354,7 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xFC4000000000; + disabledRunKernelsBitmap[0] |= 0x7C00000000000; break; } @@ -29590,514 +28364,510 @@ void LbffRgbIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffIrNoGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 60; ++i) + for (uint8_t i = 0; i < 33; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCDD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCDD; - // DEB - 0x000000000000E1FFFFF0FFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC0409F - bitmaps.teb[0] = 0xFFC0409F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C390; - } - else if (nodeRelevantInnerOptions == (noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FC9D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC41E9F - bitmaps.teb[0] = 0xFFC41E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; - } - else if (nodeRelevantInnerOptions == (no3A | noIr)) + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FC9D; - // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC0009F - bitmaps.teb[0] = 0xFFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000064001D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x64001D; + // DEB - 0x000000000000E1200000F9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003000009F + bitmaps.teb[0] = 0x3000009F; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C3D0; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F01C0000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCDD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FCDD; - // DEB - 0x000000000000C1FFFFF0FFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC45E9F - bitmaps.teb[0] = 0xEFC45E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000044001D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x44001D; + // DEB - 0x000000000000C1200000F9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020001E9F + bitmaps.teb[0] = 0x20001E9F; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 57 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000000000; + // 25 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCDD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCDD; - // DEB - 0x000000000000C1FFFFF0FFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC0409F - bitmaps.teb[0] = 0xEFC0409F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000044001D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x44001D; + // DEB - 0x000000000000C1200000F9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002000009F + bitmaps.teb[0] = 0x2000009F; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000007C390; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_ofs_mp_1_4- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F21C0000; } - else if (nodeRelevantInnerOptions == (noMp | noIr)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC41E9F - bitmaps.teb[0] = 0xEFC41E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000024001D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x24001D; + // DEB - 0x00000000000021200000F9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010001E9F + bitmaps.teb[0] = 0x10001E9F; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000000040; + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FC9D; - // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFC0009F - bitmaps.teb[0] = 0xEFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000024001D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x24001D; + // DEB - 0x00000000000021200000F9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001000009F + bitmaps.teb[0] = 0x1000009F; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x20000000007C3D0; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FC1C0000; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCDD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FCDD; - // DEB - 0x00000000000021FFFFF0FFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC45E9F - bitmaps.teb[0] = 0xDFC45E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; // Kernels disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000000000; + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 image_upscaler_1_1- inner node disablement + // 24 cas_1_1- inner node disablement + // 25 odr_ofs_mp_1_4- inner node disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFE3FFC0; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCDD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCDD; - // DEB - 0x00000000000021FFFFF0FFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC0409F - bitmaps.teb[0] = 0xDFC0409F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000007C390; + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 image_upscaler_1_1- inner node disablement + // 24 cas_1_1- inner node disablement + // 25 odr_ofs_mp_1_4- inner node disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFF; } - else if (nodeRelevantInnerOptions == (noDp | noIr)) + else // default inner node { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC41E9F - bitmaps.teb[0] = 0xDFC41E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000064001D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x64001D; + // DEB - 0x000000000000E1200000F9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0xF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030001E9F + bitmaps.teb[0] = 0x30001E9F; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; bitmaps.reb[1] = 0x1F; + } - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000000040; + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffIrNoGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 33; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) { - // HW bitmaps - // RBM - 0x00000000000000000027FC9D50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FC9D; - // DEB - 0x00000000000021FFFFF0FFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFC0009F - bitmaps.teb[0] = 0xDFC0009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC0000000007C3D0; + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0xFE3FFC0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0xF800000; + + break; + } } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000206071 - bitmaps.rbm[0] = 0x206071; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003871131 - bitmaps.deb[0] = 0x3871131; - // TEB - 0x0000000000045817 - bitmaps.teb[0] = 0x45817; - // REB - 0x0000000000000000000000000300118F - bitmaps.reb[0] = 0x300118F; + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffIrWithGmvNoTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 37; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000064003D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x64003D; + // DEB - 0x000000000000E120000FF9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x000000003032009F + bitmaps.teb[0] = 0x3032009F; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 tnr7_spatial_1_1- inner node disablement - // 41 tnr_scaler_lb_1_1- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 ifd_segmap_tnr_bc_1_4- inner node disablement - // 44 smurf_tnr_bc_1_0- inner node disablement - // 45 tnr7_bc_1_2- inner node disablement - // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 47 ifd_segmap_tnr_blend_1_4- inner node disablement - // 48 smurf_tnr_blend_1_0- inner node disablement - // 49 tnr7_blend_1_1- inner node disablement - // 50 odr_tnr_fp_yuvn_1_4- inner node disablement - // 51 tnr_scaler_fp_1_1- inner node disablement - // 52 image_upscaler_1_1- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 54 ifd_segmap_cas_1_4- inner node disablement - // 55 smurf_cas_1_0- inner node disablement - // 56 cas_1_1- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFC00; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F01C0000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000004000006011 - bitmaps.rbm[0] = 0x6011; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003800131 - bitmaps.deb[0] = 0x3800131; - // TEB - 0x0000000000004017 - bitmaps.teb[0] = 0x4017; - // REB - 0x00000000000000000000000003000187 - bitmaps.reb[0] = 0x3000187; + // RBM - 0x00000000000000000044003D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x44003D; + // DEB - 0x000000000000C120000FF9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x0000000020321E9F + bitmaps.teb[0] = 0x20321E9F; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 tnr7_spatial_1_1- inner node disablement - // 41 tnr_scaler_lb_1_1- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 ifd_segmap_tnr_bc_1_4- inner node disablement - // 44 smurf_tnr_bc_1_0- inner node disablement - // 45 tnr7_bc_1_2- inner node disablement - // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 47 ifd_segmap_tnr_blend_1_4- inner node disablement - // 48 smurf_tnr_blend_1_0- inner node disablement - // 49 tnr7_blend_1_1- inner node disablement - // 50 odr_tnr_fp_yuvn_1_4- inner node disablement - // 51 tnr_scaler_fp_1_1- inner node disablement - // 52 image_upscaler_1_1- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 54 ifd_segmap_cas_1_4- inner node disablement - // 55 smurf_cas_1_0- inner node disablement - // 56 cas_1_1- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFF90; + // 25 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000; } - else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000000000000200061 - bitmaps.rbm[0] = 0x200061; - // DEB - 0x00000000000000000000000000071031 - bitmaps.deb[0] = 0x71031; - // TEB - 0x0000000000041817 - bitmaps.teb[0] = 0x41817; - // REB - 0x0000000000000000000000000000100F - bitmaps.reb[0] = 0x100F; + // RBM - 0x00000000000000000044003D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x44003D; + // DEB - 0x000000000000C120000FF9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xC120; + // TEB - 0x000000002032009F + bitmaps.teb[0] = 0x2032009F; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 3 dpc_2_2- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 tnr7_spatial_1_1- inner node disablement - // 41 tnr_scaler_lb_1_1- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 ifd_segmap_tnr_bc_1_4- inner node disablement - // 44 smurf_tnr_bc_1_0- inner node disablement - // 45 tnr7_bc_1_2- inner node disablement - // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 47 ifd_segmap_tnr_blend_1_4- inner node disablement - // 48 smurf_tnr_blend_1_0- inner node disablement - // 49 tnr7_blend_1_1- inner node disablement - // 50 odr_tnr_fp_yuvn_1_4- inner node disablement - // 51 tnr_scaler_fp_1_1- inner node disablement - // 52 image_upscaler_1_1- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 54 ifd_segmap_cas_1_4- inner node disablement - // 55 smurf_cas_1_0- inner node disablement - // 56 cas_1_1- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFC68; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_ofs_mp_1_4- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1F21C0000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024003D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x24003D; + // DEB - 0x0000000000002120000FF9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x0000000010321E9F + bitmaps.teb[0] = 0x10321E9F; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024003D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x24003D; + // DEB - 0x0000000000002120000FF9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0x2120; + // TEB - 0x000000001032009F + bitmaps.teb[0] = 0x1032009F; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FC1C0000; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; + + // Kernels disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 image_upscaler_1_1- inner node disablement + // 24 cas_1_1- inner node disablement + // 25 odr_ofs_mp_1_4- inner node disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + // 33 ifd_gmv_1_4- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1E0FE3FFC0; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -30109,79 +28879,55 @@ void LbffRgbIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n // 0 ifd_pipe_1_4- inner node disablement // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgbs_grid_1_1- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 tnr7_spatial_1_1- inner node disablement - // 41 tnr_scaler_lb_1_1- inner node disablement - // 42 tnr7_ims_1_2- inner node disablement - // 43 ifd_segmap_tnr_bc_1_4- inner node disablement - // 44 smurf_tnr_bc_1_0- inner node disablement - // 45 tnr7_bc_1_2- inner node disablement - // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 47 ifd_segmap_tnr_blend_1_4- inner node disablement - // 48 smurf_tnr_blend_1_0- inner node disablement - // 49 tnr7_blend_1_1- inner node disablement - // 50 odr_tnr_fp_yuvn_1_4- inner node disablement - // 51 tnr_scaler_fp_1_1- inner node disablement - // 52 image_upscaler_1_1- inner node disablement - // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 54 ifd_segmap_cas_1_4- inner node disablement - // 55 smurf_cas_1_0- inner node disablement - // 56 cas_1_1- inner node disablement - // 57 odr_ofs_mp_1_4- inner node disablement - // 58 b2i_ds_output_1_1- inner node disablement - // 59 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFF; + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 image_upscaler_1_1- inner node disablement + // 24 cas_1_1- inner node disablement + // 25 odr_ofs_mp_1_4- inner node disablement + // 26 b2i_ds_output_1_1- inner node disablement + // 27 odr_ofs_dp_1_4- inner node disablement + // 28 odr_awb_std_1_4- inner node disablement + // 29 odr_awb_sat_1_4- inner node disablement + // 30 aestatistics_2_1- inner node disablement + // 31 odr_ae_1_4- inner node disablement + // 32 odr_af_std_1_4- inner node disablement + // 33 ifd_gmv_1_4- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FCDD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FCDD; - // DEB - 0x000000000000E1FFFFF0FFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFF0FFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFC45E9F - bitmaps.teb[0] = 0xFFC45E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000064003D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x64003D; + // DEB - 0x000000000000E120000FF9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0xFF9CE; + bitmaps.deb[2] = 0xE120; + // TEB - 0x0000000030321E9F + bitmaps.teb[0] = 0x30321E9F; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; bitmaps.reb[1] = 0x1F; } @@ -30189,14 +28935,19 @@ void LbffRgbIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags n } -void LbffRgbIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffIrWithGmvNoTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 60; ++i) + for (uint8_t i = 0; i < 37; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -30239,7 +28990,7 @@ void LbffRgbIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFF83000; + disabledRunKernelsBitmap[0] |= 0x1E0FE3FFC0; break; } @@ -30259,7 +29010,7 @@ void LbffRgbIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vani bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xFD0000000000000; + disabledRunKernelsBitmap[0] |= 0xF800000; break; } @@ -30269,713 +29020,366 @@ void LbffRgbIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vani SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffRgbIrWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffIrNoGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 64; ++i) + for (uint8_t i = 0; i < 45; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FCFD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCFD; - // DEB - 0x000000000000E1FFFFFFFFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2409F - bitmaps.teb[0] = 0xFFF2409F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C390; - } - else if (nodeRelevantInnerOptions == (noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCBD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF61E9F - bitmaps.teb[0] = 0xFFF61E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x40; - } - else if (nodeRelevantInnerOptions == (no3A | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000067FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x67FCBD; - // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000067FC1D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x67FC1D; + // DEB - 0x000000000000E13E79F0F9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC0009F + bitmaps.teb[0] = 0x3FC0009F; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7C3D0; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3E1C0000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCFD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FCFD; - // DEB - 0x000000000000C1FFFFFFFFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF65E9F - bitmaps.teb[0] = 0xEFF65E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000047FC1D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x47FC1D; + // DEB - 0x000000000000C13E79F0F9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC01E9F + bitmaps.teb[0] = 0x2FC01E9F; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 61 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000000000000000; + // 41 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCFD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCFD; - // DEB - 0x000000000000C1FFFFFFFFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2409F - bitmaps.teb[0] = 0xEFF2409F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000047FC1D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x47FC1D; + // DEB - 0x000000000000C13E79F0F9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FC0009F + bitmaps.teb[0] = 0x2FC0009F; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000007C390; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2003E1C0000; } - else if (nodeRelevantInnerOptions == (noMp | noIr)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF61E9F - bitmaps.teb[0] = 0xEFF61E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000027FC1D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x27FC1D; + // DEB - 0x000000000000213E79F0F9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC01E9F + bitmaps.teb[0] = 0x1FC01E9F; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x2000000000000040; + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000000; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000047FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x47FCBD; - // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000FEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; + // RBM - 0x00000000000000000027FC1D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x27FC1D; + // DEB - 0x000000000000213E79F0F9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FC0009F + bitmaps.teb[0] = 0x1FC0009F; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x200000000007C3D0; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC003E1C0000; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCFD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FCFD; - // DEB - 0x00000000000021FFFFFFFFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF65E9F - bitmaps.teb[0] = 0xDFF65E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; // Kernels disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000000000000000; + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 tnr7_spatial_1_1- inner node disablement + // 24 tnr_scaler_lb_1_1- inner node disablement + // 30 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 31 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 32 tnr7_ims_1_2- inner node disablement + // 33 tnr7_bc_1_2- inner node disablement + // 34 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 35 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 36 tnr7_blend_1_1- inner node disablement + // 37 odr_tnr_fp_yuvn_1_4- inner node disablement + // 38 tnr_scaler_fp_1_1- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 cas_1_1- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + // 44 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFC1E3FFC0; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FCFD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCFD; - // DEB - 0x00000000000021FFFFFFFFFEEF8001F1 - bitmaps.deb[0] = 0xEF8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2409F - bitmaps.teb[0] = 0xDFF2409F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000007C390; + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 tnr7_spatial_1_1- inner node disablement + // 24 tnr_scaler_lb_1_1- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + // 30 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 31 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 32 tnr7_ims_1_2- inner node disablement + // 33 tnr7_bc_1_2- inner node disablement + // 34 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 35 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 36 tnr7_blend_1_1- inner node disablement + // 37 odr_tnr_fp_yuvn_1_4- inner node disablement + // 38 tnr_scaler_fp_1_1- inner node disablement + // 39 image_upscaler_1_1- inner node disablement + // 40 cas_1_1- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + // 44 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFF; } - else if (nodeRelevantInnerOptions == (noDp | noIr)) + else // default inner node { - // HW bitmaps - // RBM - 0x00000000000000000027FCBD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED9FF1F1 - bitmaps.deb[0] = 0xED9FF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF61E9F - bitmaps.teb[0] = 0xDFF61E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; + // RBM - 0x00000000000000000067FC1D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x67FC1D; + // DEB - 0x000000000000E13E79F0F9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0x79F0F9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FC01E9F + bitmaps.teb[0] = 0x3FC01E9F; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; bitmaps.reb[1] = 0x1F; + } - // Kernels disablement - // 6 odr_ir_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC000000000000040; + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffIrNoGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 45; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; } - else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) { - // HW bitmaps - // RBM - 0x00000000000000000027FCBD50016811 - bitmaps.rbm[0] = 0x50016811; - bitmaps.rbm[1] = 0x27FCBD; - // DEB - 0x00000000000021FFFFFFFFFEED8001F1 - bitmaps.deb[0] = 0xED8001F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000FDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F607E7 - bitmaps.reb[0] = 0xF3F607E7; - bitmaps.reb[1] = 0x1F; + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xC00000000007C3D0; - } - else if (nodeRelevantInnerOptions == (noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000206071 - bitmaps.rbm[0] = 0x206071; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003871131 - bitmaps.deb[0] = 0x3871131; - // TEB - 0x0000000000045817 - bitmaps.teb[0] = 0x45817; - // REB - 0x0000000000000000000000000300118F - bitmaps.reb[0] = 0x300118F; - - // Kernels disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 gmv_statistics_1_1- inner node disablement - // 45 odr_gmv_feature_1_4- inner node disablement - // 46 odr_gmv_match_1_4- inner node disablement - // 47 ifd_segmap_tnr_bc_1_4- inner node disablement - // 48 smurf_tnr_bc_1_0- inner node disablement - // 49 tnr7_bc_1_2- inner node disablement - // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 51 ifd_segmap_tnr_blend_1_4- inner node disablement - // 52 smurf_tnr_blend_1_0- inner node disablement - // 53 tnr7_blend_1_1- inner node disablement - // 54 odr_tnr_fp_yuvn_1_4- inner node disablement - // 55 tnr_scaler_fp_1_1- inner node disablement - // 56 image_upscaler_1_1- inner node disablement - // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 58 ifd_segmap_cas_1_4- inner node disablement - // 59 smurf_cas_1_0- inner node disablement - // 60 cas_1_1- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFC00; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000004000006011 - bitmaps.rbm[0] = 0x6011; - bitmaps.rbm[1] = 0x40; - // DEB - 0x00000000000000000000000003800131 - bitmaps.deb[0] = 0x3800131; - // TEB - 0x0000000000004017 - bitmaps.teb[0] = 0x4017; - // REB - 0x00000000000000000000000003000187 - bitmaps.reb[0] = 0x3000187; - - // Kernels disablement - // 4 rgbs_grid_1_1- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 gmv_statistics_1_1- inner node disablement - // 45 odr_gmv_feature_1_4- inner node disablement - // 46 odr_gmv_match_1_4- inner node disablement - // 47 ifd_segmap_tnr_bc_1_4- inner node disablement - // 48 smurf_tnr_bc_1_0- inner node disablement - // 49 tnr7_bc_1_2- inner node disablement - // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 51 ifd_segmap_tnr_blend_1_4- inner node disablement - // 52 smurf_tnr_blend_1_0- inner node disablement - // 53 tnr7_blend_1_1- inner node disablement - // 54 odr_tnr_fp_yuvn_1_4- inner node disablement - // 55 tnr_scaler_fp_1_1- inner node disablement - // 56 image_upscaler_1_1- inner node disablement - // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 58 ifd_segmap_cas_1_4- inner node disablement - // 59 smurf_cas_1_0- inner node disablement - // 60 cas_1_1- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFF90; - } - else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000200061 - bitmaps.rbm[0] = 0x200061; - // DEB - 0x00000000000000000000000000071031 - bitmaps.deb[0] = 0x71031; - // TEB - 0x0000000000041817 - bitmaps.teb[0] = 0x41817; - // REB - 0x0000000000000000000000000000100F - bitmaps.reb[0] = 0x100F; - - // Kernels disablement - // 3 dpc_2_2- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 gmv_statistics_1_1- inner node disablement - // 45 odr_gmv_feature_1_4- inner node disablement - // 46 odr_gmv_match_1_4- inner node disablement - // 47 ifd_segmap_tnr_bc_1_4- inner node disablement - // 48 smurf_tnr_bc_1_0- inner node disablement - // 49 tnr7_bc_1_2- inner node disablement - // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 51 ifd_segmap_tnr_blend_1_4- inner node disablement - // 52 smurf_tnr_blend_1_0- inner node disablement - // 53 tnr7_blend_1_1- inner node disablement - // 54 odr_tnr_fp_yuvn_1_4- inner node disablement - // 55 tnr_scaler_fp_1_1- inner node disablement - // 56 image_upscaler_1_1- inner node disablement - // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 58 ifd_segmap_cas_1_4- inner node disablement - // 59 smurf_cas_1_0- inner node disablement - // 60 cas_1_1- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFC68; - } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 rgbs_grid_1_1- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 odr_ir_1_4- inner node disablement - // 7 odr_awb_std_1_4- inner node disablement - // 8 odr_awb_sve_1_4- inner node disablement - // 9 odr_awb_sat_1_4- inner node disablement - // 10 ifd_lsc_1_4- inner node disablement - // 11 lsc_1_2- inner node disablement - // 12 gd_2_2- inner node disablement - // 13 wb_1_1- inner node disablement - // 14 ccm_3a_2_0- inner node disablement - // 15 fr_grid_1_0- inner node disablement - // 16 aestatistics_2_1- inner node disablement - // 17 odr_ae_1_4- inner node disablement - // 18 odr_af_std_1_4- inner node disablement - // 19 ifd_gmv_1_4- inner node disablement - // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 tnr7_spatial_1_1- inner node disablement - // 42 tnr_scaler_lb_1_1- inner node disablement - // 43 tnr7_ims_1_2- inner node disablement - // 44 gmv_statistics_1_1- inner node disablement - // 45 odr_gmv_feature_1_4- inner node disablement - // 46 odr_gmv_match_1_4- inner node disablement - // 47 ifd_segmap_tnr_bc_1_4- inner node disablement - // 48 smurf_tnr_bc_1_0- inner node disablement - // 49 tnr7_bc_1_2- inner node disablement - // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 51 ifd_segmap_tnr_blend_1_4- inner node disablement - // 52 smurf_tnr_blend_1_0- inner node disablement - // 53 tnr7_blend_1_1- inner node disablement - // 54 odr_tnr_fp_yuvn_1_4- inner node disablement - // 55 tnr_scaler_fp_1_1- inner node disablement - // 56 image_upscaler_1_1- inner node disablement - // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 58 ifd_segmap_cas_1_4- inner node disablement - // 59 smurf_cas_1_0- inner node disablement - // 60 cas_1_1- inner node disablement - // 61 odr_ofs_mp_1_4- inner node disablement - // 62 b2i_ds_output_1_1- inner node disablement - // 63 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; - } - else // default inner node - { - // RBM - 0x00000000000000000067FCFD503B6871 - bitmaps.rbm[0] = 0x503B6871; - bitmaps.rbm[1] = 0x67FCFD; - // DEB - 0x000000000000E1FFFFFFFFFEEF9FF1F1 - bitmaps.deb[0] = 0xEF9FF1F1; - bitmaps.deb[1] = 0xFFFFFFFE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000FFFF65E9F - bitmaps.teb[0] = 0xFFF65E9F; - bitmaps.teb[1] = 0xF; - // REB - 0x00000000000000000000001FF3F67FEF - bitmaps.reb[0] = 0xF3F67FEF; - bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffRgbIrWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 64; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFF83000; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0xFD00000000000000; - - break; - } + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x1FFFC1E3FFC0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0xF8000000000; + + break; + } } // Set Kernel enablement for inner node + vanish status SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffIrWithGmvWithTnrNoSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 39; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[19].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[27].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -30983,132 +29387,127 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064001D50019009 + // RBM - 0x00000000000000000067FC3D50019009 bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x64001D; - // DEB - 0x000000000000E1E00000F9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xF9FE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000008F000009F - bitmaps.teb[0] = 0xF000009F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + bitmaps.rbm[1] = 0x67FC3D; + // DEB - 0x000000000000E13E79FFF9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF2009F + bitmaps.teb[0] = 0x3FF2009F; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF00; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3E1C0000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044001D501F9009 + // RBM - 0x00000000000000000047FC3D501F9009 bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x44001D; - // DEB - 0x000000000000C1E00000F9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xF9FE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000008E0001E9F - bitmaps.teb[0] = 0xE0001E9F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + bitmaps.rbm[1] = 0x47FC3D; + // DEB - 0x000000000000C13E79FFF9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF21E9F + bitmaps.teb[0] = 0x2FF21E9F; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 36 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000000; + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044001D50019009 + // RBM - 0x00000000000000000047FC3D50019009 bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x44001D; - // DEB - 0x000000000000C1E00000F9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xF9FE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000008E000009F - bitmaps.teb[0] = 0xE000009F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + bitmaps.rbm[1] = 0x47FC3D; + // DEB - 0x000000000000C13E79FFF9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xC13E; + // TEB - 0x000000002FF2009F + bitmaps.teb[0] = 0x2FF2009F; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 36 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x100000FF00; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20003E1C0000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024001D501F9009 + // RBM - 0x00000000000000000027FC3D501F9009 bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x24001D; - // DEB - 0x00000000000021E00000F9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xF9FE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000008D0001E9F - bitmaps.teb[0] = 0xD0001E9F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + bitmaps.rbm[1] = 0x27FC3D; + // DEB - 0x000000000000213E79FFF9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF21E9F + bitmaps.teb[0] = 0x1FF21E9F; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 37 b2i_ds_output_1_1- inner node disablement - // 38 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000000; - } + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000000; + } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024001D50019009 + // RBM - 0x00000000000000000027FC3D50019009 bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x24001D; - // DEB - 0x00000000000021E00000F9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xF9FE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000008D000009F - bitmaps.teb[0] = 0xD000009F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + bitmaps.rbm[1] = 0x27FC3D; + // DEB - 0x000000000000213E79FFF9CE8C0001F1 + bitmaps.deb[0] = 0x8C0001F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0x213E; + // TEB - 0x000000001FF2009F + bitmaps.teb[0] = 0x1FF2009F; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 37 b2i_ds_output_1_1- inner node disablement - // 38 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x600000FF00; + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0003E1C0000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { @@ -31125,30 +29524,40 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn // Kernels disablement // 6 gd_2_2- inner node disablement // 7 wb_1_1- inner node disablement - // 16 ifd_segmap_bnlm_1_4- inner node disablement - // 17 smurf_bnlm_1_0- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 ifd_segmap_xnr_1_4- inner node disablement - // 23 smurf_xnr_1_0- inner node disablement - // 24 xnr_5_4- inner node disablement - // 25 vcr_3_1- inner node disablement - // 26 glim_2_0- inner node disablement - // 27 acm_1_2- inner node disablement - // 28 gammatm_v4- inner node disablement - // 29 csc_1_1- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 image_upscaler_1_1- inner node disablement - // 33 ifd_segmap_cas_1_4- inner node disablement - // 34 smurf_cas_1_0- inner node disablement - // 35 cas_1_1- inner node disablement - // 36 odr_ofs_mp_1_4- inner node disablement - // 37 b2i_ds_output_1_1- inner node disablement - // 38 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFF00C0; + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 tnr7_spatial_1_1- inner node disablement + // 24 tnr_scaler_lb_1_1- inner node disablement + // 30 ifd_gmv_1_4- inner node disablement + // 31 gmv_statistics_1_1- inner node disablement + // 32 odr_gmv_feature_1_4- inner node disablement + // 33 odr_gmv_match_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 40 tnr7_blend_1_1- inner node disablement + // 41 odr_tnr_fp_yuvn_1_4- inner node disablement + // 42 tnr_scaler_fp_1_1- inner node disablement + // 43 image_upscaler_1_1- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFC1E3FFC0; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -31167,53 +29576,62 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn // 5 dpc_2_2- inner node disablement // 6 gd_2_2- inner node disablement // 7 wb_1_1- inner node disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 16 ifd_segmap_bnlm_1_4- inner node disablement - // 17 smurf_bnlm_1_0- inner node disablement - // 18 bnlm_3_4- inner node disablement - // 19 bxt_demosaic- inner node disablement - // 20 vcsc_2_0_b- inner node disablement - // 21 gltm_2_0- inner node disablement - // 22 ifd_segmap_xnr_1_4- inner node disablement - // 23 smurf_xnr_1_0- inner node disablement - // 24 xnr_5_4- inner node disablement - // 25 vcr_3_1- inner node disablement - // 26 glim_2_0- inner node disablement - // 27 acm_1_2- inner node disablement - // 28 gammatm_v4- inner node disablement - // 29 csc_1_1- inner node disablement - // 30 b2i_ds_1_1- inner node disablement - // 31 lbff_crop_espa_1_4- inner node disablement - // 32 image_upscaler_1_1- inner node disablement - // 33 ifd_segmap_cas_1_4- inner node disablement - // 34 smurf_cas_1_0- inner node disablement - // 35 cas_1_1- inner node disablement - // 36 odr_ofs_mp_1_4- inner node disablement - // 37 b2i_ds_output_1_1- inner node disablement - // 38 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF; + // 8 bnlm_3_4- inner node disablement + // 9 bxt_demosaic- inner node disablement + // 10 vcsc_2_0_b- inner node disablement + // 11 gltm_2_0- inner node disablement + // 12 xnr_5_4- inner node disablement + // 13 vcr_3_1- inner node disablement + // 14 glim_2_0- inner node disablement + // 15 acm_1_2- inner node disablement + // 16 gammatm_v4- inner node disablement + // 17 csc_1_1- inner node disablement + // 18 rgbs_grid_1_1- inner node disablement + // 19 ccm_3a_2_0- inner node disablement + // 20 fr_grid_1_0- inner node disablement + // 21 b2i_ds_1_1- inner node disablement + // 22 lbff_crop_espa_1_4- inner node disablement + // 23 tnr7_spatial_1_1- inner node disablement + // 24 tnr_scaler_lb_1_1- inner node disablement + // 25 odr_awb_std_1_4- inner node disablement + // 26 odr_awb_sat_1_4- inner node disablement + // 27 aestatistics_2_1- inner node disablement + // 28 odr_ae_1_4- inner node disablement + // 29 odr_af_std_1_4- inner node disablement + // 30 ifd_gmv_1_4- inner node disablement + // 31 gmv_statistics_1_1- inner node disablement + // 32 odr_gmv_feature_1_4- inner node disablement + // 33 odr_gmv_match_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 40 tnr7_blend_1_1- inner node disablement + // 41 odr_tnr_fp_yuvn_1_4- inner node disablement + // 42 tnr_scaler_fp_1_1- inner node disablement + // 43 image_upscaler_1_1- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064001D501F9009 + // RBM - 0x00000000000000000067FC3D501F9009 bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x64001D; - // DEB - 0x000000000000E1E00000F9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xF9FE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000008F0001E9F - bitmaps.teb[0] = 0xF0001E9F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + bitmaps.rbm[1] = 0x67FC3D; + // DEB - 0x000000000000E13E79FFF9CE8C1BF1F1 + bitmaps.deb[0] = 0x8C1BF1F1; + bitmaps.deb[1] = 0x79FFF9CE; + bitmaps.deb[2] = 0xE13E; + // TEB - 0x000000003FF21E9F + bitmaps.teb[0] = 0x3FF21E9F; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; bitmaps.reb[1] = 0x1F; } @@ -31221,18 +29639,18 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeIn } -void LbffIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffIrWithGmvWithTnrNoSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 39; ++i) + for (uint8_t i = 0; i < 49; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[19].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[27].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[9].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[15].run_kernel.enable = 0; // acm_1_2 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -31276,7 +29694,7 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishSta bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFF00C0; + disabledRunKernelsBitmap[0] |= 0x1FFFFC1E3FFC0; break; } @@ -31296,7 +29714,7 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishSta bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7F00000000; + disabledRunKernelsBitmap[0] |= 0xF80000000000; break; } @@ -31306,18 +29724,16 @@ void LbffIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishSta SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffBayerNoGmvWithTnrWithOpacityOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 43; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[20].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[28].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -31325,176 +29741,183 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000064003D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x64003D; - // DEB - 0x000000000000E1E0000FF9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFF9FE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000008F032009F - bitmaps.teb[0] = 0xF032009F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000067FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13FFFF0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xE13F; + // TEB - 0x000000063FC0009F + bitmaps.teb[0] = 0x3FC0009F; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF00; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C380000; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044003D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x44003D; - // DEB - 0x000000000000C1E0000FF9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFF9FE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000008E0321E9F - bitmaps.teb[0] = 0xE0321E9F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // RBM - 0x00000000000000000047FC9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13FFFF0F9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xC13F; + // TEB - 0x000000062FC01E9F + bitmaps.teb[0] = 0x2FC01E9F; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 40 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000000; + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x400000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000044003D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x44003D; - // DEB - 0x000000000000C1E0000FF9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFF9FE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000008E032009F - bitmaps.teb[0] = 0xE032009F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000047FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13FFFF0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xC13F; + // TEB - 0x000000062FC0009F + bitmaps.teb[0] = 0x2FC0009F; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 40 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000FF00; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40007C380000; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024003D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x24003D; - // DEB - 0x00000000000021E0000FF9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFF9FE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000008D0321E9F - bitmaps.teb[0] = 0xD0321E9F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // RBM - 0x00000000000000000027FC9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213FFFF0F9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0x213F; + // TEB - 0x000000061FC01E9F + bitmaps.teb[0] = 0x1FC01E9F; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000000; + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1800000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024003D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x24003D; - // DEB - 0x00000000000021E0000FF9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFF9FE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000008D032009F - bitmaps.teb[0] = 0xD032009F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F607E7 - bitmaps.reb[0] = 0x10F607E7; + // RBM - 0x00000000000000000027FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213FFFF0F9CE8D8001F1 + bitmaps.deb[0] = 0x8D8001F1; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0x213F; + // TEB - 0x000000061FC0009F + bitmaps.teb[0] = 0x1FC0009F; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F607E7 + bitmaps.reb[0] = 0xF2F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000FF00; + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x180007C380000; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; + // RBM - 0x000000000000000000000080001E6811 + bitmaps.rbm[0] = 0x1E6811; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019BF1F1 + bitmaps.deb[0] = 0x19BF1F1; // TEB - 0x0000000000001E97 bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // REB - 0x00000000000000000000000002007FE7 + bitmaps.reb[0] = 0x2007FE7; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 16 ifd_gmv_1_4- inner node disablement - // 17 ifd_segmap_bnlm_1_4- inner node disablement - // 18 smurf_bnlm_1_0- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 ifd_segmap_xnr_1_4- inner node disablement - // 24 smurf_xnr_1_0- inner node disablement - // 25 xnr_5_4- inner node disablement - // 26 vcr_3_1- inner node disablement - // 27 glim_2_0- inner node disablement - // 28 acm_1_2- inner node disablement - // 29 gammatm_v4- inner node disablement - // 30 csc_1_1- inner node disablement - // 31 b2i_ds_1_1- inner node disablement - // 32 lbff_crop_espa_1_4- inner node disablement - // 33 image_upscaler_1_1- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - // 37 ifd_segmap_cas_1_4- inner node disablement - // 38 smurf_cas_1_0- inner node disablement - // 39 cas_1_1- inner node disablement - // 40 odr_ofs_mp_1_4- inner node disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFF00C0; + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 bnlm_3_4- inner node disablement + // 10 bxt_demosaic- inner node disablement + // 11 vcsc_2_0_b- inner node disablement + // 12 gltm_2_0- inner node disablement + // 13 xnr_5_4- inner node disablement + // 14 vcr_3_1- inner node disablement + // 15 glim_2_0- inner node disablement + // 16 acm_1_2- inner node disablement + // 17 gammatm_v4- inner node disablement + // 18 csc_1_1- inner node disablement + // 22 b2i_ds_1_1- inner node disablement + // 23 lbff_crop_espa_1_4- inner node disablement + // 24 tnr7_spatial_1_1- inner node disablement + // 25 tnr_scaler_lb_1_1- inner node disablement + // 31 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 32 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 33 tnr7_ims_1_2- inner node disablement + // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 35 ifd_segmap_tnr_bc_1_4- inner node disablement + // 36 smurf_tnr_bc_1_0- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_segmap_tnr_blend_1_4- inner node disablement + // 40 smurf_tnr_blend_1_0- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFF83C7FF80; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -31508,62 +29931,69 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node // 0 ifd_pipe_1_4- inner node disablement // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 16 ifd_gmv_1_4- inner node disablement - // 17 ifd_segmap_bnlm_1_4- inner node disablement - // 18 smurf_bnlm_1_0- inner node disablement - // 19 bnlm_3_4- inner node disablement - // 20 bxt_demosaic- inner node disablement - // 21 vcsc_2_0_b- inner node disablement - // 22 gltm_2_0- inner node disablement - // 23 ifd_segmap_xnr_1_4- inner node disablement - // 24 smurf_xnr_1_0- inner node disablement - // 25 xnr_5_4- inner node disablement - // 26 vcr_3_1- inner node disablement - // 27 glim_2_0- inner node disablement - // 28 acm_1_2- inner node disablement - // 29 gammatm_v4- inner node disablement - // 30 csc_1_1- inner node disablement - // 31 b2i_ds_1_1- inner node disablement - // 32 lbff_crop_espa_1_4- inner node disablement - // 33 image_upscaler_1_1- inner node disablement - // 34 gmv_statistics_1_1- inner node disablement - // 35 odr_gmv_feature_1_4- inner node disablement - // 36 odr_gmv_match_1_4- inner node disablement - // 37 ifd_segmap_cas_1_4- inner node disablement - // 38 smurf_cas_1_0- inner node disablement - // 39 cas_1_1- inner node disablement - // 40 odr_ofs_mp_1_4- inner node disablement - // 41 b2i_ds_output_1_1- inner node disablement - // 42 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF; + // 3 dpc_2_2- inner node disablement + // 4 rgb_ir_2_0- inner node disablement + // 5 ifd_lsc_1_4- inner node disablement + // 6 lsc_1_2- inner node disablement + // 7 gd_2_2- inner node disablement + // 8 wb_1_1- inner node disablement + // 9 bnlm_3_4- inner node disablement + // 10 bxt_demosaic- inner node disablement + // 11 vcsc_2_0_b- inner node disablement + // 12 gltm_2_0- inner node disablement + // 13 xnr_5_4- inner node disablement + // 14 vcr_3_1- inner node disablement + // 15 glim_2_0- inner node disablement + // 16 acm_1_2- inner node disablement + // 17 gammatm_v4- inner node disablement + // 18 csc_1_1- inner node disablement + // 19 rgbs_grid_1_1- inner node disablement + // 20 ccm_3a_2_0- inner node disablement + // 21 fr_grid_1_0- inner node disablement + // 22 b2i_ds_1_1- inner node disablement + // 23 lbff_crop_espa_1_4- inner node disablement + // 24 tnr7_spatial_1_1- inner node disablement + // 25 tnr_scaler_lb_1_1- inner node disablement + // 26 odr_awb_std_1_4- inner node disablement + // 27 odr_awb_sat_1_4- inner node disablement + // 28 aestatistics_2_1- inner node disablement + // 29 odr_ae_1_4- inner node disablement + // 30 odr_af_std_1_4- inner node disablement + // 31 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 32 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 33 tnr7_ims_1_2- inner node disablement + // 34 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 35 ifd_segmap_tnr_bc_1_4- inner node disablement + // 36 smurf_tnr_bc_1_0- inner node disablement + // 37 tnr7_bc_1_2- inner node disablement + // 38 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 39 ifd_segmap_tnr_blend_1_4- inner node disablement + // 40 smurf_tnr_blend_1_0- inner node disablement + // 41 tnr7_blend_1_1- inner node disablement + // 42 odr_tnr_fp_yuvn_1_4- inner node disablement + // 43 tnr_scaler_fp_1_1- inner node disablement + // 44 image_upscaler_1_1- inner node disablement + // 45 cas_1_1- inner node disablement + // 46 odr_ofs_mp_1_4- inner node disablement + // 47 b2i_ds_output_1_1- inner node disablement + // 48 odr_ofs_dp_1_4- inner node disablement + // 49 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x3FFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064003D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x64003D; - // DEB - 0x000000000000E1E0000FF9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFF9FE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000008F0321E9F - bitmaps.teb[0] = 0xF0321E9F; - bitmaps.teb[1] = 0x8; - // REB - 0x00000000000000000000001F10F67FE7 - bitmaps.reb[0] = 0x10F67FE7; + // RBM - 0x00000000000000000067FC9D501F6811 + bitmaps.rbm[0] = 0x501F6811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13FFFF0F9CE8D9BF1F1 + bitmaps.deb[0] = 0x8D9BF1F1; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xE13F; + // TEB - 0x000000063FC01E9F + bitmaps.teb[0] = 0x3FC01E9F; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F67FE7 + bitmaps.reb[0] = 0xF2F67FE7; bitmaps.reb[1] = 0x1F; } @@ -31571,18 +30001,16 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node } -void LbffIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffBayerNoGmvWithTnrWithOpacityOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 43; ++i) + for (uint8_t i = 0; i < 50; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[20].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[28].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[4].run_kernel.enable = 0; // rgb_ir_2_0 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -31626,7 +30054,7 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishS bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFFF00C0; + disabledRunKernelsBitmap[0] |= 0x3FFFF83C7FF80; break; } @@ -31646,7 +30074,7 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishS bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7E200000000; + disabledRunKernelsBitmap[0] |= 0x1F00000000000; break; } @@ -31656,18 +30084,17 @@ void LbffIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishS SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 55; ++i) + for (uint8_t i = 0; i < 53; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[22].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[30].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps @@ -31675,170 +30102,170 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC1D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x67FC1D; - // DEB - 0x000000000000E1FFFFF0F9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFFF0F9FE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000EFFC0009F - bitmaps.teb[0] = 0xFFC0009F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x00000000000000000067FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13FFFF0F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xE13F; + // TEB - 0x000000063FC000BF + bitmaps.teb[0] = 0x3FC000BF; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF00; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x210003EC0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC1D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x47FC1D; - // DEB - 0x000000000000C1FFFFF0F9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFFF0F9FE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000EEFC01E9F - bitmaps.teb[0] = 0xEFC01E9F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x00000000000000000047FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13FFFF0F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xC13F; + // TEB - 0x000000062FC41EBF + bitmaps.teb[0] = 0x2FC41EBF; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 52 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000000000; + // 49 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x00000000000000000047FC1D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x47FC1D; - // DEB - 0x000000000000C1FFFFF0F9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFFF0F9FE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000EEFC0009F - bitmaps.teb[0] = 0xEFC0009F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x00000000000000000047FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C13FFFF0F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xC13F; + // TEB - 0x000000062FC000BF + bitmaps.teb[0] = 0x2FC000BF; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 52 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000000FF00; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000210003EC0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC1D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x27FC1D; - // DEB - 0x00000000000021FFFFF0F9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFFF0F9FE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000EDFC01E9F - bitmaps.teb[0] = 0xDFC01E9F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x00000000000000000027FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213FFFF0F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0x213F; + // TEB - 0x000000061FC41EBF + bitmaps.teb[0] = 0x1FC41EBF; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 53 b2i_ds_output_1_1- inner node disablement - // 54 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000000000; + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC1D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x27FC1D; - // DEB - 0x00000000000021FFFFF0F9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFFF0F9FE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000EDFC0009F - bitmaps.teb[0] = 0xDFC0009F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x00000000000000000027FC9D50016816 + bitmaps.rbm[0] = 0x50016816; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x000000000000213FFFF0F9CE8D8001FB + bitmaps.deb[0] = 0x8D8001FB; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0x213F; + // TEB - 0x000000061FC000BF + bitmaps.teb[0] = 0x1FC000BF; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F607F7 + bitmaps.reb[0] = 0xF2F607F7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 53 b2i_ds_output_1_1- inner node disablement - // 54 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000000FF00; + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000210003EC0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // RBM - 0x00000000000000000000008002526E16 + bitmaps.rbm[0] = 0x2526E16; + bitmaps.rbm[1] = 0x80; + // DEB - 0x000000000000000000000000019FF1FB + bitmaps.deb[0] = 0x19FF1FB; + // TEB - 0x0000000000041EBF + bitmaps.teb[0] = 0x41EBF; + // REB - 0x00000000000000000000000002007FF7 + bitmaps.reb[0] = 0x2007FF7; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 16 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 17 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 18 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 19 ifd_segmap_bnlm_1_4- inner node disablement - // 20 smurf_bnlm_1_0- inner node disablement - // 21 bnlm_3_4- inner node disablement - // 22 bxt_demosaic- inner node disablement - // 23 vcsc_2_0_b- inner node disablement - // 24 gltm_2_0- inner node disablement - // 25 ifd_segmap_xnr_1_4- inner node disablement - // 26 smurf_xnr_1_0- inner node disablement - // 27 xnr_5_4- inner node disablement - // 28 vcr_3_1- inner node disablement - // 29 glim_2_0- inner node disablement - // 30 acm_1_2- inner node disablement - // 31 gammatm_v4- inner node disablement - // 32 csc_1_1- inner node disablement - // 33 b2i_ds_1_1- inner node disablement - // 34 lbff_crop_espa_1_4- inner node disablement - // 35 tnr7_spatial_1_1- inner node disablement - // 36 tnr_scaler_lb_1_1- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 tnr7_spatial_1_1- inner node disablement + // 32 tnr_scaler_lb_1_1- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement // 38 ifd_segmap_tnr_bc_1_4- inner node disablement // 39 smurf_tnr_bc_1_0- inner node disablement // 40 tnr7_bc_1_2- inner node disablement @@ -31849,14 +30276,12 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node // 45 odr_tnr_fp_yuvn_1_4- inner node disablement // 46 tnr_scaler_fp_1_1- inner node disablement // 47 image_upscaler_1_1- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 49 ifd_segmap_cas_1_4- inner node disablement - // 50 smurf_cas_1_0- inner node disablement - // 51 cas_1_1- inner node disablement - // 52 odr_ofs_mp_1_4- inner node disablement - // 53 b2i_ds_output_1_1- inner node disablement - // 54 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF00C0; + // 48 cas_1_1- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFDEFFF0000; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { @@ -31868,43 +30293,43 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node // Kernels disablement // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement + // 1 ifd_pipe_long_1_4- inner node disablement + // 2 dol_lite_1_2- inner node disablement + // 3 bxt_blc- inner node disablement + // 4 linearization2_0- inner node disablement // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 16 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 17 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 18 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 19 ifd_segmap_bnlm_1_4- inner node disablement - // 20 smurf_bnlm_1_0- inner node disablement - // 21 bnlm_3_4- inner node disablement - // 22 bxt_demosaic- inner node disablement - // 23 vcsc_2_0_b- inner node disablement - // 24 gltm_2_0- inner node disablement - // 25 ifd_segmap_xnr_1_4- inner node disablement - // 26 smurf_xnr_1_0- inner node disablement - // 27 xnr_5_4- inner node disablement - // 28 vcr_3_1- inner node disablement - // 29 glim_2_0- inner node disablement - // 30 acm_1_2- inner node disablement - // 31 gammatm_v4- inner node disablement - // 32 csc_1_1- inner node disablement - // 33 b2i_ds_1_1- inner node disablement - // 34 lbff_crop_espa_1_4- inner node disablement - // 35 tnr7_spatial_1_1- inner node disablement - // 36 tnr_scaler_lb_1_1- inner node disablement - // 37 tnr7_ims_1_2- inner node disablement + // 6 rgbs_grid_1_1- inner node disablement + // 7 ccm_3a_2_0- inner node disablement + // 8 rgb_ir_2_0- inner node disablement + // 9 odr_awb_std_1_4- inner node disablement + // 10 odr_awb_sve_1_4- inner node disablement + // 11 odr_awb_sat_1_4- inner node disablement + // 12 aestatistics_2_1- inner node disablement + // 13 odr_ae_1_4- inner node disablement + // 14 ifd_lsc_1_4- inner node disablement + // 15 lsc_1_2- inner node disablement + // 16 gd_2_2- inner node disablement + // 17 wb_1_1- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 xnr_5_4- inner node disablement + // 23 vcr_3_1- inner node disablement + // 24 glim_2_0- inner node disablement + // 25 acm_1_2- inner node disablement + // 26 gammatm_v4- inner node disablement + // 27 csc_1_1- inner node disablement + // 28 fr_grid_1_0- inner node disablement + // 29 b2i_ds_1_1- inner node disablement + // 30 lbff_crop_espa_1_4- inner node disablement + // 31 tnr7_spatial_1_1- inner node disablement + // 32 tnr_scaler_lb_1_1- inner node disablement + // 33 odr_af_std_1_4- inner node disablement + // 34 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 35 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 36 tnr7_ims_1_2- inner node disablement + // 37 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement // 38 ifd_segmap_tnr_bc_1_4- inner node disablement // 39 smurf_tnr_bc_1_0- inner node disablement // 40 tnr7_bc_1_2- inner node disablement @@ -31915,29 +30340,27 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node // 45 odr_tnr_fp_yuvn_1_4- inner node disablement // 46 tnr_scaler_fp_1_1- inner node disablement // 47 image_upscaler_1_1- inner node disablement - // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 49 ifd_segmap_cas_1_4- inner node disablement - // 50 smurf_cas_1_0- inner node disablement - // 51 cas_1_1- inner node disablement - // 52 odr_ofs_mp_1_4- inner node disablement - // 53 b2i_ds_output_1_1- inner node disablement - // 54 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFF; + // 48 cas_1_1- inner node disablement + // 49 odr_ofs_mp_1_4- inner node disablement + // 50 b2i_ds_output_1_1- inner node disablement + // 51 odr_ofs_dp_1_4- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1FFFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000067FC1D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x67FC1D; - // DEB - 0x000000000000E1FFFFF0F9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFFF0F9FE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000EFFC01E9F - bitmaps.teb[0] = 0xFFC01E9F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x00000000000000000067FC9D52536E16 + bitmaps.rbm[0] = 0x52536E16; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E13FFFF0F9CE8D9FF1FB + bitmaps.deb[0] = 0x8D9FF1FB; + bitmaps.deb[1] = 0xFFF0F9CE; + bitmaps.deb[2] = 0xE13F; + // TEB - 0x000000063FC41EBF + bitmaps.teb[0] = 0x3FC41EBF; + bitmaps.teb[1] = 0x6; + // REB - 0x00000000000000000000001FF2F67FF7 + bitmaps.reb[0] = 0xF2F67FF7; bitmaps.reb[1] = 0x1F; } @@ -31945,18 +30368,17 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags node } -void LbffIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 55; ++i) + for (uint8_t i = 0; i < 53; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[22].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[30].run_kernel.enable = 0; // acm_1_2 + nodeKernels.kernelList[8].run_kernel.enable = 0; // rgb_ir_2_0 + nodeKernels.kernelList[17].run_kernel.enable = 0; // wb_1_1 // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; @@ -32000,7 +30422,7 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishS bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFFFFFF00C0; + disabledRunKernelsBitmap[0] |= 0x1FFFFDEFFF0000; break; } @@ -32020,7 +30442,7 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishS bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7E800000000000; + disabledRunKernelsBitmap[0] |= 0xF800000000000; break; } @@ -32030,762 +30452,466 @@ void LbffIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishS SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffIrWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 59; ++i) + for (uint8_t i = 0; i < 44; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[23].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[31].run_kernel.enable = 0; // acm_1_2 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x00000000000000000067FC3D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x67FC3D; - // DEB - 0x000000000000E1FFFFFFF9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFFFFF9FE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000EFFF2009F - bitmaps.teb[0] = 0xFFF2009F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0xFF00; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000047FC3D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x47FC3D; - // DEB - 0x000000000000C1FFFFFFF9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFFFFF9FE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000EEFF21E9F - bitmaps.teb[0] = 0xEFF21E9F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x0000000000000000006400DD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x6400DD; + // DEB - 0x000000000000E1E00000FFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F000409F + bitmaps.teb[0] = 0xF000409F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 56 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x100000000000000; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C390; } - else if (nodeRelevantInnerOptions == (no3A | noMp)) + else if (nodeRelevantInnerOptions == (noIr)) { // HW bitmaps - // RBM - 0x00000000000000000047FC3D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x47FC3D; - // DEB - 0x000000000000C1FFFFFFF9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFFFFF9FE; - bitmaps.deb[2] = 0xC1FF; - // TEB - 0x0000000EEFF2009F - bitmaps.teb[0] = 0xEFF2009F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x00000000000000000064009D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0041E9F + bitmaps.teb[0] = 0xF0041E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 56 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000000000FF00; + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (no3A | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000027FC3D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x27FC3D; - // DEB - 0x00000000000021FFFFFFF9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFFFFF9FE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000EDFF21E9F - bitmaps.teb[0] = 0xDFF21E9F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // RBM - 0x00000000000000000064009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x64009D; + // DEB - 0x000000000000E1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F000009F + bitmaps.teb[0] = 0xF000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 57 b2i_ds_output_1_1- inner node disablement - // 58 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x600000000000000; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C3D0; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x00000000000000000027FC3D50019009 - bitmaps.rbm[0] = 0x50019009; - bitmaps.rbm[1] = 0x27FC3D; - // DEB - 0x00000000000021FFFFFFF9FEEC0001F1 - bitmaps.deb[0] = 0xEC0001F1; - bitmaps.deb[1] = 0xFFFFF9FE; - bitmaps.deb[2] = 0x21FF; - // TEB - 0x0000000EDFF2009F - bitmaps.teb[0] = 0xDFF2009F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F607E7 - bitmaps.reb[0] = 0xF0F607E7; + // RBM - 0x0000000000000000004400DD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x4400DD; + // DEB - 0x000000000000C1E00000FFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0045E9F + bitmaps.teb[0] = 0xE0045E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 57 b2i_ds_output_1_1- inner node disablement - // 58 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000000000FF00; + // 41 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000000; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x000000000000000000000000001E9009 - bitmaps.rbm[0] = 0x1E9009; - // DEB - 0x000000000000000000000000001BF1F1 - bitmaps.deb[0] = 0x1BF1F1; - // TEB - 0x0000000000001E97 - bitmaps.teb[0] = 0x1E97; - // REB - 0x00000000000000000000000000007FE7 - bitmaps.reb[0] = 0x7FE7; + // RBM - 0x0000000000000000004400DD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x4400DD; + // DEB - 0x000000000000C1E00000FFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E000409F + bitmaps.teb[0] = 0xE000409F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 16 ifd_gmv_1_4- inner node disablement - // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 acm_1_2- inner node disablement - // 32 gammatm_v4- inner node disablement - // 33 csc_1_1- inner node disablement - // 34 b2i_ds_1_1- inner node disablement - // 35 lbff_crop_espa_1_4- inner node disablement - // 36 tnr7_spatial_1_1- inner node disablement - // 37 tnr_scaler_lb_1_1- inner node disablement - // 38 tnr7_ims_1_2- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - // 42 ifd_segmap_tnr_bc_1_4- inner node disablement - // 43 smurf_tnr_bc_1_0- inner node disablement - // 44 tnr7_bc_1_2- inner node disablement - // 45 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 46 ifd_segmap_tnr_blend_1_4- inner node disablement - // 47 smurf_tnr_blend_1_0- inner node disablement - // 48 tnr7_blend_1_1- inner node disablement - // 49 odr_tnr_fp_yuvn_1_4- inner node disablement - // 50 tnr_scaler_fp_1_1- inner node disablement - // 51 image_upscaler_1_1- inner node disablement - // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 53 ifd_segmap_cas_1_4- inner node disablement - // 54 smurf_cas_1_0- inner node disablement - // 55 cas_1_1- inner node disablement - // 56 odr_ofs_mp_1_4- inner node disablement - // 57 b2i_ds_output_1_1- inner node disablement - // 58 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF00C0; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000007C390; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + // RBM - 0x00000000000000000044009D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E0041E9F + bitmaps.teb[0] = 0xE0041E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 ifd_lsc_1_4- inner node disablement - // 4 lsc_1_2- inner node disablement - // 5 dpc_2_2- inner node disablement - // 6 gd_2_2- inner node disablement - // 7 wb_1_1- inner node disablement - // 8 rgbs_grid_1_1- inner node disablement - // 9 ccm_3a_2_0- inner node disablement - // 10 fr_grid_1_0- inner node disablement - // 11 odr_awb_std_1_4- inner node disablement - // 12 odr_awb_sat_1_4- inner node disablement - // 13 aestatistics_2_1- inner node disablement - // 14 odr_ae_1_4- inner node disablement - // 15 odr_af_std_1_4- inner node disablement - // 16 ifd_gmv_1_4- inner node disablement - // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement - // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement - // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement - // 20 ifd_segmap_bnlm_1_4- inner node disablement - // 21 smurf_bnlm_1_0- inner node disablement - // 22 bnlm_3_4- inner node disablement - // 23 bxt_demosaic- inner node disablement - // 24 vcsc_2_0_b- inner node disablement - // 25 gltm_2_0- inner node disablement - // 26 ifd_segmap_xnr_1_4- inner node disablement - // 27 smurf_xnr_1_0- inner node disablement - // 28 xnr_5_4- inner node disablement - // 29 vcr_3_1- inner node disablement - // 30 glim_2_0- inner node disablement - // 31 acm_1_2- inner node disablement - // 32 gammatm_v4- inner node disablement - // 33 csc_1_1- inner node disablement - // 34 b2i_ds_1_1- inner node disablement - // 35 lbff_crop_espa_1_4- inner node disablement - // 36 tnr7_spatial_1_1- inner node disablement - // 37 tnr_scaler_lb_1_1- inner node disablement - // 38 tnr7_ims_1_2- inner node disablement - // 39 gmv_statistics_1_1- inner node disablement - // 40 odr_gmv_feature_1_4- inner node disablement - // 41 odr_gmv_match_1_4- inner node disablement - // 42 ifd_segmap_tnr_bc_1_4- inner node disablement - // 43 smurf_tnr_bc_1_0- inner node disablement - // 44 tnr7_bc_1_2- inner node disablement - // 45 odr_tnr_sp_bc_rs4n_1_4- inner node disablement - // 46 ifd_segmap_tnr_blend_1_4- inner node disablement - // 47 smurf_tnr_blend_1_0- inner node disablement - // 48 tnr7_blend_1_1- inner node disablement - // 49 odr_tnr_fp_yuvn_1_4- inner node disablement - // 50 tnr_scaler_fp_1_1- inner node disablement - // 51 image_upscaler_1_1- inner node disablement - // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement - // 53 ifd_segmap_cas_1_4- inner node disablement - // 54 smurf_cas_1_0- inner node disablement - // 55 cas_1_1- inner node disablement - // 56 odr_ofs_mp_1_4- inner node disablement - // 57 b2i_ds_output_1_1- inner node disablement - // 58 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFFF; + // 6 odr_ir_1_4- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000040; } - else // default inner node + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) { - // RBM - 0x00000000000000000067FC3D501F9009 - bitmaps.rbm[0] = 0x501F9009; - bitmaps.rbm[1] = 0x67FC3D; - // DEB - 0x000000000000E1FFFFFFF9FEEC1BF1F1 - bitmaps.deb[0] = 0xEC1BF1F1; - bitmaps.deb[1] = 0xFFFFF9FE; - bitmaps.deb[2] = 0xE1FF; - // TEB - 0x0000000EFFF21E9F - bitmaps.teb[0] = 0xFFF21E9F; - bitmaps.teb[1] = 0xE; - // REB - 0x00000000000000000000001FF0F67FE7 - bitmaps.reb[0] = 0xF0F67FE7; + // HW bitmaps + // RBM - 0x00000000000000000044009D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x44009D; + // DEB - 0x000000000000C1E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000009E000009F + bitmaps.teb[0] = 0xE000009F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; - } - - SetDisabledKernels(disabledRunKernelsBitmap); - -} - -void LbffIrWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 59; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; - } - - // Pass-through kernels - nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 - nodeKernels.kernelList[23].run_kernel.enable = 0; // bxt_demosaic - nodeKernels.kernelList[31].run_kernel.enable = 0; // acm_1_2 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; - - switch (vanishStatus) - { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; - - break; - } - case VanishOption::AfterStats: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFFFFFFF00C0; - - break; - } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7E8000000000000; - - break; - } - } - - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} -void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ - // Kernel default enablement - for (uint8_t i = 0; i < 47; ++i) - { - nodeKernels.kernelList[i].run_kernel.enable = 1; + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000007C3D0; } - - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); - bitmaps = HwBitmaps(); // reset HW bitmaps - uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; - if (nodeRelevantInnerOptions == (no3A)) + else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x00000000000000000064009D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // RBM - 0x0000000000000000002400DD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x2400DD; + // DEB - 0x00000000000021E00000FFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F008009F - bitmaps.teb[0] = 0xF008009F; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D0045E9F + bitmaps.teb[0] = 0xD0045E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000000; } - else if (nodeRelevantInnerOptions == (noPdaf)) + else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000064009D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0081E9F - bitmaps.teb[0] = 0xF0081E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C0000; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) - { - // HW bitmaps - // RBM - 0x00000000000000000064009D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x64009D; - // DEB - 0x000000000000E1E00000FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F008009F - bitmaps.teb[0] = 0xF008009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; - } - else if (nodeRelevantInnerOptions == (noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000044019D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x44019D; - // DEB - 0x000000000000C1E00000FFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0083F9F - bitmaps.teb[0] = 0xE0083F9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x100000000000; - } - else if (nodeRelevantInnerOptions == (no3A | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E008009F - bitmaps.teb[0] = 0xE008009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000003FFC00; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E0081E9F - bitmaps.teb[0] = 0xE0081E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; - bitmaps.reb[1] = 0x1F; - - // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000003C0000; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) - { - // HW bitmaps - // RBM - 0x00000000000000000044009D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x44009D; - // DEB - 0x000000000000C1E00000FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // RBM - 0x0000000000000000002400DD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x2400DD; + // DEB - 0x00000000000021E00000FFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E008009F - bitmaps.teb[0] = 0xE008009F; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000009D000409F + bitmaps.teb[0] = 0xD000409F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000007C390; } - else if (nodeRelevantInnerOptions == (noDp)) + else if (nodeRelevantInnerOptions == (noDp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000024019D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x24019D; - // DEB - 0x00000000000021E00000FFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; + // RBM - 0x00000000000000000024009D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x24009D; + // DEB - 0x00000000000021E00000FFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; bitmaps.deb[1] = 0xFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0083F9F - bitmaps.teb[0] = 0xD0083F9F; + // TEB - 0x00000009D0041E9F + bitmaps.teb[0] = 0xD0041E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x600000000000; + // 6 odr_ir_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000040; } - else if (nodeRelevantInnerOptions == (no3A | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) { // HW bitmaps - // RBM - 0x00000000000000000024009D54016811 - bitmaps.rbm[0] = 0x54016811; + // RBM - 0x00000000000000000024009D50016811 + bitmaps.rbm[0] = 0x50016811; bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // DEB - 0x00000000000021E00000FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; bitmaps.deb[1] = 0xFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D008009F - bitmaps.teb[0] = 0xD008009F; + // TEB - 0x00000009D000009F + bitmaps.teb[0] = 0xD000009F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000007C3D0; } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D0081E9F - bitmaps.teb[0] = 0xD0081E9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000004000206071 + bitmaps.rbm[0] = 0x206071; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003871131 + bitmaps.deb[0] = 0x3871131; + // TEB - 0x0000000000045817 + bitmaps.teb[0] = 0x45817; + // REB - 0x0000000000000000000000000300118F + bitmaps.reb[0] = 0x300118F; // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000003C0000; + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_segmap_bnlm_1_4- inner node disablement + // 20 smurf_bnlm_1_0- inner node disablement + // 21 bnlm_3_4- inner node disablement + // 22 bxt_demosaic- inner node disablement + // 23 vcsc_2_0_b- inner node disablement + // 24 gltm_2_0- inner node disablement + // 25 ifd_segmap_xnr_1_4- inner node disablement + // 26 smurf_xnr_1_0- inner node disablement + // 27 xnr_5_4- inner node disablement + // 28 vcr_3_1- inner node disablement + // 29 glim_2_0- inner node disablement + // 30 ifd_segmap_acm_1_4- inner node disablement + // 31 smurf_acm_1_0- inner node disablement + // 32 acm_1_2- inner node disablement + // 33 gammatm_v4- inner node disablement + // 34 csc_1_1- inner node disablement + // 35 b2i_ds_1_1- inner node disablement + // 36 lbff_crop_espa_1_4- inner node disablement + // 37 image_upscaler_1_1- inner node disablement + // 38 ifd_segmap_cas_1_4- inner node disablement + // 39 smurf_cas_1_0- inner node disablement + // 40 cas_1_1- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFC00; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) { // HW bitmaps - // RBM - 0x00000000000000000024009D54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x24009D; - // DEB - 0x00000000000021E00000FFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; - bitmaps.deb[1] = 0xFFFE; - bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D008009F - bitmaps.teb[0] = 0xD008009F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; - bitmaps.reb[1] = 0x1F; + // RBM - 0x00000000000000000000004000006011 + bitmaps.rbm[0] = 0x6011; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003800131 + bitmaps.deb[0] = 0x3800131; + // TEB - 0x0000000000004017 + bitmaps.teb[0] = 0x4017; + // REB - 0x00000000000000000000000003000187 + bitmaps.reb[0] = 0x3000187; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_segmap_bnlm_1_4- inner node disablement + // 20 smurf_bnlm_1_0- inner node disablement + // 21 bnlm_3_4- inner node disablement + // 22 bxt_demosaic- inner node disablement + // 23 vcsc_2_0_b- inner node disablement + // 24 gltm_2_0- inner node disablement + // 25 ifd_segmap_xnr_1_4- inner node disablement + // 26 smurf_xnr_1_0- inner node disablement + // 27 xnr_5_4- inner node disablement + // 28 vcr_3_1- inner node disablement + // 29 glim_2_0- inner node disablement + // 30 ifd_segmap_acm_1_4- inner node disablement + // 31 smurf_acm_1_0- inner node disablement + // 32 acm_1_2- inner node disablement + // 33 gammatm_v4- inner node disablement + // 34 csc_1_1- inner node disablement + // 35 b2i_ds_1_1- inner node disablement + // 36 lbff_crop_espa_1_4- inner node disablement + // 37 image_upscaler_1_1- inner node disablement + // 38 ifd_segmap_cas_1_4- inner node disablement + // 39 smurf_cas_1_0- inner node disablement + // 40 cas_1_1- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFF90; } - else if (nodeRelevantInnerOptions == (noMp | noDp)) + else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) { // HW bitmaps - // RBM - 0x000000000000000000000180041E6811 - bitmaps.rbm[0] = 0x41E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001FBFFF1 - bitmaps.deb[0] = 0x1FBFFF1; - // TEB - 0x0000000000083F97 - bitmaps.teb[0] = 0x83F97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; + // RBM - 0x00000000000000000000000000200061 + bitmaps.rbm[0] = 0x200061; + // DEB - 0x00000000000000000000000000071031 + bitmaps.deb[0] = 0x71031; + // TEB - 0x0000000000041817 + bitmaps.teb[0] = 0x41817; + // REB - 0x0000000000000000000000000000100F + bitmaps.reb[0] = 0x100F; // Kernels disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 ifd_segmap_cas_1_4- inner node disablement - // 42 smurf_cas_1_0- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFC00300; + // 3 dpc_2_2- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_segmap_bnlm_1_4- inner node disablement + // 20 smurf_bnlm_1_0- inner node disablement + // 21 bnlm_3_4- inner node disablement + // 22 bxt_demosaic- inner node disablement + // 23 vcsc_2_0_b- inner node disablement + // 24 gltm_2_0- inner node disablement + // 25 ifd_segmap_xnr_1_4- inner node disablement + // 26 smurf_xnr_1_0- inner node disablement + // 27 xnr_5_4- inner node disablement + // 28 vcr_3_1- inner node disablement + // 29 glim_2_0- inner node disablement + // 30 ifd_segmap_acm_1_4- inner node disablement + // 31 smurf_acm_1_0- inner node disablement + // 32 acm_1_2- inner node disablement + // 33 gammatm_v4- inner node disablement + // 34 csc_1_1- inner node disablement + // 35 b2i_ds_1_1- inner node disablement + // 36 lbff_crop_espa_1_4- inner node disablement + // 37 image_upscaler_1_1- inner node disablement + // 38 ifd_segmap_cas_1_4- inner node disablement + // 39 smurf_cas_1_0- inner node disablement + // 40 cas_1_1- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFC68; } - else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -32798,170 +30924,62 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOpti // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 ifd_segmap_cas_1_4- inner node disablement - // 42 smurf_cas_1_0- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFF; - } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x000000000000000000000080041E6811 - bitmaps.rbm[0] = 0x41E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x00000000000000000000000001BBF1F1 - bitmaps.deb[0] = 0x1BBF1F1; - // TEB - 0x0000000000081E97 - bitmaps.teb[0] = 0x81E97; - // REB - 0x0000000000000000000000000200FFE7 - bitmaps.reb[0] = 0x200FFE7; - - // Kernels disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 ifd_segmap_cas_1_4- inner node disablement - // 42 smurf_cas_1_0- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFC0300; - } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) - { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 - - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_segmap_bnlm_1_4- inner node disablement - // 23 smurf_bnlm_1_0- inner node disablement - // 24 bnlm_3_4- inner node disablement - // 25 bxt_demosaic- inner node disablement - // 26 vcsc_2_0_b- inner node disablement - // 27 gltm_2_0- inner node disablement - // 28 ifd_segmap_xnr_1_4- inner node disablement - // 29 smurf_xnr_1_0- inner node disablement - // 30 xnr_5_4- inner node disablement - // 31 vcr_3_1- inner node disablement - // 32 glim_2_0- inner node disablement - // 33 ifd_segmap_acm_1_4- inner node disablement - // 34 smurf_acm_1_0- inner node disablement - // 35 acm_1_2- inner node disablement - // 36 gammatm_v4- inner node disablement - // 37 csc_1_1- inner node disablement - // 38 b2i_ds_1_1- inner node disablement - // 39 lbff_crop_espa_1_4- inner node disablement - // 40 image_upscaler_1_1- inner node disablement - // 41 ifd_segmap_cas_1_4- inner node disablement - // 42 smurf_cas_1_0- inner node disablement - // 43 cas_1_1- inner node disablement - // 44 odr_ofs_mp_1_4- inner node disablement - // 45 b2i_ds_output_1_1- inner node disablement - // 46 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFF; + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_segmap_bnlm_1_4- inner node disablement + // 20 smurf_bnlm_1_0- inner node disablement + // 21 bnlm_3_4- inner node disablement + // 22 bxt_demosaic- inner node disablement + // 23 vcsc_2_0_b- inner node disablement + // 24 gltm_2_0- inner node disablement + // 25 ifd_segmap_xnr_1_4- inner node disablement + // 26 smurf_xnr_1_0- inner node disablement + // 27 xnr_5_4- inner node disablement + // 28 vcr_3_1- inner node disablement + // 29 glim_2_0- inner node disablement + // 30 ifd_segmap_acm_1_4- inner node disablement + // 31 smurf_acm_1_0- inner node disablement + // 32 acm_1_2- inner node disablement + // 33 gammatm_v4- inner node disablement + // 34 csc_1_1- inner node disablement + // 35 b2i_ds_1_1- inner node disablement + // 36 lbff_crop_espa_1_4- inner node disablement + // 37 image_upscaler_1_1- inner node disablement + // 38 ifd_segmap_cas_1_4- inner node disablement + // 39 smurf_cas_1_0- inner node disablement + // 40 cas_1_1- inner node disablement + // 41 odr_ofs_mp_1_4- inner node disablement + // 42 b2i_ds_output_1_1- inner node disablement + // 43 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFF; } else // default inner node { - // RBM - 0x00000000000000000064019D541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x64019D; - // DEB - 0x000000000000E1E00000FFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; + // RBM - 0x0000000000000000006400DD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x6400DD; + // DEB - 0x000000000000E1E00000FFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; bitmaps.deb[1] = 0xFFFE; bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F0083F9F - bitmaps.teb[0] = 0xF0083F9F; + // TEB - 0x00000009F0045E9F + bitmaps.teb[0] = 0xF0045E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; } @@ -32969,17 +30987,14 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOpti } -void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +void LbffRgbIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) { // Kernel default enablement - for (uint8_t i = 0; i < 47; ++i) + for (uint8_t i = 0; i < 44; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - // Kernel current inner node enablement uint64_t disabledRunKernelsBitmap[2]; disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; @@ -33022,7 +31037,7 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishO bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFFC00300; + disabledRunKernelsBitmap[0] |= 0xFFFFFF83000; break; } @@ -33042,7 +31057,7 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishO bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7F0000000000; + disabledRunKernelsBitmap[0] |= 0xFE000000000; break; } @@ -33052,384 +31067,478 @@ void LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishO SetDisabledKernels(disabledRunKernelsBitmap); } -void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +void LbffRgbIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) { // Kernel default enablement - for (uint8_t i = 0; i < 51; ++i) + for (uint8_t i = 0; i < 48; ++i) { nodeKernels.kernelList[i].run_kernel.enable = 1; } - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noPdaf | noMp | noDp); + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); bitmaps = HwBitmaps(); // reset HW bitmaps uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // RBM - 0x0000000000000000006400FD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x6400FD; + // DEB - 0x000000000000E1E0000FFFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F03A009F - bitmaps.teb[0] = 0xF03A009F; + // TEB - 0x00000009F032409F + bitmaps.teb[0] = 0xF032409F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C390; } - else if (nodeRelevantInnerOptions == (noPdaf)) + else if (nodeRelevantInnerOptions == (noIr)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD541F6811 - bitmaps.rbm[0] = 0x541F6811; + // RBM - 0x0000000000000000006400BD503B6871 + bitmaps.rbm[0] = 0x503B6871; bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; + // DEB - 0x000000000000E1E0000FFFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F03A1E9F - bitmaps.teb[0] = 0xF03A1E9F; + // TEB - 0x00000009F0361E9F + bitmaps.teb[0] = 0xF0361E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3C0000; + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf)) + else if (nodeRelevantInnerOptions == (no3A | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000006400BD54016811 - bitmaps.rbm[0] = 0x54016811; + // RBM - 0x0000000000000000006400BD50016811 + bitmaps.rbm[0] = 0x50016811; bitmaps.rbm[1] = 0x6400BD; - // DEB - 0x000000000000E1E0000FFFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // DEB - 0x000000000000E1E0000FFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F03A009F - bitmaps.teb[0] = 0xF03A009F; + // TEB - 0x00000009F032009F + bitmaps.teb[0] = 0xF032009F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x3FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C3D0; } else if (nodeRelevantInnerOptions == (noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004401BD541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x4401BD; - // DEB - 0x000000000000C1E0000FFFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; + // RBM - 0x0000000000000000004400FD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x4400FD; + // DEB - 0x000000000000C1E0000FFFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E03A3F9F - bitmaps.teb[0] = 0xE03A3F9F; + // TEB - 0x00000009E0365E9F + bitmaps.teb[0] = 0xE0365E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x1000000000000; + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000000; } else if (nodeRelevantInnerOptions == (no3A | noMp)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // RBM - 0x0000000000000000004400FD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x4400FD; + // DEB - 0x000000000000C1E0000FFFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E03A009F - bitmaps.teb[0] = 0xE03A009F; + // TEB - 0x00000009E032409F + bitmaps.teb[0] = 0xE032409F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000007C390; } - else if (nodeRelevantInnerOptions == (noPdaf | noMp)) + else if (nodeRelevantInnerOptions == (noMp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD541F6811 - bitmaps.rbm[0] = 0x541F6811; + // RBM - 0x0000000000000000004400BD503B6871 + bitmaps.rbm[0] = 0x503B6871; bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; + // DEB - 0x000000000000C1E0000FFFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E03A1E9F - bitmaps.teb[0] = 0xE03A1E9F; + // TEB - 0x00000009E0361E9F + bitmaps.teb[0] = 0xE0361E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000003C0000; + // 6 odr_ir_1_4- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000040; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp)) + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000004400BD54016811 - bitmaps.rbm[0] = 0x54016811; + // RBM - 0x0000000000000000004400BD50016811 + bitmaps.rbm[0] = 0x50016811; bitmaps.rbm[1] = 0x4400BD; - // DEB - 0x000000000000C1E0000FFFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // DEB - 0x000000000000C1E0000FFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0xC1E0; - // TEB - 0x00000009E03A009F - bitmaps.teb[0] = 0xE03A009F; + // TEB - 0x00000009E032009F + bitmaps.teb[0] = 0xE032009F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x10000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000007C3D0; } else if (nodeRelevantInnerOptions == (noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002401BD541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x2401BD; - // DEB - 0x00000000000021E0000FFFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; + // RBM - 0x0000000000000000002400FD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x2400FD; + // DEB - 0x00000000000021E0000FFFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D03A3F9F - bitmaps.teb[0] = 0xD03A3F9F; + // TEB - 0x00000009D0365E9F + bitmaps.teb[0] = 0xD0365E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x6000000000000; + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000000; } else if (nodeRelevantInnerOptions == (no3A | noDp)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD54016811 - bitmaps.rbm[0] = 0x54016811; - bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // RBM - 0x0000000000000000002400FD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x2400FD; + // DEB - 0x00000000000021E0000FFFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D03A009F - bitmaps.teb[0] = 0xD03A009F; + // TEB - 0x00000009D032409F + bitmaps.teb[0] = 0xD032409F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000007C390; } - else if (nodeRelevantInnerOptions == (noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (noDp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD541F6811 - bitmaps.rbm[0] = 0x541F6811; + // RBM - 0x0000000000000000002400BD503B6871 + bitmaps.rbm[0] = 0x503B6871; bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEEDBBF1F1 - bitmaps.deb[0] = 0xEDBBF1F1; + // DEB - 0x00000000000021E0000FFFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D03A1E9F - bitmaps.teb[0] = 0xD03A1E9F; + // TEB - 0x00000009D0361E9F + bitmaps.teb[0] = 0xD0361E9F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F6FFE7 - bitmaps.reb[0] = 0x12F6FFE7; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000003C0000; + // 6 odr_ir_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000040; } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noDp)) + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) { // HW bitmaps - // RBM - 0x0000000000000000002400BD54016811 - bitmaps.rbm[0] = 0x54016811; + // RBM - 0x0000000000000000002400BD50016811 + bitmaps.rbm[0] = 0x50016811; bitmaps.rbm[1] = 0x2400BD; - // DEB - 0x00000000000021E0000FFFFEEDA001F1 - bitmaps.deb[0] = 0xEDA001F1; + // DEB - 0x00000000000021E0000FFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; bitmaps.deb[1] = 0xFFFFE; bitmaps.deb[2] = 0x21E0; - // TEB - 0x00000009D03A009F - bitmaps.teb[0] = 0xD03A009F; + // TEB - 0x00000009D032009F + bitmaps.teb[0] = 0xD032009F; bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F12F687E7 - bitmaps.reb[0] = 0x12F687E7; + // REB - 0x00000000000000000000001F13F607E7 + bitmaps.reb[0] = 0x13F607E7; bitmaps.reb[1] = 0x1F; // Kernels disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x60000003FFC00; + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000007C3D0; } else if (nodeRelevantInnerOptions == (noMp | noDp)) { // HW bitmaps - // RBM - 0x000000000000000000000180041E6811 - bitmaps.rbm[0] = 0x41E6811; - bitmaps.rbm[1] = 0x180; - // DEB - 0x00000000000000000000000001FBFFF1 - bitmaps.deb[0] = 0x1FBFFF1; - // TEB - 0x0000000000083F97 - bitmaps.teb[0] = 0x83F97; - // REB - 0x0000000000000000000000000601FFE7 - bitmaps.reb[0] = 0x601FFE7; + // RBM - 0x00000000000000000000004000206071 + bitmaps.rbm[0] = 0x206071; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003871131 + bitmaps.deb[0] = 0x3871131; + // TEB - 0x0000000000045817 + bitmaps.teb[0] = 0x45817; + // REB - 0x0000000000000000000000000300118F + bitmaps.reb[0] = 0x300118F; // Kernels disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 image_upscaler_1_1- inner node disablement - // 42 gmv_statistics_1_1- inner node disablement - // 43 odr_gmv_feature_1_4- inner node disablement - // 44 odr_gmv_match_1_4- inner node disablement - // 45 ifd_segmap_cas_1_4- inner node disablement - // 46 smurf_cas_1_0- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFC00300; + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + // 42 ifd_segmap_cas_1_4- inner node disablement + // 43 smurf_cas_1_0- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC00; } else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000006011 + bitmaps.rbm[0] = 0x6011; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003800131 + bitmaps.deb[0] = 0x3800131; + // TEB - 0x0000000000004017 + bitmaps.teb[0] = 0x4017; + // REB - 0x00000000000000000000000003000187 + bitmaps.reb[0] = 0x3000187; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + // 42 ifd_segmap_cas_1_4- inner node disablement + // 43 smurf_cas_1_0- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFF90; + } + else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000200061 + bitmaps.rbm[0] = 0x200061; + // DEB - 0x00000000000000000000000000071031 + bitmaps.deb[0] = 0x71031; + // TEB - 0x0000000000041817 + bitmaps.teb[0] = 0x41817; + // REB - 0x0000000000000000000000000000100F + bitmaps.reb[0] = 0x100F; + + // Kernels disablement + // 3 dpc_2_2- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + // 42 ifd_segmap_cas_1_4- inner node disablement + // 43 smurf_cas_1_0- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFC68; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) { // HW bitmaps // RBM - 0x00000000000000000000000000000000 @@ -33442,77 +31551,1163 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOp // 1 bxt_blc- inner node disablement // 2 linearization2_0- inner node disablement // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 image_upscaler_1_1- inner node disablement - // 42 gmv_statistics_1_1- inner node disablement - // 43 odr_gmv_feature_1_4- inner node disablement - // 44 odr_gmv_match_1_4- inner node disablement - // 45 ifd_segmap_cas_1_4- inner node disablement - // 46 smurf_cas_1_0- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 ifd_segmap_acm_1_4- inner node disablement + // 32 smurf_acm_1_0- inner node disablement + // 33 acm_1_2- inner node disablement + // 34 gammatm_v4- inner node disablement + // 35 csc_1_1- inner node disablement + // 36 b2i_ds_1_1- inner node disablement + // 37 lbff_crop_espa_1_4- inner node disablement + // 38 image_upscaler_1_1- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + // 42 ifd_segmap_cas_1_4- inner node disablement + // 43 smurf_cas_1_0- inner node disablement + // 44 cas_1_1- inner node disablement + // 45 odr_ofs_mp_1_4- inner node disablement + // 46 b2i_ds_output_1_1- inner node disablement + // 47 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFF; } - else if (nodeRelevantInnerOptions == (noPdaf | noMp | noDp)) + else // default inner node + { + // RBM - 0x0000000000000000006400FD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x6400FD; + // DEB - 0x000000000000E1E0000FFFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFFFE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000009F0365E9F + bitmaps.teb[0] = 0xF0365E9F; + bitmaps.teb[1] = 0x9; + // REB - 0x00000000000000000000001F13F67FEF + bitmaps.reb[0] = 0x13F67FEF; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffRgbIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 48; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0xFFFFFFF83000; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0xFC4000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffRgbIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 60; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) { // HW bitmaps - // RBM - 0x000000000000000000000080041E6811 - bitmaps.rbm[0] = 0x41E6811; - bitmaps.rbm[1] = 0x80; - // DEB - 0x00000000000000000000000001BBF1F1 - bitmaps.deb[0] = 0x1BBF1F1; - // TEB - 0x0000000000081E97 - bitmaps.teb[0] = 0x81E97; - // REB - 0x0000000000000000000000000200FFE7 - bitmaps.reb[0] = 0x200FFE7; + // RBM - 0x00000000000000000067FCDD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCDD; + // DEB - 0x000000000000E1FFFFF0FFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC0409F + bitmaps.teb[0] = 0xFFC0409F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; // Kernels disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C390; + } + else if (nodeRelevantInnerOptions == (noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FC9D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC41E9F + bitmaps.teb[0] = 0xFFC41E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; + } + else if (nodeRelevantInnerOptions == (no3A | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FC9D; + // DEB - 0x000000000000E1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC0009F + bitmaps.teb[0] = 0xFFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C3D0; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCDD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x47FCDD; + // DEB - 0x000000000000C1FFFFF0FFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC45E9F + bitmaps.teb[0] = 0xEFC45E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 57 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCDD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCDD; + // DEB - 0x000000000000C1FFFFF0FFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC0409F + bitmaps.teb[0] = 0xEFC0409F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000007C390; + } + else if (nodeRelevantInnerOptions == (noMp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC9D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC41E9F + bitmaps.teb[0] = 0xEFC41E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000000040; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FC9D; + // DEB - 0x000000000000C1FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFC0009F + bitmaps.teb[0] = 0xEFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x20000000007C3D0; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCDD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x27FCDD; + // DEB - 0x00000000000021FFFFF0FFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC45E9F + bitmaps.teb[0] = 0xDFC45E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCDD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FCDD; + // DEB - 0x00000000000021FFFFF0FFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC0409F + bitmaps.teb[0] = 0xDFC0409F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000007C390; + } + else if (nodeRelevantInnerOptions == (noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC9D503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC41E9F + bitmaps.teb[0] = 0xDFC41E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000000040; + } + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC9D50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FC9D; + // DEB - 0x00000000000021FFFFF0FFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFC0009F + bitmaps.teb[0] = 0xDFC0009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC0000000007C3D0; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000206071 + bitmaps.rbm[0] = 0x206071; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003871131 + bitmaps.deb[0] = 0x3871131; + // TEB - 0x0000000000045817 + bitmaps.teb[0] = 0x45817; + // REB - 0x0000000000000000000000000300118F + bitmaps.reb[0] = 0x300118F; + + // Kernels disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 tnr7_spatial_1_1- inner node disablement + // 41 tnr_scaler_lb_1_1- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 ifd_segmap_tnr_bc_1_4- inner node disablement + // 44 smurf_tnr_bc_1_0- inner node disablement + // 45 tnr7_bc_1_2- inner node disablement + // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 47 ifd_segmap_tnr_blend_1_4- inner node disablement + // 48 smurf_tnr_blend_1_0- inner node disablement + // 49 tnr7_blend_1_1- inner node disablement + // 50 odr_tnr_fp_yuvn_1_4- inner node disablement + // 51 tnr_scaler_fp_1_1- inner node disablement + // 52 image_upscaler_1_1- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 54 ifd_segmap_cas_1_4- inner node disablement + // 55 smurf_cas_1_0- inner node disablement + // 56 cas_1_1- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFC00; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000006011 + bitmaps.rbm[0] = 0x6011; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003800131 + bitmaps.deb[0] = 0x3800131; + // TEB - 0x0000000000004017 + bitmaps.teb[0] = 0x4017; + // REB - 0x00000000000000000000000003000187 + bitmaps.reb[0] = 0x3000187; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 tnr7_spatial_1_1- inner node disablement + // 41 tnr_scaler_lb_1_1- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 ifd_segmap_tnr_bc_1_4- inner node disablement + // 44 smurf_tnr_bc_1_0- inner node disablement + // 45 tnr7_bc_1_2- inner node disablement + // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 47 ifd_segmap_tnr_blend_1_4- inner node disablement + // 48 smurf_tnr_blend_1_0- inner node disablement + // 49 tnr7_blend_1_1- inner node disablement + // 50 odr_tnr_fp_yuvn_1_4- inner node disablement + // 51 tnr_scaler_fp_1_1- inner node disablement + // 52 image_upscaler_1_1- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 54 ifd_segmap_cas_1_4- inner node disablement + // 55 smurf_cas_1_0- inner node disablement + // 56 cas_1_1- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFF90; + } + else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000200061 + bitmaps.rbm[0] = 0x200061; + // DEB - 0x00000000000000000000000000071031 + bitmaps.deb[0] = 0x71031; + // TEB - 0x0000000000041817 + bitmaps.teb[0] = 0x41817; + // REB - 0x0000000000000000000000000000100F + bitmaps.reb[0] = 0x100F; + + // Kernels disablement + // 3 dpc_2_2- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 tnr7_spatial_1_1- inner node disablement + // 41 tnr_scaler_lb_1_1- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 ifd_segmap_tnr_bc_1_4- inner node disablement + // 44 smurf_tnr_bc_1_0- inner node disablement + // 45 tnr7_bc_1_2- inner node disablement + // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 47 ifd_segmap_tnr_blend_1_4- inner node disablement + // 48 smurf_tnr_blend_1_0- inner node disablement + // 49 tnr7_blend_1_1- inner node disablement + // 50 odr_tnr_fp_yuvn_1_4- inner node disablement + // 51 tnr_scaler_fp_1_1- inner node disablement + // 52 image_upscaler_1_1- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 54 ifd_segmap_cas_1_4- inner node disablement + // 55 smurf_cas_1_0- inner node disablement + // 56 cas_1_1- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFC68; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 21 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 22 ifd_segmap_bnlm_1_4- inner node disablement + // 23 smurf_bnlm_1_0- inner node disablement + // 24 bnlm_3_4- inner node disablement + // 25 bxt_demosaic- inner node disablement + // 26 vcsc_2_0_b- inner node disablement + // 27 gltm_2_0- inner node disablement + // 28 ifd_segmap_xnr_1_4- inner node disablement + // 29 smurf_xnr_1_0- inner node disablement + // 30 xnr_5_4- inner node disablement + // 31 vcr_3_1- inner node disablement + // 32 glim_2_0- inner node disablement + // 33 ifd_segmap_acm_1_4- inner node disablement + // 34 smurf_acm_1_0- inner node disablement + // 35 acm_1_2- inner node disablement + // 36 gammatm_v4- inner node disablement + // 37 csc_1_1- inner node disablement + // 38 b2i_ds_1_1- inner node disablement + // 39 lbff_crop_espa_1_4- inner node disablement + // 40 tnr7_spatial_1_1- inner node disablement + // 41 tnr_scaler_lb_1_1- inner node disablement + // 42 tnr7_ims_1_2- inner node disablement + // 43 ifd_segmap_tnr_bc_1_4- inner node disablement + // 44 smurf_tnr_bc_1_0- inner node disablement + // 45 tnr7_bc_1_2- inner node disablement + // 46 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 47 ifd_segmap_tnr_blend_1_4- inner node disablement + // 48 smurf_tnr_blend_1_0- inner node disablement + // 49 tnr7_blend_1_1- inner node disablement + // 50 odr_tnr_fp_yuvn_1_4- inner node disablement + // 51 tnr_scaler_fp_1_1- inner node disablement + // 52 image_upscaler_1_1- inner node disablement + // 53 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 54 ifd_segmap_cas_1_4- inner node disablement + // 55 smurf_cas_1_0- inner node disablement + // 56 cas_1_1- inner node disablement + // 57 odr_ofs_mp_1_4- inner node disablement + // 58 b2i_ds_output_1_1- inner node disablement + // 59 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000067FCDD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x67FCDD; + // DEB - 0x000000000000E1FFFFF0FFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFF0FFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFC45E9F + bitmaps.teb[0] = 0xFFC45E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffRgbIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 60; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFF83000; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0xFD0000000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffRgbIrWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 64; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noIr | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FCFD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCFD; + // DEB - 0x000000000000E1FFFFFFFFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2409F + bitmaps.teb[0] = 0xFFF2409F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C390; + } + else if (nodeRelevantInnerOptions == (noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FCBD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF61E9F + bitmaps.teb[0] = 0xFFF61E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x40; + } + else if (nodeRelevantInnerOptions == (no3A | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x67FCBD; + // DEB - 0x000000000000E1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7C3D0; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCFD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x47FCFD; + // DEB - 0x000000000000C1FFFFFFFFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF65E9F + bitmaps.teb[0] = 0xEFF65E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 61 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCFD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCFD; + // DEB - 0x000000000000C1FFFFFFFFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2409F + bitmaps.teb[0] = 0xEFF2409F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000007C390; + } + else if (nodeRelevantInnerOptions == (noMp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCBD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF61E9F + bitmaps.teb[0] = 0xEFF61E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x2000000000000040; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x47FCBD; + // DEB - 0x000000000000C1FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000FEFF2009F + bitmaps.teb[0] = 0xEFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x200000000007C3D0; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCFD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x27FCFD; + // DEB - 0x00000000000021FFFFFFFFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF65E9F + bitmaps.teb[0] = 0xDFF65E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCFD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FCFD; + // DEB - 0x00000000000021FFFFFFFFFEEF8001F1 + bitmaps.deb[0] = 0xEF8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF2409F + bitmaps.teb[0] = 0xDFF2409F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000007C390; + } + else if (nodeRelevantInnerOptions == (noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCBD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED9FF1F1 + bitmaps.deb[0] = 0xED9FF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF61E9F + bitmaps.teb[0] = 0xDFF61E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 6 odr_ir_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC000000000000040; + } + else if (nodeRelevantInnerOptions == (no3A | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FCBD50016811 + bitmaps.rbm[0] = 0x50016811; + bitmaps.rbm[1] = 0x27FCBD; + // DEB - 0x00000000000021FFFFFFFFFEED8001F1 + bitmaps.deb[0] = 0xED8001F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000FDFF2009F + bitmaps.teb[0] = 0xDFF2009F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F607E7 + bitmaps.reb[0] = 0xF3F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xC00000000007C3D0; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000206071 + bitmaps.rbm[0] = 0x206071; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003871131 + bitmaps.deb[0] = 0x3871131; + // TEB - 0x0000000000045817 + bitmaps.teb[0] = 0x45817; + // REB - 0x0000000000000000000000000300118F + bitmaps.reb[0] = 0x300118F; + + // Kernels disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement // 24 smurf_bnlm_1_0- inner node disablement // 25 bnlm_3_4- inner node disablement // 26 bxt_demosaic- inner node disablement @@ -33530,204 +32725,18864 @@ void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOp // 38 csc_1_1- inner node disablement // 39 b2i_ds_1_1- inner node disablement // 40 lbff_crop_espa_1_4- inner node disablement - // 41 image_upscaler_1_1- inner node disablement - // 42 gmv_statistics_1_1- inner node disablement - // 43 odr_gmv_feature_1_4- inner node disablement - // 44 odr_gmv_match_1_4- inner node disablement - // 45 ifd_segmap_cas_1_4- inner node disablement - // 46 smurf_cas_1_0- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFC0300; + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 gmv_statistics_1_1- inner node disablement + // 45 odr_gmv_feature_1_4- inner node disablement + // 46 odr_gmv_match_1_4- inner node disablement + // 47 ifd_segmap_tnr_bc_1_4- inner node disablement + // 48 smurf_tnr_bc_1_0- inner node disablement + // 49 tnr7_bc_1_2- inner node disablement + // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 51 ifd_segmap_tnr_blend_1_4- inner node disablement + // 52 smurf_tnr_blend_1_0- inner node disablement + // 53 tnr7_blend_1_1- inner node disablement + // 54 odr_tnr_fp_yuvn_1_4- inner node disablement + // 55 tnr_scaler_fp_1_1- inner node disablement + // 56 image_upscaler_1_1- inner node disablement + // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 58 ifd_segmap_cas_1_4- inner node disablement + // 59 smurf_cas_1_0- inner node disablement + // 60 cas_1_1- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFC00; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000004000006011 + bitmaps.rbm[0] = 0x6011; + bitmaps.rbm[1] = 0x40; + // DEB - 0x00000000000000000000000003800131 + bitmaps.deb[0] = 0x3800131; + // TEB - 0x0000000000004017 + bitmaps.teb[0] = 0x4017; + // REB - 0x00000000000000000000000003000187 + bitmaps.reb[0] = 0x3000187; + + // Kernels disablement + // 4 rgbs_grid_1_1- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 gmv_statistics_1_1- inner node disablement + // 45 odr_gmv_feature_1_4- inner node disablement + // 46 odr_gmv_match_1_4- inner node disablement + // 47 ifd_segmap_tnr_bc_1_4- inner node disablement + // 48 smurf_tnr_bc_1_0- inner node disablement + // 49 tnr7_bc_1_2- inner node disablement + // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 51 ifd_segmap_tnr_blend_1_4- inner node disablement + // 52 smurf_tnr_blend_1_0- inner node disablement + // 53 tnr7_blend_1_1- inner node disablement + // 54 odr_tnr_fp_yuvn_1_4- inner node disablement + // 55 tnr_scaler_fp_1_1- inner node disablement + // 56 image_upscaler_1_1- inner node disablement + // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 58 ifd_segmap_cas_1_4- inner node disablement + // 59 smurf_cas_1_0- inner node disablement + // 60 cas_1_1- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFF90; + } + else if (nodeRelevantInnerOptions == (noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000200061 + bitmaps.rbm[0] = 0x200061; + // DEB - 0x00000000000000000000000000071031 + bitmaps.deb[0] = 0x71031; + // TEB - 0x0000000000041817 + bitmaps.teb[0] = 0x41817; + // REB - 0x0000000000000000000000000000100F + bitmaps.reb[0] = 0x100F; + + // Kernels disablement + // 3 dpc_2_2- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 gmv_statistics_1_1- inner node disablement + // 45 odr_gmv_feature_1_4- inner node disablement + // 46 odr_gmv_match_1_4- inner node disablement + // 47 ifd_segmap_tnr_bc_1_4- inner node disablement + // 48 smurf_tnr_bc_1_0- inner node disablement + // 49 tnr7_bc_1_2- inner node disablement + // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 51 ifd_segmap_tnr_blend_1_4- inner node disablement + // 52 smurf_tnr_blend_1_0- inner node disablement + // 53 tnr7_blend_1_1- inner node disablement + // 54 odr_tnr_fp_yuvn_1_4- inner node disablement + // 55 tnr_scaler_fp_1_1- inner node disablement + // 56 image_upscaler_1_1- inner node disablement + // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 58 ifd_segmap_cas_1_4- inner node disablement + // 59 smurf_cas_1_0- inner node disablement + // 60 cas_1_1- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFC68; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp | noIr)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 dpc_2_2- inner node disablement + // 4 rgbs_grid_1_1- inner node disablement + // 5 rgb_ir_2_0- inner node disablement + // 6 odr_ir_1_4- inner node disablement + // 7 odr_awb_std_1_4- inner node disablement + // 8 odr_awb_sve_1_4- inner node disablement + // 9 odr_awb_sat_1_4- inner node disablement + // 10 ifd_lsc_1_4- inner node disablement + // 11 lsc_1_2- inner node disablement + // 12 gd_2_2- inner node disablement + // 13 wb_1_1- inner node disablement + // 14 ccm_3a_2_0- inner node disablement + // 15 fr_grid_1_0- inner node disablement + // 16 aestatistics_2_1- inner node disablement + // 17 odr_ae_1_4- inner node disablement + // 18 odr_af_std_1_4- inner node disablement + // 19 ifd_gmv_1_4- inner node disablement + // 20 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 21 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 22 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 23 ifd_segmap_bnlm_1_4- inner node disablement + // 24 smurf_bnlm_1_0- inner node disablement + // 25 bnlm_3_4- inner node disablement + // 26 bxt_demosaic- inner node disablement + // 27 vcsc_2_0_b- inner node disablement + // 28 gltm_2_0- inner node disablement + // 29 ifd_segmap_xnr_1_4- inner node disablement + // 30 smurf_xnr_1_0- inner node disablement + // 31 xnr_5_4- inner node disablement + // 32 vcr_3_1- inner node disablement + // 33 glim_2_0- inner node disablement + // 34 ifd_segmap_acm_1_4- inner node disablement + // 35 smurf_acm_1_0- inner node disablement + // 36 acm_1_2- inner node disablement + // 37 gammatm_v4- inner node disablement + // 38 csc_1_1- inner node disablement + // 39 b2i_ds_1_1- inner node disablement + // 40 lbff_crop_espa_1_4- inner node disablement + // 41 tnr7_spatial_1_1- inner node disablement + // 42 tnr_scaler_lb_1_1- inner node disablement + // 43 tnr7_ims_1_2- inner node disablement + // 44 gmv_statistics_1_1- inner node disablement + // 45 odr_gmv_feature_1_4- inner node disablement + // 46 odr_gmv_match_1_4- inner node disablement + // 47 ifd_segmap_tnr_bc_1_4- inner node disablement + // 48 smurf_tnr_bc_1_0- inner node disablement + // 49 tnr7_bc_1_2- inner node disablement + // 50 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 51 ifd_segmap_tnr_blend_1_4- inner node disablement + // 52 smurf_tnr_blend_1_0- inner node disablement + // 53 tnr7_blend_1_1- inner node disablement + // 54 odr_tnr_fp_yuvn_1_4- inner node disablement + // 55 tnr_scaler_fp_1_1- inner node disablement + // 56 image_upscaler_1_1- inner node disablement + // 57 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 58 ifd_segmap_cas_1_4- inner node disablement + // 59 smurf_cas_1_0- inner node disablement + // 60 cas_1_1- inner node disablement + // 61 odr_ofs_mp_1_4- inner node disablement + // 62 b2i_ds_output_1_1- inner node disablement + // 63 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFFFFFFFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000067FCFD503B6871 + bitmaps.rbm[0] = 0x503B6871; + bitmaps.rbm[1] = 0x67FCFD; + // DEB - 0x000000000000E1FFFFFFFFFEEF9FF1F1 + bitmaps.deb[0] = 0xEF9FF1F1; + bitmaps.deb[1] = 0xFFFFFFFE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000FFFF65E9F + bitmaps.teb[0] = 0xFFF65E9F; + bitmaps.teb[1] = 0xF; + // REB - 0x00000000000000000000001FF3F67FEF + bitmaps.reb[0] = 0xF3F67FEF; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffRgbIrWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 64; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0xFFFFFFFFFFF83000; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0xFD00000000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffIrNoGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 39; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[19].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[27].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000064001D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x64001D; + // DEB - 0x000000000000E1E00000F9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xF9FE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000008F000009F + bitmaps.teb[0] = 0xF000009F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF00; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044001D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x44001D; + // DEB - 0x000000000000C1E00000F9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xF9FE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000008E0001E9F + bitmaps.teb[0] = 0xE0001E9F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 36 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044001D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x44001D; + // DEB - 0x000000000000C1E00000F9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xF9FE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000008E000009F + bitmaps.teb[0] = 0xE000009F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 36 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x100000FF00; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024001D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x24001D; + // DEB - 0x00000000000021E00000F9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xF9FE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000008D0001E9F + bitmaps.teb[0] = 0xD0001E9F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 37 b2i_ds_output_1_1- inner node disablement + // 38 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024001D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x24001D; + // DEB - 0x00000000000021E00000F9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xF9FE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000008D000009F + bitmaps.teb[0] = 0xD000009F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 37 b2i_ds_output_1_1- inner node disablement + // 38 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x600000FF00; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; + + // Kernels disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 16 ifd_segmap_bnlm_1_4- inner node disablement + // 17 smurf_bnlm_1_0- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 ifd_segmap_xnr_1_4- inner node disablement + // 23 smurf_xnr_1_0- inner node disablement + // 24 xnr_5_4- inner node disablement + // 25 vcr_3_1- inner node disablement + // 26 glim_2_0- inner node disablement + // 27 acm_1_2- inner node disablement + // 28 gammatm_v4- inner node disablement + // 29 csc_1_1- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 image_upscaler_1_1- inner node disablement + // 33 ifd_segmap_cas_1_4- inner node disablement + // 34 smurf_cas_1_0- inner node disablement + // 35 cas_1_1- inner node disablement + // 36 odr_ofs_mp_1_4- inner node disablement + // 37 b2i_ds_output_1_1- inner node disablement + // 38 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFF00C0; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 16 ifd_segmap_bnlm_1_4- inner node disablement + // 17 smurf_bnlm_1_0- inner node disablement + // 18 bnlm_3_4- inner node disablement + // 19 bxt_demosaic- inner node disablement + // 20 vcsc_2_0_b- inner node disablement + // 21 gltm_2_0- inner node disablement + // 22 ifd_segmap_xnr_1_4- inner node disablement + // 23 smurf_xnr_1_0- inner node disablement + // 24 xnr_5_4- inner node disablement + // 25 vcr_3_1- inner node disablement + // 26 glim_2_0- inner node disablement + // 27 acm_1_2- inner node disablement + // 28 gammatm_v4- inner node disablement + // 29 csc_1_1- inner node disablement + // 30 b2i_ds_1_1- inner node disablement + // 31 lbff_crop_espa_1_4- inner node disablement + // 32 image_upscaler_1_1- inner node disablement + // 33 ifd_segmap_cas_1_4- inner node disablement + // 34 smurf_cas_1_0- inner node disablement + // 35 cas_1_1- inner node disablement + // 36 odr_ofs_mp_1_4- inner node disablement + // 37 b2i_ds_output_1_1- inner node disablement + // 38 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000064001D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x64001D; + // DEB - 0x000000000000E1E00000F9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xF9FE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000008F0001E9F + bitmaps.teb[0] = 0xF0001E9F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffIrNoGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 39; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[19].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[27].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x7FFFFF00C0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x7F00000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffIrWithGmvNoTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 43; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[20].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[28].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000064003D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x64003D; + // DEB - 0x000000000000E1E0000FF9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFF9FE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000008F032009F + bitmaps.teb[0] = 0xF032009F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF00; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044003D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x44003D; + // DEB - 0x000000000000C1E0000FF9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFF9FE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000008E0321E9F + bitmaps.teb[0] = 0xE0321E9F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 40 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000044003D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x44003D; + // DEB - 0x000000000000C1E0000FF9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFF9FE; + bitmaps.deb[2] = 0xC1E0; + // TEB - 0x00000008E032009F + bitmaps.teb[0] = 0xE032009F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 40 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000FF00; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024003D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x24003D; + // DEB - 0x00000000000021E0000FF9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFF9FE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000008D0321E9F + bitmaps.teb[0] = 0xD0321E9F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000024003D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x24003D; + // DEB - 0x00000000000021E0000FF9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFF9FE; + bitmaps.deb[2] = 0x21E0; + // TEB - 0x00000008D032009F + bitmaps.teb[0] = 0xD032009F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F607E7 + bitmaps.reb[0] = 0x10F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000FF00; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; + + // Kernels disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 16 ifd_gmv_1_4- inner node disablement + // 17 ifd_segmap_bnlm_1_4- inner node disablement + // 18 smurf_bnlm_1_0- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 ifd_segmap_xnr_1_4- inner node disablement + // 24 smurf_xnr_1_0- inner node disablement + // 25 xnr_5_4- inner node disablement + // 26 vcr_3_1- inner node disablement + // 27 glim_2_0- inner node disablement + // 28 acm_1_2- inner node disablement + // 29 gammatm_v4- inner node disablement + // 30 csc_1_1- inner node disablement + // 31 b2i_ds_1_1- inner node disablement + // 32 lbff_crop_espa_1_4- inner node disablement + // 33 image_upscaler_1_1- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + // 37 ifd_segmap_cas_1_4- inner node disablement + // 38 smurf_cas_1_0- inner node disablement + // 39 cas_1_1- inner node disablement + // 40 odr_ofs_mp_1_4- inner node disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFF00C0; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 16 ifd_gmv_1_4- inner node disablement + // 17 ifd_segmap_bnlm_1_4- inner node disablement + // 18 smurf_bnlm_1_0- inner node disablement + // 19 bnlm_3_4- inner node disablement + // 20 bxt_demosaic- inner node disablement + // 21 vcsc_2_0_b- inner node disablement + // 22 gltm_2_0- inner node disablement + // 23 ifd_segmap_xnr_1_4- inner node disablement + // 24 smurf_xnr_1_0- inner node disablement + // 25 xnr_5_4- inner node disablement + // 26 vcr_3_1- inner node disablement + // 27 glim_2_0- inner node disablement + // 28 acm_1_2- inner node disablement + // 29 gammatm_v4- inner node disablement + // 30 csc_1_1- inner node disablement + // 31 b2i_ds_1_1- inner node disablement + // 32 lbff_crop_espa_1_4- inner node disablement + // 33 image_upscaler_1_1- inner node disablement + // 34 gmv_statistics_1_1- inner node disablement + // 35 odr_gmv_feature_1_4- inner node disablement + // 36 odr_gmv_match_1_4- inner node disablement + // 37 ifd_segmap_cas_1_4- inner node disablement + // 38 smurf_cas_1_0- inner node disablement + // 39 cas_1_1- inner node disablement + // 40 odr_ofs_mp_1_4- inner node disablement + // 41 b2i_ds_output_1_1- inner node disablement + // 42 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000064003D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x64003D; + // DEB - 0x000000000000E1E0000FF9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFF9FE; + bitmaps.deb[2] = 0xE1E0; + // TEB - 0x00000008F0321E9F + bitmaps.teb[0] = 0xF0321E9F; + bitmaps.teb[1] = 0x8; + // REB - 0x00000000000000000000001F10F67FE7 + bitmaps.reb[0] = 0x10F67FE7; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffIrWithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 43; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[20].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[28].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x7FFFFFF00C0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x7E200000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffIrNoGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 55; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[22].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[30].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FC1D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x67FC1D; + // DEB - 0x000000000000E1FFFFF0F9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFFF0F9FE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000EFFC0009F + bitmaps.teb[0] = 0xFFC0009F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF00; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC1D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x47FC1D; + // DEB - 0x000000000000C1FFFFF0F9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFFF0F9FE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000EEFC01E9F + bitmaps.teb[0] = 0xEFC01E9F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 52 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC1D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x47FC1D; + // DEB - 0x000000000000C1FFFFF0F9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFFF0F9FE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000EEFC0009F + bitmaps.teb[0] = 0xEFC0009F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 52 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x1000000000FF00; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC1D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x27FC1D; + // DEB - 0x00000000000021FFFFF0F9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFFF0F9FE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000EDFC01E9F + bitmaps.teb[0] = 0xDFC01E9F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 53 b2i_ds_output_1_1- inner node disablement + // 54 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC1D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x27FC1D; + // DEB - 0x00000000000021FFFFF0F9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFFF0F9FE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000EDFC0009F + bitmaps.teb[0] = 0xDFC0009F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 53 b2i_ds_output_1_1- inner node disablement + // 54 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x6000000000FF00; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; + + // Kernels disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 16 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 17 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 18 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 19 ifd_segmap_bnlm_1_4- inner node disablement + // 20 smurf_bnlm_1_0- inner node disablement + // 21 bnlm_3_4- inner node disablement + // 22 bxt_demosaic- inner node disablement + // 23 vcsc_2_0_b- inner node disablement + // 24 gltm_2_0- inner node disablement + // 25 ifd_segmap_xnr_1_4- inner node disablement + // 26 smurf_xnr_1_0- inner node disablement + // 27 xnr_5_4- inner node disablement + // 28 vcr_3_1- inner node disablement + // 29 glim_2_0- inner node disablement + // 30 acm_1_2- inner node disablement + // 31 gammatm_v4- inner node disablement + // 32 csc_1_1- inner node disablement + // 33 b2i_ds_1_1- inner node disablement + // 34 lbff_crop_espa_1_4- inner node disablement + // 35 tnr7_spatial_1_1- inner node disablement + // 36 tnr_scaler_lb_1_1- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 ifd_segmap_tnr_bc_1_4- inner node disablement + // 39 smurf_tnr_bc_1_0- inner node disablement + // 40 tnr7_bc_1_2- inner node disablement + // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 42 ifd_segmap_tnr_blend_1_4- inner node disablement + // 43 smurf_tnr_blend_1_0- inner node disablement + // 44 tnr7_blend_1_1- inner node disablement + // 45 odr_tnr_fp_yuvn_1_4- inner node disablement + // 46 tnr_scaler_fp_1_1- inner node disablement + // 47 image_upscaler_1_1- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 49 ifd_segmap_cas_1_4- inner node disablement + // 50 smurf_cas_1_0- inner node disablement + // 51 cas_1_1- inner node disablement + // 52 odr_ofs_mp_1_4- inner node disablement + // 53 b2i_ds_output_1_1- inner node disablement + // 54 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFF00C0; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 16 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 17 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 18 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 19 ifd_segmap_bnlm_1_4- inner node disablement + // 20 smurf_bnlm_1_0- inner node disablement + // 21 bnlm_3_4- inner node disablement + // 22 bxt_demosaic- inner node disablement + // 23 vcsc_2_0_b- inner node disablement + // 24 gltm_2_0- inner node disablement + // 25 ifd_segmap_xnr_1_4- inner node disablement + // 26 smurf_xnr_1_0- inner node disablement + // 27 xnr_5_4- inner node disablement + // 28 vcr_3_1- inner node disablement + // 29 glim_2_0- inner node disablement + // 30 acm_1_2- inner node disablement + // 31 gammatm_v4- inner node disablement + // 32 csc_1_1- inner node disablement + // 33 b2i_ds_1_1- inner node disablement + // 34 lbff_crop_espa_1_4- inner node disablement + // 35 tnr7_spatial_1_1- inner node disablement + // 36 tnr_scaler_lb_1_1- inner node disablement + // 37 tnr7_ims_1_2- inner node disablement + // 38 ifd_segmap_tnr_bc_1_4- inner node disablement + // 39 smurf_tnr_bc_1_0- inner node disablement + // 40 tnr7_bc_1_2- inner node disablement + // 41 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 42 ifd_segmap_tnr_blend_1_4- inner node disablement + // 43 smurf_tnr_blend_1_0- inner node disablement + // 44 tnr7_blend_1_1- inner node disablement + // 45 odr_tnr_fp_yuvn_1_4- inner node disablement + // 46 tnr_scaler_fp_1_1- inner node disablement + // 47 image_upscaler_1_1- inner node disablement + // 48 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 49 ifd_segmap_cas_1_4- inner node disablement + // 50 smurf_cas_1_0- inner node disablement + // 51 cas_1_1- inner node disablement + // 52 odr_ofs_mp_1_4- inner node disablement + // 53 b2i_ds_output_1_1- inner node disablement + // 54 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000067FC1D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x67FC1D; + // DEB - 0x000000000000E1FFFFF0F9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFFF0F9FE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000EFFC01E9F + bitmaps.teb[0] = 0xFFC01E9F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffIrNoGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 55; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[22].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[30].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x7FFFFFFFFF00C0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x7E800000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void LbffIrWithGmvWithTnrWithSapOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 59; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[23].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[31].run_kernel.enable = 0; // acm_1_2 + + const InnerNodeOptionsFlags nodeRelevantInnerOptions = nodeInnerOptions & (no3A | noMp | noDp); + bitmaps = HwBitmaps(); // reset HW bitmaps + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + if (nodeRelevantInnerOptions == (no3A)) + { + // HW bitmaps + // RBM - 0x00000000000000000067FC3D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x67FC3D; + // DEB - 0x000000000000E1FFFFFFF9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFFFFF9FE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000EFFF2009F + bitmaps.teb[0] = 0xFFF2009F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0xFF00; + } + else if (nodeRelevantInnerOptions == (noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC3D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x47FC3D; + // DEB - 0x000000000000C1FFFFFFF9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFFFFF9FE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000EEFF21E9F + bitmaps.teb[0] = 0xEFF21E9F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 56 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x100000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noMp)) + { + // HW bitmaps + // RBM - 0x00000000000000000047FC3D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x47FC3D; + // DEB - 0x000000000000C1FFFFFFF9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFFFFF9FE; + bitmaps.deb[2] = 0xC1FF; + // TEB - 0x0000000EEFF2009F + bitmaps.teb[0] = 0xEFF2009F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 56 odr_ofs_mp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x10000000000FF00; + } + else if (nodeRelevantInnerOptions == (noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC3D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x27FC3D; + // DEB - 0x00000000000021FFFFFFF9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFFFFF9FE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000EDFF21E9F + bitmaps.teb[0] = 0xDFF21E9F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 57 b2i_ds_output_1_1- inner node disablement + // 58 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x600000000000000; + } + else if (nodeRelevantInnerOptions == (no3A | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000027FC3D50019009 + bitmaps.rbm[0] = 0x50019009; + bitmaps.rbm[1] = 0x27FC3D; + // DEB - 0x00000000000021FFFFFFF9FEEC0001F1 + bitmaps.deb[0] = 0xEC0001F1; + bitmaps.deb[1] = 0xFFFFF9FE; + bitmaps.deb[2] = 0x21FF; + // TEB - 0x0000000EDFF2009F + bitmaps.teb[0] = 0xDFF2009F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F607E7 + bitmaps.reb[0] = 0xF0F607E7; + bitmaps.reb[1] = 0x1F; + + // Kernels disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 57 b2i_ds_output_1_1- inner node disablement + // 58 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x60000000000FF00; + } + else if (nodeRelevantInnerOptions == (noMp | noDp)) + { + // HW bitmaps + // RBM - 0x000000000000000000000000001E9009 + bitmaps.rbm[0] = 0x1E9009; + // DEB - 0x000000000000000000000000001BF1F1 + bitmaps.deb[0] = 0x1BF1F1; + // TEB - 0x0000000000001E97 + bitmaps.teb[0] = 0x1E97; + // REB - 0x00000000000000000000000000007FE7 + bitmaps.reb[0] = 0x7FE7; + + // Kernels disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 16 ifd_gmv_1_4- inner node disablement + // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 acm_1_2- inner node disablement + // 32 gammatm_v4- inner node disablement + // 33 csc_1_1- inner node disablement + // 34 b2i_ds_1_1- inner node disablement + // 35 lbff_crop_espa_1_4- inner node disablement + // 36 tnr7_spatial_1_1- inner node disablement + // 37 tnr_scaler_lb_1_1- inner node disablement + // 38 tnr7_ims_1_2- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + // 42 ifd_segmap_tnr_bc_1_4- inner node disablement + // 43 smurf_tnr_bc_1_0- inner node disablement + // 44 tnr7_bc_1_2- inner node disablement + // 45 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 46 ifd_segmap_tnr_blend_1_4- inner node disablement + // 47 smurf_tnr_blend_1_0- inner node disablement + // 48 tnr7_blend_1_1- inner node disablement + // 49 odr_tnr_fp_yuvn_1_4- inner node disablement + // 50 tnr_scaler_fp_1_1- inner node disablement + // 51 image_upscaler_1_1- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 53 ifd_segmap_cas_1_4- inner node disablement + // 54 smurf_cas_1_0- inner node disablement + // 55 cas_1_1- inner node disablement + // 56 odr_ofs_mp_1_4- inner node disablement + // 57 b2i_ds_output_1_1- inner node disablement + // 58 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFF00C0; + } + else if (nodeRelevantInnerOptions == (no3A | noMp | noDp)) + { + // HW bitmaps + // RBM - 0x00000000000000000000000000000000 + // DEB - 0x00000000000000000000000000000000 + // TEB - 0x0000000000000000 + // REB - 0x00000000000000000000000000000000 + + // Kernels disablement + // 0 ifd_pipe_1_4- inner node disablement + // 1 bxt_blc- inner node disablement + // 2 linearization2_0- inner node disablement + // 3 ifd_lsc_1_4- inner node disablement + // 4 lsc_1_2- inner node disablement + // 5 dpc_2_2- inner node disablement + // 6 gd_2_2- inner node disablement + // 7 wb_1_1- inner node disablement + // 8 rgbs_grid_1_1- inner node disablement + // 9 ccm_3a_2_0- inner node disablement + // 10 fr_grid_1_0- inner node disablement + // 11 odr_awb_std_1_4- inner node disablement + // 12 odr_awb_sat_1_4- inner node disablement + // 13 aestatistics_2_1- inner node disablement + // 14 odr_ae_1_4- inner node disablement + // 15 odr_af_std_1_4- inner node disablement + // 16 ifd_gmv_1_4- inner node disablement + // 17 ifd_tnr_sp_bc_yuv4nm1_1_4- inner node disablement + // 18 ifd_tnr_sp_bc_rs4nm1_1_4- inner node disablement + // 19 ifd_tnr_fp_blend_yuvnm1_1_4- inner node disablement + // 20 ifd_segmap_bnlm_1_4- inner node disablement + // 21 smurf_bnlm_1_0- inner node disablement + // 22 bnlm_3_4- inner node disablement + // 23 bxt_demosaic- inner node disablement + // 24 vcsc_2_0_b- inner node disablement + // 25 gltm_2_0- inner node disablement + // 26 ifd_segmap_xnr_1_4- inner node disablement + // 27 smurf_xnr_1_0- inner node disablement + // 28 xnr_5_4- inner node disablement + // 29 vcr_3_1- inner node disablement + // 30 glim_2_0- inner node disablement + // 31 acm_1_2- inner node disablement + // 32 gammatm_v4- inner node disablement + // 33 csc_1_1- inner node disablement + // 34 b2i_ds_1_1- inner node disablement + // 35 lbff_crop_espa_1_4- inner node disablement + // 36 tnr7_spatial_1_1- inner node disablement + // 37 tnr_scaler_lb_1_1- inner node disablement + // 38 tnr7_ims_1_2- inner node disablement + // 39 gmv_statistics_1_1- inner node disablement + // 40 odr_gmv_feature_1_4- inner node disablement + // 41 odr_gmv_match_1_4- inner node disablement + // 42 ifd_segmap_tnr_bc_1_4- inner node disablement + // 43 smurf_tnr_bc_1_0- inner node disablement + // 44 tnr7_bc_1_2- inner node disablement + // 45 odr_tnr_sp_bc_rs4n_1_4- inner node disablement + // 46 ifd_segmap_tnr_blend_1_4- inner node disablement + // 47 smurf_tnr_blend_1_0- inner node disablement + // 48 tnr7_blend_1_1- inner node disablement + // 49 odr_tnr_fp_yuvn_1_4- inner node disablement + // 50 tnr_scaler_fp_1_1- inner node disablement + // 51 image_upscaler_1_1- inner node disablement + // 52 odr_tnr_scale_fp_yuv4n_1_4- inner node disablement + // 53 ifd_segmap_cas_1_4- inner node disablement + // 54 smurf_cas_1_0- inner node disablement + // 55 cas_1_1- inner node disablement + // 56 odr_ofs_mp_1_4- inner node disablement + // 57 b2i_ds_output_1_1- inner node disablement + // 58 odr_ofs_dp_1_4- inner node disablement + disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFFFF; + } + else // default inner node + { + // RBM - 0x00000000000000000067FC3D501F9009 + bitmaps.rbm[0] = 0x501F9009; + bitmaps.rbm[1] = 0x67FC3D; + // DEB - 0x000000000000E1FFFFFFF9FEEC1BF1F1 + bitmaps.deb[0] = 0xEC1BF1F1; + bitmaps.deb[1] = 0xFFFFF9FE; + bitmaps.deb[2] = 0xE1FF; + // TEB - 0x0000000EFFF21E9F + bitmaps.teb[0] = 0xFFF21E9F; + bitmaps.teb[1] = 0xE; + // REB - 0x00000000000000000000001FF0F67FE7 + bitmaps.reb[0] = 0xF0F67FE7; + bitmaps.reb[1] = 0x1F; + } + + SetDisabledKernels(disabledRunKernelsBitmap); + +} + +void LbffIrWithGmvWithTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + // Kernel default enablement + for (uint8_t i = 0; i < 59; ++i) + { + nodeKernels.kernelList[i].run_kernel.enable = 1; + } + + // Pass-through kernels + nodeKernels.kernelList[7].run_kernel.enable = 0; // wb_1_1 + nodeKernels.kernelList[23].run_kernel.enable = 0; // bxt_demosaic + nodeKernels.kernelList[31].run_kernel.enable = 0; // acm_1_2 + + // Kernel current inner node enablement + uint64_t disabledRunKernelsBitmap[2]; + disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; + disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + + switch (vanishStatus) + { + case VanishOption::Full: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + + break; + } + case VanishOption::AfterStats: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; + disabledRunKernelsBitmap[0] |= 0x7FFFFFFFFFF00C0; + + break; + } + case VanishOption::AfterTnr: + { + bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; + bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; + bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; + bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; + bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; + bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; + bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; + bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; + bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; + bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; + bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; + bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; + bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; + bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; + disabledRunKernelsBitmap[0] |= 0x7E8000000000000; + + break; + } + } + + // Set Kernel enablement for inner node + vanish status + SetDisabledKernels(disabledRunKernelsBitmap); +} + +void WithCvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) +{ + + // No inner nodes + (void)nodeInnerOptions; +} + +void WithCvOuterNode::configVanishStatus(VanishOption vanishStatus) +{ + (void)vanishStatus; + return; +} + +/* + * Graph 200000 + */ +StaticGraph200000::StaticGraph200000(GraphConfiguration200000* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200000, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrNoSap] = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->destNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->destNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+9]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 19; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerNoGmvNoTnrNoSapOuterNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffBayerNoGmvNoTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200000::~StaticGraph200000() +{ +} + +StaticGraphStatus imageSubGraphTopology200000::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerNoGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerNoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[7]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 9 && + (subGraphLinks[9]->src == subGraphLinks[7]->src && + subGraphLinks[9]->srcTerminalId == subGraphLinks[7]->srcTerminalId && + subGraphLinks[9]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[9]->src != subGraphLinks[7]->src || + subGraphLinks[9]->srcTerminalId != subGraphLinks[7]->srcTerminalId)) && + true) + { + lbffBayerNoGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 10 && + (subGraphLinks[10]->src == subGraphLinks[8]->src && + subGraphLinks[10]->srcTerminalId == subGraphLinks[8]->srcTerminalId && + subGraphLinks[10]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[10]->src != subGraphLinks[8]->src || + subGraphLinks[10]->srcTerminalId != subGraphLinks[8]->srcTerminalId)) && + true) + { + lbffBayerNoGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerNoGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerNoGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[3]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[4]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[5]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[6]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[7]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[9]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[8]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 10 && + (subGraphLinks[10]->src == subGraphLinks[8]->src && + subGraphLinks[10]->srcTerminalId == subGraphLinks[8]->srcTerminalId && + subGraphLinks[10]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[10]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 19; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerNoGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerNoGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200001 + */ +StaticGraph200001::StaticGraph200001(GraphConfiguration200001* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200001, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrNoSap] = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->destNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->destNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->destNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+11]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 21; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerWithGmvNoTnrNoSapOuterNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffBayerWithGmvNoTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200001::~StaticGraph200001() +{ +} + +StaticGraphStatus imageSubGraphTopology200001::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerWithGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerWithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && + true) + { + lbffBayerWithGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && + true) + { + lbffBayerWithGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerWithGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerWithGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[3]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[4]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[5]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[6]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[9]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[10]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[12]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 21; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[7]->isActive = (lbffBayerWithGmvNoTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_gmv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerWithGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerWithGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200002 + */ +StaticGraph200002::StaticGraph200002(GraphConfiguration200002* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200002, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->destNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->destNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->destNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->destNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->destNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+12]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 22; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200002::~StaticGraph200002() +{ +} + +StaticGraphStatus imageSubGraphTopology200002::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerNoGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerNoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && + true) + { + lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + true) + { + lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerNoGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerNoGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[3]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[4]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[12]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[11]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 22; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[7]->isActive = (lbffBayerNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[8]->isActive = (lbffBayerNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[9]->isActive = (lbffBayerNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerNoGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerNoGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200003 + */ +StaticGraph200003::StaticGraph200003(GraphConfiguration200003* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200003, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->destNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->destNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->destNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->destNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->destNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->destNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+14]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 24; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200003::~StaticGraph200003() +{ +} + +StaticGraphStatus imageSubGraphTopology200003::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerWithGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerWithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerWithGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerWithGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[3]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[4]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[6]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[12]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 24; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[7]->isActive = (lbffBayerWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_gmv_input + subGraphLinks[9]->isActive = (lbffBayerWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[10]->isActive = (lbffBayerWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[11]->isActive = (lbffBayerWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerWithGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerWithGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200004 + */ +StaticGraph200004::StaticGraph200004(GraphConfiguration200004* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200004, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrWithSap] = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerNoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->destNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->destNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->destNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->destNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->destNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->destNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerNoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+17]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 27; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerNoGmvNoTnrWithSapOuterNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffBayerNoGmvNoTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200004::~StaticGraph200004() +{ +} + +StaticGraphStatus imageSubGraphTopology200004::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerNoGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerNoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && + true) + { + lbffBayerNoGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && + true) + { + lbffBayerNoGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerNoGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerNoGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[11]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[12]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[13]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[14]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[15]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[17]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[16]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[18]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 27; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200004::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x60000; // Run kernel ids 17 (ifd_segmap_bnlm_1_4) and 18 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000; // Run kernel ids 23 (ifd_segmap_xnr_1_4) and 24 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000; // Run kernel ids 28 (ifd_segmap_acm_1_4) and 29 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerNoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000; // Run kernel ids 36 (ifd_segmap_cas_1_4) and 37 (smurf_cas_1_0) + } + + lbffBayerNoGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200005 + */ +StaticGraph200005::StaticGraph200005(GraphConfiguration200005* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200005, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrWithSap] = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerWithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->destNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerWithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+19]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 29; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerWithGmvNoTnrWithSapOuterNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffBayerWithGmvNoTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200005::~StaticGraph200005() +{ +} + +StaticGraphStatus imageSubGraphTopology200005::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerWithGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerWithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && + true) + { + lbffBayerWithGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && + true) + { + lbffBayerWithGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerWithGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerWithGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[12]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[13]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[14]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[17]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[19]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[18]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[20]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 29; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[15]->isActive = (lbffBayerWithGmvNoTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_gmv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200005::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000; // Run kernel ids 18 (ifd_segmap_bnlm_1_4) and 19 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000; // Run kernel ids 24 (ifd_segmap_xnr_1_4) and 25 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000; // Run kernel ids 29 (ifd_segmap_acm_1_4) and 30 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerWithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000000; // Run kernel ids 40 (ifd_segmap_cas_1_4) and 41 (smurf_cas_1_0) + } + + lbffBayerWithGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200006 + */ +StaticGraph200006::StaticGraph200006(GraphConfiguration200006* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200006, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrWithSap] = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerNoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->destNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerNoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+22]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 32; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerNoGmvWithTnrWithSapOuterNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffBayerNoGmvWithTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200006::~StaticGraph200006() +{ +} + +StaticGraphStatus imageSubGraphTopology200006::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerNoGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerNoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && + true) + { + lbffBayerNoGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && + true) + { + lbffBayerNoGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerNoGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerNoGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[14]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[16]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[20]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[22]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[21]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[23]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 32; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[17]->isActive = (lbffBayerNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[18]->isActive = (lbffBayerNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[19]->isActive = (lbffBayerNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200006::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000; // Run kernel ids 20 (ifd_segmap_bnlm_1_4) and 21 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000; // Run kernel ids 26 (ifd_segmap_xnr_1_4) and 27 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000; // Run kernel ids 31 (ifd_segmap_acm_1_4) and 32 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000000000; // Run kernel ids 52 (ifd_segmap_cas_1_4) and 53 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000000; // Run kernel ids 41 (ifd_segmap_tnr_bc_1_4) and 42 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000000; // Run kernel ids 45 (ifd_segmap_tnr_blend_1_4) and 46 (smurf_tnr_blend_1_0) + } + + lbffBayerNoGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200007 + */ +StaticGraph200007::StaticGraph200007(GraphConfiguration200007* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200007, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrWithSap] = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerWithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->destNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffBayerWithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+24]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 34; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerWithGmvWithTnrWithSapOuterNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffBayerWithGmvWithTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200007::~StaticGraph200007() +{ +} + +StaticGraphStatus imageSubGraphTopology200007::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerWithGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerWithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && + true) + { + lbffBayerWithGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && + true) + { + lbffBayerWithGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerWithGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerWithGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[16]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[22]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[24]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[23]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[25]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 34; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[17]->isActive = (lbffBayerWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_gmv_input + subGraphLinks[19]->isActive = (lbffBayerWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[20]->isActive = (lbffBayerWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[21]->isActive = (lbffBayerWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200007::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000; // Run kernel ids 21 (ifd_segmap_bnlm_1_4) and 22 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000; // Run kernel ids 27 (ifd_segmap_xnr_1_4) and 28 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000; // Run kernel ids 32 (ifd_segmap_acm_1_4) and 33 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000000; // Run kernel ids 56 (ifd_segmap_cas_1_4) and 57 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000000; // Run kernel ids 45 (ifd_segmap_tnr_bc_1_4) and 46 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000000; // Run kernel ids 49 (ifd_segmap_tnr_blend_1_4) and 50 (smurf_tnr_blend_1_0) + } + + lbffBayerWithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200008 + */ +StaticGraph200008::StaticGraph200008(GraphConfiguration200008* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200008, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap] = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); + _lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+12]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 22; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; + _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2OuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200008::~StaticGraph200008() +{ +} + +StaticGraphStatus imageSubGraphTopology200008::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2NoGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[6]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[10]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[12]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[11]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 22; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200009 + */ +StaticGraph200009::StaticGraph200009(GraphConfiguration200009* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200009, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap] = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); + _lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+14]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 24; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; + _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2OuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200009::~StaticGraph200009() +{ +} + +StaticGraphStatus imageSubGraphTopology200009::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2WithGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[12]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[14]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[13]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 24; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_gmv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200010 + */ +StaticGraph200010::StaticGraph200010(GraphConfiguration200010* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200010, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); + _lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+15]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 25; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; + _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2OuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200010::~StaticGraph200010() +{ +} + +StaticGraphStatus imageSubGraphTopology200010::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2NoGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[6]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[14]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 25; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[11]->isActive = (lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[12]->isActive = (lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200011 + */ +StaticGraph200011::StaticGraph200011(GraphConfiguration200011* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200011, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); + _lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2; + link->destNode = &_isysPdaf2OuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2; + link->srcNode = &_isysPdaf2OuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+17]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 27; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; + _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2OuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200011::~StaticGraph200011() +{ +} + +StaticGraphStatus imageSubGraphTopology200011::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2WithGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 27; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_gmv_input + subGraphLinks[12]->isActive = (lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[13]->isActive = (lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[14]->isActive = (lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200012 + */ +StaticGraph200012::StaticGraph200012(GraphConfiguration200012* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200012, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap] = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+20]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 30; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2WithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200012::~StaticGraph200012() +{ +} + +StaticGraphStatus imageSubGraphTopology200012::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2NoGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[14]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[20]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[19]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[21]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 30; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200012::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000; // Run kernel ids 21 (ifd_segmap_bnlm_1_4) and 22 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000; // Run kernel ids 27 (ifd_segmap_xnr_1_4) and 28 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000; // Run kernel ids 32 (ifd_segmap_acm_1_4) and 33 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000000; // Run kernel ids 40 (ifd_segmap_cas_1_4) and 41 (smurf_cas_1_0) + } + + lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200013 + */ +StaticGraph200013::StaticGraph200013(GraphConfiguration200013* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200013, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap] = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+22]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 32; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2WithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200013::~StaticGraph200013() +{ +} + +StaticGraphStatus imageSubGraphTopology200013::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2WithGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[14]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[20]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[22]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[21]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[23]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 32; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[18]->isActive = (lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_gmv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200013::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000; // Run kernel ids 22 (ifd_segmap_bnlm_1_4) and 23 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000; // Run kernel ids 28 (ifd_segmap_xnr_1_4) and 29 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000; // Run kernel ids 33 (ifd_segmap_acm_1_4) and 34 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000; // Run kernel ids 44 (ifd_segmap_cas_1_4) and 45 (smurf_cas_1_0) + } + + lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200014 + */ +StaticGraph200014::StaticGraph200014(GraphConfiguration200014* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200014, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+25]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 35; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2WithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200014::~StaticGraph200014() +{ +} + +StaticGraphStatus imageSubGraphTopology200014::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2NoGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && + true) + { + lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[19]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[23]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[25]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[24]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[26]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 35; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[20]->isActive = (lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[21]->isActive = (lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[22]->isActive = (lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200014::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000; // Run kernel ids 24 (ifd_segmap_bnlm_1_4) and 25 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000000; // Run kernel ids 30 (ifd_segmap_xnr_1_4) and 31 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000000; // Run kernel ids 35 (ifd_segmap_acm_1_4) and 36 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000000; // Run kernel ids 56 (ifd_segmap_cas_1_4) and 57 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000000; // Run kernel ids 45 (ifd_segmap_tnr_bc_1_4) and 46 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000000; // Run kernel ids 49 (ifd_segmap_tnr_blend_1_4) and 50 (smurf_tnr_blend_1_0) + } + + lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200015 + */ +StaticGraph200015::StaticGraph200015(GraphConfiguration200015* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200015, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::PdafBuffer; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysPdaf2WithCv; + link->destNode = &_isysPdaf2WithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysPdaf2WithCv; + link->srcNode = &_isysPdaf2WithCvOuterNode; + link->srcTerminalId = 7; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[25]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[26]; + link->src = GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+27]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 37; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysPdaf2WithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200015::~StaticGraph200015() +{ +} + +StaticGraphStatus imageSubGraphTopology200015::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf2WithGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && + true) + { + lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[25]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[27]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[26]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[28]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 37; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[20]->isActive = (lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_gmv_input + subGraphLinks[22]->isActive = (lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[23]->isActive = (lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[24]->isActive = (lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200015::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000; // Run kernel ids 25 (ifd_segmap_bnlm_1_4) and 26 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000; // Run kernel ids 31 (ifd_segmap_xnr_1_4) and 32 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000; // Run kernel ids 36 (ifd_segmap_acm_1_4) and 37 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000000000; // Run kernel ids 60 (ifd_segmap_cas_1_4) and 61 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000000; // Run kernel ids 49 (ifd_segmap_tnr_bc_1_4) and 50 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000000000; // Run kernel ids 53 (ifd_segmap_tnr_blend_1_4) and 54 (smurf_tnr_blend_1_0) + } + + lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200016 + */ +StaticGraph200016::StaticGraph200016(GraphConfiguration200016* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200016, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap] = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+10]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 20; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200016::~StaticGraph200016() +{ +} + +StaticGraphStatus imageSubGraphTopology200016::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3NoGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 10 && + (subGraphLinks[10]->src == subGraphLinks[8]->src && + subGraphLinks[10]->srcTerminalId == subGraphLinks[8]->srcTerminalId && + subGraphLinks[10]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[10]->src != subGraphLinks[8]->src || + subGraphLinks[10]->srcTerminalId != subGraphLinks[8]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[4]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[10]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[9]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[11]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 20; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200017 + */ +StaticGraph200017::StaticGraph200017(GraphConfiguration200017* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200017, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap] = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+12]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 22; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200017::~StaticGraph200017() +{ +} + +StaticGraphStatus imageSubGraphTopology200017::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3WithGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[4]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[10]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[12]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[11]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 22; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[8]->isActive = (lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_gmv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200018 + */ +StaticGraph200018::StaticGraph200018(GraphConfiguration200018* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200018, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap] = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+13]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 23; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200018::~StaticGraph200018() +{ +} + +StaticGraphStatus imageSubGraphTopology200018::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3NoGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[4]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[11]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[12]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 23; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[8]->isActive = (lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[9]->isActive = (lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[10]->isActive = (lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200019 + */ +StaticGraph200019::StaticGraph200019(GraphConfiguration200019* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200019, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap] = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+15]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 25; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200019::~StaticGraph200019() +{ +} + +StaticGraphStatus imageSubGraphTopology200019::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3WithGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[4]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[5]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[16]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 25; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[8]->isActive = (lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_gmv_input + subGraphLinks[10]->isActive = (lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[11]->isActive = (lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[12]->isActive = (lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200020 + */ +StaticGraph200020::StaticGraph200020(GraphConfiguration200020* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200020, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap] = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+18]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 28; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200020::~StaticGraph200020() +{ +} + +StaticGraphStatus imageSubGraphTopology200020::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3NoGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[12]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[18]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[17]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[19]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 28; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200020::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000; // Run kernel ids 20 (ifd_segmap_bnlm_1_4) and 21 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000; // Run kernel ids 26 (ifd_segmap_xnr_1_4) and 27 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000; // Run kernel ids 31 (ifd_segmap_acm_1_4) and 32 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000000; // Run kernel ids 39 (ifd_segmap_cas_1_4) and 40 (smurf_cas_1_0) + } + + lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200021 + */ +StaticGraph200021::StaticGraph200021(GraphConfiguration200021* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200021, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap] = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+20]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 30; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200021::~StaticGraph200021() +{ +} + +StaticGraphStatus imageSubGraphTopology200021::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3WithGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[12]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[18]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[20]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[19]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[21]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 30; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[16]->isActive = (lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_gmv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200021::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000; // Run kernel ids 21 (ifd_segmap_bnlm_1_4) and 22 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000; // Run kernel ids 27 (ifd_segmap_xnr_1_4) and 28 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000; // Run kernel ids 32 (ifd_segmap_acm_1_4) and 33 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000000; // Run kernel ids 43 (ifd_segmap_cas_1_4) and 44 (smurf_cas_1_0) + } + + lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200022 + */ +StaticGraph200022::StaticGraph200022(GraphConfiguration200022* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200022, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap] = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+23]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 33; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200022::~StaticGraph200022() +{ +} + +StaticGraphStatus imageSubGraphTopology200022::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3NoGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && + true) + { + lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[21]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[23]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[22]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[24]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 33; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[18]->isActive = (lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[19]->isActive = (lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[20]->isActive = (lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200022::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000; // Run kernel ids 23 (ifd_segmap_bnlm_1_4) and 24 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000; // Run kernel ids 29 (ifd_segmap_xnr_1_4) and 30 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000000; // Run kernel ids 34 (ifd_segmap_acm_1_4) and 35 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000000000; // Run kernel ids 55 (ifd_segmap_cas_1_4) and 56 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000; // Run kernel ids 44 (ifd_segmap_tnr_bc_1_4) and 45 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000000; // Run kernel ids 48 (ifd_segmap_tnr_blend_1_4) and 49 (smurf_tnr_blend_1_0) + } + + lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200023 + */ +StaticGraph200023::StaticGraph200023(GraphConfiguration200023* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200023, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap] = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+25]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 35; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200023::~StaticGraph200023() +{ +} + +StaticGraphStatus imageSubGraphTopology200023::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3WithGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && + true) + { + lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[23]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[25]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[24]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[26]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 35; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[18]->isActive = (lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_gmv_input + subGraphLinks[20]->isActive = (lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[21]->isActive = (lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[22]->isActive = (lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200023::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000; // Run kernel ids 24 (ifd_segmap_bnlm_1_4) and 25 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000000; // Run kernel ids 30 (ifd_segmap_xnr_1_4) and 31 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000000; // Run kernel ids 35 (ifd_segmap_acm_1_4) and 36 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000000000000; // Run kernel ids 59 (ifd_segmap_cas_1_4) and 60 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000000; // Run kernel ids 48 (ifd_segmap_tnr_bc_1_4) and 49 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000000000; // Run kernel ids 52 (ifd_segmap_tnr_blend_1_4) and 53 (smurf_tnr_blend_1_0) + } + + lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200024 + */ +StaticGraph200024::StaticGraph200024(GraphConfiguration200024* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200024, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap] = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDol2InputsNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+12]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 22; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDol2InputsNoGmvNoTnrNoSapOuterNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffDol2InputsNoGmvNoTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200024::~StaticGraph200024() +{ +} + +StaticGraphStatus imageSubGraphTopology200024::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsNoGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsNoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsNoGmvNoTnrNoSapOuterNode->setInnerNode(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[6]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[10]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[12]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[11]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[13]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 22; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsNoGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffDol2InputsNoGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200025 + */ +StaticGraph200025::StaticGraph200025(GraphConfiguration200025* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200025, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap] = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDol2InputsWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+14]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 24; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDol2InputsWithGmvNoTnrNoSapOuterNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffDol2InputsWithGmvNoTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200025::~StaticGraph200025() +{ +} + +StaticGraphStatus imageSubGraphTopology200025::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsWithGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsWithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsWithGmvNoTnrNoSapOuterNode->setInnerNode(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[6]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[12]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[14]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[13]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 24; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_gmv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsWithGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffDol2InputsWithGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200026 + */ +StaticGraph200026::StaticGraph200026(GraphConfiguration200026* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200026, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap] = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDol2InputsNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+15]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 25; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDol2InputsNoGmvWithTnrNoSapOuterNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffDol2InputsNoGmvWithTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200026::~StaticGraph200026() +{ +} + +StaticGraphStatus imageSubGraphTopology200026::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsNoGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsNoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsNoGmvWithTnrNoSapOuterNode->setInnerNode(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[6]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[13]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[15]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[14]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 25; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[11]->isActive = (lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[12]->isActive = (lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsNoGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffDol2InputsNoGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200027 + */ +StaticGraph200027::StaticGraph200027(GraphConfiguration200027* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200027, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap] = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDol2InputsWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+17]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 27; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDol2InputsWithGmvWithTnrNoSapOuterNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.swB2bOuterNode->contextId = 1; + _imageSubGraph.swRemosaicOuterNode->contextId = 2; + _imageSubGraph.swAinrOuterNode->contextId = 3; + _imageSubGraph.lbffDol2InputsWithGmvWithTnrNoSapOuterNode->contextId = 4; + _imageSubGraph.swGdcOuterNode->contextId = 5; + _imageSubGraph.swNntmOuterNode->contextId = 6; + _imageSubGraph.swImvOuterNode->contextId = 7; + _imageSubGraph.swScalerOuterNode->contextId = 8; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200027::~StaticGraph200027() +{ +} + +StaticGraphStatus imageSubGraphTopology200027::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsWithGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsWithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsWithGmvWithTnrNoSapOuterNode->setInnerNode(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[6]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 27; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_gmv_input + subGraphLinks[12]->isActive = (lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[13]->isActive = (lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[14]->isActive = (lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsWithGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffDol2InputsWithGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200028 + */ +StaticGraph200028::StaticGraph200028(GraphConfiguration200028* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200028, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap] = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol2InputsNoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+21]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 31; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDol2InputsNoGmvNoTnrWithSapOuterNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol2InputsNoGmvNoTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200028::~StaticGraph200028() +{ +} + +StaticGraphStatus imageSubGraphTopology200028::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsNoGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsNoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->setInnerNode(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[14]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[15]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[17]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[19]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[21]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[20]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[22]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 31; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200028::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000; // Run kernel ids 20 (ifd_segmap_bnlm_1_4) and 21 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000; // Run kernel ids 26 (ifd_segmap_xnr_1_4) and 27 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000; // Run kernel ids 31 (ifd_segmap_acm_1_4) and 32 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000000; // Run kernel ids 39 (ifd_segmap_cas_1_4) and 40 (smurf_cas_1_0) + } + + lbffDol2InputsNoGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200029 + */ +StaticGraph200029::StaticGraph200029(GraphConfiguration200029* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200029, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap] = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol2InputsWithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+23]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 33; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDol2InputsWithGmvNoTnrWithSapOuterNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol2InputsWithGmvNoTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200029::~StaticGraph200029() +{ +} + +StaticGraphStatus imageSubGraphTopology200029::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsWithGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsWithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->setInnerNode(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[14]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[21]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[23]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[22]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[24]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 33; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[19]->isActive = (lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_gmv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200029::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000; // Run kernel ids 21 (ifd_segmap_bnlm_1_4) and 22 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000; // Run kernel ids 27 (ifd_segmap_xnr_1_4) and 28 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000; // Run kernel ids 32 (ifd_segmap_acm_1_4) and 33 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000000; // Run kernel ids 43 (ifd_segmap_cas_1_4) and 44 (smurf_cas_1_0) + } + + lbffDol2InputsWithGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200030 + */ +StaticGraph200030::StaticGraph200030(GraphConfiguration200030* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200030, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap] = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol2InputsNoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[25]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+26]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 36; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDol2InputsNoGmvWithTnrWithSapOuterNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol2InputsNoGmvWithTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200030::~StaticGraph200030() +{ +} + +StaticGraphStatus imageSubGraphTopology200030::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsNoGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsNoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->setInnerNode(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[17]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[19]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[20]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[24]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[26]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[25]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[27]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 36; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[21]->isActive = (lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[22]->isActive = (lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[23]->isActive = (lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200030::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000; // Run kernel ids 23 (ifd_segmap_bnlm_1_4) and 24 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000; // Run kernel ids 29 (ifd_segmap_xnr_1_4) and 30 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000000; // Run kernel ids 34 (ifd_segmap_acm_1_4) and 35 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000000000; // Run kernel ids 55 (ifd_segmap_cas_1_4) and 56 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000; // Run kernel ids 44 (ifd_segmap_tnr_bc_1_4) and 45 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[14]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000000; // Run kernel ids 48 (ifd_segmap_tnr_blend_1_4) and 49 (smurf_tnr_blend_1_0) + } + + lbffDol2InputsNoGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200031 + */ +StaticGraph200031::StaticGraph200031(GraphConfiguration200031* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200031, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap] = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol2InputsWithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[25]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[26]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[27]; + link->src = GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+28]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 38; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDol2InputsWithGmvWithTnrWithSapOuterNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol2InputsWithGmvWithTnrWithSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200031::~StaticGraph200031() +{ +} + +StaticGraphStatus imageSubGraphTopology200031::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsWithGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsWithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[27]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 29 && + (subGraphLinks[29]->src == subGraphLinks[27]->src && + subGraphLinks[29]->srcTerminalId == subGraphLinks[27]->srcTerminalId && + subGraphLinks[29]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[29]->src != subGraphLinks[27]->src || + subGraphLinks[29]->srcTerminalId != subGraphLinks[27]->srcTerminalId)) && + true) + { + lbffDol2InputsWithGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->setInnerNode(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[19]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[20]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[26]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[28]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[27]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 29 && + (subGraphLinks[29]->src == subGraphLinks[27]->src && + subGraphLinks[29]->srcTerminalId == subGraphLinks[27]->srcTerminalId && + subGraphLinks[29]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[29]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 38; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[21]->isActive = (lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_gmv_input + subGraphLinks[23]->isActive = (lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[24]->isActive = (lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[25]->isActive = (lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200031::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000; // Run kernel ids 24 (ifd_segmap_bnlm_1_4) and 25 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000000; // Run kernel ids 30 (ifd_segmap_xnr_1_4) and 31 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000000; // Run kernel ids 35 (ifd_segmap_acm_1_4) and 36 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000000000000; // Run kernel ids 59 (ifd_segmap_cas_1_4) and 60 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000000; // Run kernel ids 48 (ifd_segmap_tnr_bc_1_4) and 49 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[14]->isActive == false) + { + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000000000; // Run kernel ids 52 (ifd_segmap_tnr_blend_1_4) and 53 (smurf_tnr_blend_1_0) + } + + lbffDol2InputsWithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200032 + */ +StaticGraph200032::StaticGraph200032(GraphConfiguration200032* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200032, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+11]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 21; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200032::~StaticGraph200032() +{ +} + +StaticGraphStatus imageSubGraphTopology200032::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[12]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 21; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[2]->isActive = (lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_data_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200033 + */ +StaticGraph200033::StaticGraph200033(GraphConfiguration200033* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200033, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap] = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+13]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 23; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200033::~StaticGraph200033() +{ +} + +StaticGraphStatus imageSubGraphTopology200033::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[12]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 23; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[2]->isActive = (lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_data_input + subGraphLinks[9]->isActive = (lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_gmv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200034 + */ +StaticGraph200034::StaticGraph200034(GraphConfiguration200034* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200034, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+14]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 24; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200034::~StaticGraph200034() +{ +} + +StaticGraphStatus imageSubGraphTopology200034::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[12]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 24; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[2]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_data_input + subGraphLinks[9]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[10]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[11]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200035 + */ +StaticGraph200035::StaticGraph200035(GraphConfiguration200035* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200035, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::Isys; + link->destNode = &_isysOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Isys; + link->srcNode = &_isysOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+16]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 26; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysOuterNode = &_isysOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysOuterNode->contextId = 0; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode->contextId = 1; + _imageSubGraph.swGdcOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swImvOuterNode->contextId = 4; + _imageSubGraph.swScalerOuterNode->contextId = 5; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200035::~StaticGraph200035() +{ +} + +StaticGraphStatus imageSubGraphTopology200035::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 26; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[2]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_data_input + subGraphLinks[9]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_gmv_input + subGraphLinks[11]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[12]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[13]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200036 + */ +StaticGraph200036::StaticGraph200036(GraphConfiguration200036* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200036, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap] = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+19]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 29; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200036::~StaticGraph200036() +{ +} + +StaticGraphStatus imageSubGraphTopology200036::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[19]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[20]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 29; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_pdaf_data_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200036::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000; // Run kernel ids 22 (ifd_segmap_bnlm_1_4) and 23 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000; // Run kernel ids 28 (ifd_segmap_xnr_1_4) and 29 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000; // Run kernel ids 33 (ifd_segmap_acm_1_4) and 34 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000000; // Run kernel ids 41 (ifd_segmap_cas_1_4) and 42 (smurf_cas_1_0) + } + + lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200037 + */ +StaticGraph200037::StaticGraph200037(GraphConfiguration200037* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200037, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap] = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+21]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 31; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200037::~StaticGraph200037() +{ +} + +StaticGraphStatus imageSubGraphTopology200037::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[19]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[21]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[20]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[22]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 31; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[10]->isActive = (lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_pdaf_data_input + subGraphLinks[17]->isActive = (lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_gmv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200037::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000; // Run kernel ids 23 (ifd_segmap_bnlm_1_4) and 24 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000; // Run kernel ids 29 (ifd_segmap_xnr_1_4) and 30 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000000; // Run kernel ids 34 (ifd_segmap_acm_1_4) and 35 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000000; // Run kernel ids 45 (ifd_segmap_cas_1_4) and 46 (smurf_cas_1_0) + } + + lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200038 + */ +StaticGraph200038::StaticGraph200038(GraphConfiguration200038* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200038, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+24]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 34; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200038::~StaticGraph200038() +{ +} + +StaticGraphStatus imageSubGraphTopology200038::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[22]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[24]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[23]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[25]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 34; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[12]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_data_input + subGraphLinks[19]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[20]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[21]->isActive = (lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200038::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000; // Run kernel ids 25 (ifd_segmap_bnlm_1_4) and 26 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000; // Run kernel ids 31 (ifd_segmap_xnr_1_4) and 32 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000; // Run kernel ids 36 (ifd_segmap_acm_1_4) and 37 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000000000; // Run kernel ids 57 (ifd_segmap_cas_1_4) and 58 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000000000; // Run kernel ids 46 (ifd_segmap_tnr_bc_1_4) and 47 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000000000; // Run kernel ids 50 (ifd_segmap_tnr_blend_1_4) and 51 (smurf_tnr_blend_1_0) + } + + lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200039 + */ +StaticGraph200039::StaticGraph200039(GraphConfiguration200039* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200039, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysWithCv; + link->destNode = &_isysWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysWithCv; + link->srcNode = &_isysWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[6]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 19; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 13; + link->dest = GraphElementType::PdafOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->destNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[25]; + link->src = GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap; + link->srcNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+26]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 36; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->contextId = 2; + _imageSubGraph.swGdcOuterNode->contextId = 3; + _imageSubGraph.swNntmOuterNode->contextId = 4; + _imageSubGraph.swImvOuterNode->contextId = 5; + _imageSubGraph.swScalerOuterNode->contextId = 6; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200039::~StaticGraph200039() +{ +} + +StaticGraphStatus imageSubGraphTopology200039::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && + true) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->setInnerNode(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + + subGraphLinks[24]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[26]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[25]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[27]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 36; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[12]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & (no3A|noMp|noDp|noIr)) != (no3A|noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_dpc_pdaf_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_data_input + subGraphLinks[19]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_gmv_input + subGraphLinks[21]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[22]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[23]->isActive = (lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200039::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[6]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000; // Run kernel ids 26 (ifd_segmap_bnlm_1_4) and 27 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000; // Run kernel ids 32 (ifd_segmap_xnr_1_4) and 33 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000; // Run kernel ids 37 (ifd_segmap_acm_1_4) and 38 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[9]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000000000; // Run kernel ids 61 (ifd_segmap_cas_1_4) and 62 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[10]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000000000; // Run kernel ids 50 (ifd_segmap_tnr_bc_1_4) and 51 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000000000000; // Run kernel ids 54 (ifd_segmap_tnr_blend_1_4) and 55 (smurf_tnr_blend_1_0) + } + + lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200040 + */ +StaticGraph200040::StaticGraph200040(GraphConfiguration200040* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200040, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap] = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _lbffDol3InputsNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+14]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 24; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsNoGmvNoTnrNoSapOuterNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol3InputsNoGmvNoTnrNoSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200040::~StaticGraph200040() +{ +} + +StaticGraphStatus imageSubGraphTopology200040::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsNoGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsNoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsNoGmvNoTnrNoSapOuterNode->setInnerNode(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[7]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[8]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[9]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[10]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[11]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[12]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[14]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[13]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[15]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 24; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsNoGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffDol3InputsNoGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200041 + */ +StaticGraph200041::StaticGraph200041(GraphConfiguration200041* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200041, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap] = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _lbffDol3InputsWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+16]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 26; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsWithGmvNoTnrNoSapOuterNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol3InputsWithGmvNoTnrNoSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200041::~StaticGraph200041() +{ +} + +StaticGraphStatus imageSubGraphTopology200041::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsWithGmvNoTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsWithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsWithGmvNoTnrNoSapOuterNode->setInnerNode(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[7]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[8]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[14]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[16]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[15]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 26; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[12]->isActive = (lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_gmv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsWithGmvNoTnrNoSapOuterNode->bitmapsNotVanished = lbffDol3InputsWithGmvNoTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200042 + */ +StaticGraph200042::StaticGraph200042(GraphConfiguration200042* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200042, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap] = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _lbffDol3InputsNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+17]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 27; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsNoGmvWithTnrNoSapOuterNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol3InputsNoGmvWithTnrNoSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200042::~StaticGraph200042() +{ +} + +StaticGraphStatus imageSubGraphTopology200042::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsNoGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsNoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsNoGmvWithTnrNoSapOuterNode->setInnerNode(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[7]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[8]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[9]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[10]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[11]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[15]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[17]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[16]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 27; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[12]->isActive = (lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[13]->isActive = (lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[14]->isActive = (lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsNoGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffDol3InputsNoGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200043 + */ +StaticGraph200043::StaticGraph200043(GraphConfiguration200043* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200043, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap] = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _lbffDol3InputsWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDol; + link->destNode = &_isysDolOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDol; + link->srcNode = &_isysDolOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[8]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[9]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+19]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 29; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsWithGmvWithTnrNoSapOuterNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolOuterNode->contextId = 0; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 1; + _imageSubGraph.swB2bOuterNode->contextId = 2; + _imageSubGraph.swRemosaicOuterNode->contextId = 3; + _imageSubGraph.swAinrOuterNode->contextId = 4; + _imageSubGraph.lbffDol3InputsWithGmvWithTnrNoSapOuterNode->contextId = 5; + _imageSubGraph.swGdcOuterNode->contextId = 6; + _imageSubGraph.swNntmOuterNode->contextId = 7; + _imageSubGraph.swImvOuterNode->contextId = 8; + _imageSubGraph.swScalerOuterNode->contextId = 9; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200043::~StaticGraph200043() +{ +} + +StaticGraphStatus imageSubGraphTopology200043::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsWithGmvWithTnrNoSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsWithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsWithGmvWithTnrNoSapOuterNode->setInnerNode(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[7]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[8]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 29; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[12]->isActive = (lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_gmv_feature_output -> lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_gmv_input + subGraphLinks[14]->isActive = (lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_blend_output -> lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_blend_yuv_input + subGraphLinks[15]->isActive = (lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_bc_output -> lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_bc_rs_input + subGraphLinks[16]->isActive = (lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_tnr_scaler_output -> lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_bc_yuv_input + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsWithGmvWithTnrNoSapOuterNode->bitmapsNotVanished = lbffDol3InputsWithGmvWithTnrNoSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +/* + * Graph 200044 + */ +StaticGraph200044::StaticGraph200044(GraphConfiguration200044* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200044, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap] = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol3InputsNoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+23]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 33; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsNoGmvNoTnrWithSapOuterNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 2; + _imageSubGraph.swB2bOuterNode->contextId = 3; + _imageSubGraph.swRemosaicOuterNode->contextId = 4; + _imageSubGraph.swAinrOuterNode->contextId = 5; + _imageSubGraph.lbffDol3InputsNoGmvNoTnrWithSapOuterNode->contextId = 6; + _imageSubGraph.swGdcOuterNode->contextId = 7; + _imageSubGraph.swNntmOuterNode->contextId = 8; + _imageSubGraph.swImvOuterNode->contextId = 9; + _imageSubGraph.swScalerOuterNode->contextId = 10; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200044::~StaticGraph200044() +{ +} + +StaticGraphStatus imageSubGraphTopology200044::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsNoGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsNoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->setInnerNode(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[16]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[17]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[19]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[20]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[21]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[23]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[22]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[24]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 33; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200044::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000; // Run kernel ids 21 (ifd_segmap_bnlm_1_4) and 22 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x18000000; // Run kernel ids 27 (ifd_segmap_xnr_1_4) and 28 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000; // Run kernel ids 32 (ifd_segmap_acm_1_4) and 33 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[14]->isActive == false) + { + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000000; // Run kernel ids 40 (ifd_segmap_cas_1_4) and 41 (smurf_cas_1_0) + } + + lbffDol3InputsNoGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200045 + */ +StaticGraph200045::StaticGraph200045(GraphConfiguration200045* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200045, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap] = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol3InputsWithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+25]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + + } + for (uint8_t i = 0; i < 35; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsWithGmvNoTnrWithSapOuterNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 2; + _imageSubGraph.swB2bOuterNode->contextId = 3; + _imageSubGraph.swRemosaicOuterNode->contextId = 4; + _imageSubGraph.swAinrOuterNode->contextId = 5; + _imageSubGraph.lbffDol3InputsWithGmvNoTnrWithSapOuterNode->contextId = 6; + _imageSubGraph.swGdcOuterNode->contextId = 7; + _imageSubGraph.swNntmOuterNode->contextId = 8; + _imageSubGraph.swImvOuterNode->contextId = 9; + _imageSubGraph.swScalerOuterNode->contextId = 10; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200045::~StaticGraph200045() +{ +} + +StaticGraphStatus imageSubGraphTopology200045::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsWithGmvNoTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsWithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvNoTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvNoTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->setInnerNode(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[16]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[23]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[25]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[24]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[26]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 35; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[21]->isActive = (lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_gmv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmapsNotVanished = lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200045::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0xC00000; // Run kernel ids 22 (ifd_segmap_bnlm_1_4) and 23 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x30000000; // Run kernel ids 28 (ifd_segmap_xnr_1_4) and 29 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000; // Run kernel ids 33 (ifd_segmap_acm_1_4) and 34 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[14]->isActive == false) + { + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000; // Run kernel ids 44 (ifd_segmap_cas_1_4) and 45 (smurf_cas_1_0) + } + + lbffDol3InputsWithGmvNoTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200046 + */ +StaticGraph200046::StaticGraph200046(GraphConfiguration200046* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200046, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap] = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol3InputsNoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[16]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[17]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[25]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[26]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[27]; + link->src = GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) + { + link = &_graphLinks[i+28]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; + } - else if (nodeRelevantInnerOptions == (no3A | noPdaf | noMp | noDp)) + for (uint8_t i = 0; i < 38; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsNoGmvWithTnrWithSapOuterNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 2; + _imageSubGraph.swB2bOuterNode->contextId = 3; + _imageSubGraph.swRemosaicOuterNode->contextId = 4; + _imageSubGraph.swAinrOuterNode->contextId = 5; + _imageSubGraph.lbffDol3InputsNoGmvWithTnrWithSapOuterNode->contextId = 6; + _imageSubGraph.swGdcOuterNode->contextId = 7; + _imageSubGraph.swNntmOuterNode->contextId = 8; + _imageSubGraph.swImvOuterNode->contextId = 9; + _imageSubGraph.swScalerOuterNode->contextId = 10; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200046::~StaticGraph200046() +{ +} + +StaticGraphStatus imageSubGraphTopology200046::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsNoGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsNoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[27]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 29 && + (subGraphLinks[29]->src == subGraphLinks[27]->src && + subGraphLinks[29]->srcTerminalId == subGraphLinks[27]->srcTerminalId && + subGraphLinks[29]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[29]->src != subGraphLinks[27]->src || + subGraphLinks[29]->srcTerminalId != subGraphLinks[27]->srcTerminalId)) && + true) + { + lbffDol3InputsNoGmvWithTnrWithSapInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->setInnerNode(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[19]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[20]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[21]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[22]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[26]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[28]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[27]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 29 && + (subGraphLinks[29]->src == subGraphLinks[27]->src && + subGraphLinks[29]->srcTerminalId == subGraphLinks[27]->srcTerminalId && + subGraphLinks[29]->linkConfiguration->bufferSize == 0)))) + { + subGraphLinks[29]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 38; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[23]->isActive = (lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[24]->isActive = (lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[25]->isActive = (lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology200046::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000; // Run kernel ids 24 (ifd_segmap_bnlm_1_4) and 25 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000000; // Run kernel ids 30 (ifd_segmap_xnr_1_4) and 31 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x1800000000; // Run kernel ids 35 (ifd_segmap_acm_1_4) and 36 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[14]->isActive == false) + { + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x300000000000000; // Run kernel ids 56 (ifd_segmap_cas_1_4) and 57 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[15]->isActive == false) + { + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x600000000000; // Run kernel ids 45 (ifd_segmap_tnr_bc_1_4) and 46 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[16]->isActive == false) + { + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000000; // Run kernel ids 49 (ifd_segmap_tnr_blend_1_4) and 50 (smurf_tnr_blend_1_0) + } + + lbffDol3InputsNoGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} +/* + * Graph 200047 + */ +StaticGraph200047::StaticGraph200047(GraphConfiguration200047* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 200047, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap] = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwB2b] = &_swB2bOuterNode; + elementTypeToOuternode[GraphElementType::SwRemosaic] = &_swRemosaicOuterNode; + elementTypeToOuternode[GraphElementType::SwAinr] = &_swAinrOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwImv] = &_swImvOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol3InputsWithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration); + _swB2bOuterNode.Init(&_graphConfiguration.swB2bOuterNodeConfiguration); + _swRemosaicOuterNode.Init(&_graphConfiguration.swRemosaicOuterNodeConfiguration); + _swAinrOuterNode.Init(&_graphConfiguration.swAinrOuterNodeConfiguration); + _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swImvOuterNode.Init(&_graphConfiguration.swImvOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDolSmooth; + link->destNode = &_lbffDolSmoothOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::LbffDolSmooth; + link->srcNode = &_lbffDolSmoothOuterNode; + link->srcTerminalId = 16; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 6; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SegnetSecondary; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 30; + link->type = LinkType::Node2Node; + + link = &_graphLinks[12]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 31; + link->type = LinkType::Node2Node; + + link = &_graphLinks[13]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 32; + link->type = LinkType::Node2Node; + + link = &_graphLinks[14]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 35; + link->type = LinkType::Node2Node; + + link = &_graphLinks[15]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[16]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[17]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[22]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 21; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 17; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[24]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 20; + link->dest = GraphElementType::GmvMatchOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[25]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[26]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[27]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->destNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[28]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[29]; + link->src = GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap; + link->srcNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 10; ++i) { - // HW bitmaps - // RBM - 0x00000000000000000000000000000000 - // DEB - 0x00000000000000000000000000000000 - // TEB - 0x0000000000000000 - // REB - 0x00000000000000000000000000000000 + link = &_graphLinks[i+30]; + link->src = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].src; + link->srcNode = elementTypeToOuternode[link->src]; + link->srcTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].srcTerminalId; + link->dest = (GraphElementType)_graphConfiguration.swProcessingLinkDefinitions[i].dest; + link->destNode = elementTypeToOuternode[link->dest]; + link->destTerminalId = _graphConfiguration.swProcessingLinkDefinitions[i].destTerminalId; + link->type = (LinkType)_graphConfiguration.swProcessingLinkDefinitions[i].type; - // Kernels disablement - // 0 ifd_pipe_1_4- inner node disablement - // 1 bxt_blc- inner node disablement - // 2 linearization2_0- inner node disablement - // 3 dpc_2_2- inner node disablement - // 4 odr_dpc_pdaf_1_4- inner node disablement - // 5 rgb_ir_2_0- inner node disablement - // 6 ifd_lsc_1_4- inner node disablement - // 7 lsc_1_2- inner node disablement - // 8 gd_2_2- inner node disablement - // 9 wb_1_1- inner node disablement - // 10 rgbs_grid_1_1- inner node disablement - // 11 ccm_3a_2_0- inner node disablement - // 12 fr_grid_1_0- inner node disablement - // 13 odr_awb_std_1_4- inner node disablement - // 14 odr_awb_sat_1_4- inner node disablement - // 15 aestatistics_2_1- inner node disablement - // 16 odr_ae_1_4- inner node disablement - // 17 odr_af_std_1_4- inner node disablement - // 18 ifd_pdaf_1_4- inner node disablement - // 19 pext_1_0- inner node disablement - // 20 pafstatistics_1_2- inner node disablement - // 21 odr_pdaf_1_4- inner node disablement - // 22 ifd_gmv_1_4- inner node disablement - // 23 ifd_segmap_bnlm_1_4- inner node disablement - // 24 smurf_bnlm_1_0- inner node disablement - // 25 bnlm_3_4- inner node disablement - // 26 bxt_demosaic- inner node disablement - // 27 vcsc_2_0_b- inner node disablement - // 28 gltm_2_0- inner node disablement - // 29 ifd_segmap_xnr_1_4- inner node disablement - // 30 smurf_xnr_1_0- inner node disablement - // 31 xnr_5_4- inner node disablement - // 32 vcr_3_1- inner node disablement - // 33 glim_2_0- inner node disablement - // 34 ifd_segmap_acm_1_4- inner node disablement - // 35 smurf_acm_1_0- inner node disablement - // 36 acm_1_2- inner node disablement - // 37 gammatm_v4- inner node disablement - // 38 csc_1_1- inner node disablement - // 39 b2i_ds_1_1- inner node disablement - // 40 lbff_crop_espa_1_4- inner node disablement - // 41 image_upscaler_1_1- inner node disablement - // 42 gmv_statistics_1_1- inner node disablement - // 43 odr_gmv_feature_1_4- inner node disablement - // 44 odr_gmv_match_1_4- inner node disablement - // 45 ifd_segmap_cas_1_4- inner node disablement - // 46 smurf_cas_1_0- inner node disablement - // 47 cas_1_1- inner node disablement - // 48 odr_ofs_mp_1_4- inner node disablement - // 49 b2i_ds_output_1_1- inner node disablement - // 50 odr_ofs_dp_1_4- inner node disablement - disabledRunKernelsBitmap[0] = 0x7FFFFFFFFFFFF; } - else // default inner node + for (uint8_t i = 0; i < 40; ++i) { - // RBM - 0x0000000000000000006401BD541F6811 - bitmaps.rbm[0] = 0x541F6811; - bitmaps.rbm[1] = 0x6401BD; - // DEB - 0x000000000000E1E0000FFFFEEDFBFFF1 - bitmaps.deb[0] = 0xEDFBFFF1; - bitmaps.deb[1] = 0xFFFFE; - bitmaps.deb[2] = 0xE1E0; - // TEB - 0x00000009F03A3F9F - bitmaps.teb[0] = 0xF03A3F9F; - bitmaps.teb[1] = 0x9; - // REB - 0x00000000000000000000001F16F7FFE7 - bitmaps.reb[0] = 0x16F7FFE7; - bitmaps.reb[1] = 0x1F; - } + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; - SetDisabledKernels(disabledRunKernelsBitmap); + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; + _imageSubGraph.lbffDol3InputsWithGmvWithTnrWithSapOuterNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + _imageSubGraph.swB2bOuterNode = &_swB2bOuterNode; + _imageSubGraph.swRemosaicOuterNode = &_swRemosaicOuterNode; + _imageSubGraph.swAinrOuterNode = &_swAinrOuterNode; + _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swImvOuterNode = &_swImvOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffDolSmoothOuterNode->contextId = 2; + _imageSubGraph.swB2bOuterNode->contextId = 3; + _imageSubGraph.swRemosaicOuterNode->contextId = 4; + _imageSubGraph.swAinrOuterNode->contextId = 5; + _imageSubGraph.lbffDol3InputsWithGmvWithTnrWithSapOuterNode->contextId = 6; + _imageSubGraph.swGdcOuterNode->contextId = 7; + _imageSubGraph.swNntmOuterNode->contextId = 8; + _imageSubGraph.swImvOuterNode->contextId = 9; + _imageSubGraph.swScalerOuterNode->contextId = 10; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph200047::~StaticGraph200047() +{ } -void LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode::configVanishStatus(VanishOption vanishStatus) +StaticGraphStatus imageSubGraphTopology200047::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) { - // Kernel default enablement - for (uint8_t i = 0; i < 51; ++i) + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol3InputsWithGmvWithTnrWithSap initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol3InputsWithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol3InputsWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[28]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 30 && + (subGraphLinks[30]->src == subGraphLinks[28]->src && + subGraphLinks[30]->srcTerminalId == subGraphLinks[28]->srcTerminalId && + subGraphLinks[30]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[30]->src != subGraphLinks[28]->src || + subGraphLinks[30]->srcTerminalId != subGraphLinks[28]->srcTerminalId)) && + true) { - nodeKernels.kernelList[i].run_kernel.enable = 1; + lbffDol3InputsWithGmvWithTnrWithSapInnerOptions |= noMp; + } + if ( + (subGraphLinks[29]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 31 && + (subGraphLinks[31]->src == subGraphLinks[29]->src && + subGraphLinks[31]->srcTerminalId == subGraphLinks[29]->srcTerminalId && + subGraphLinks[31]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[31]->src != subGraphLinks[29]->src || + subGraphLinks[31]->srcTerminalId != subGraphLinks[29]->srcTerminalId)) && + true) + { + lbffDol3InputsWithGmvWithTnrWithSapInnerOptions |= noDp; } - // Pass-through kernels - nodeKernels.kernelList[5].run_kernel.enable = 0; // rgb_ir_2_0 - - // Kernel current inner node enablement - uint64_t disabledRunKernelsBitmap[2]; - disabledRunKernelsBitmap[0] = disabledRunKernelsBitmapNotVanished[0]; - disabledRunKernelsBitmap[1] = disabledRunKernelsBitmapNotVanished[1]; + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->setInnerNode(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions); - switch (vanishStatus) + /* + * Link enablement by public inner options + */ + subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[21]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[22]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[28]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[30]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc_in:terminal_connect_input + + subGraphLinks[29]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + + if (((numOfLinks > 31 && + (subGraphLinks[31]->src == subGraphLinks[29]->src && + subGraphLinks[31]->srcTerminalId == subGraphLinks[29]->srcTerminalId && + subGraphLinks[31]->linkConfiguration->bufferSize == 0)))) { - case VanishOption::Full: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0xFFFFFFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0xFFFFFFFF; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0xFFFFFFFF; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0xFFFFFFFF; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0xFFFFFFFF; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0xFFFFFFFF; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0xFFFFFFFF; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0xFFFFFFFF; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xFFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0xFFFFFFFF; + subGraphLinks[31]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc_in:terminal_connect_input + } + - break; - } - case VanishOption::AfterStats: + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 40; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0x8FFEFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3C0; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0x3FFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0x0; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x0; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xF09FFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x0; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xC7FFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x0; - disabledRunKernelsBitmap[0] |= 0x7FFFFFFC00300; - - break; + subGraphLinks[i]->isActive = false; } - case VanishOption::AfterTnr: - { - bitmaps.rbm[0] = bitmapsNotVanished.rbm[0] & 0xFFFFFFFF; - bitmaps.rbm[1] = bitmapsNotVanished.rbm[1] & 0x3FFFF; - bitmaps.rbm[2] = bitmapsNotVanished.rbm[2] & 0x0; - bitmaps.rbm[3] = bitmapsNotVanished.rbm[3] & 0x0; - bitmaps.deb[0] = bitmapsNotVanished.deb[0] & 0xFFFFFFFF; - bitmaps.deb[1] = bitmapsNotVanished.deb[1] & 0xFFFFFFFF; - bitmaps.deb[2] = bitmapsNotVanished.deb[2] & 0x1F; - bitmaps.deb[3] = bitmapsNotVanished.deb[3] & 0x0; - bitmaps.reb[0] = bitmapsNotVanished.reb[0] & 0xFFFFFFFF; - bitmaps.reb[1] = bitmapsNotVanished.reb[1] & 0x3; - bitmaps.reb[2] = bitmapsNotVanished.reb[2] & 0x0; - bitmaps.reb[3] = bitmapsNotVanished.reb[3] & 0x0; - bitmaps.teb[0] = bitmapsNotVanished.teb[0] & 0xCFFFFFFF; - bitmaps.teb[1] = bitmapsNotVanished.teb[1] & 0x7; - disabledRunKernelsBitmap[0] |= 0x7E20000000000; + } - break; - } - } + /* + * Link enablement by inner options combinations + */ + subGraphLinks[23]->isActive = (lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_gmv_feature_output -> lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_gmv_input + subGraphLinks[25]->isActive = (lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_blend_output -> lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_blend_yuv_input + subGraphLinks[26]->isActive = (lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_bc_output -> lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_bc_rs_input + subGraphLinks[27]->isActive = (lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_tnr_scaler_output -> lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_bc_yuv_input - // Set Kernel enablement for inner node + vanish status - SetDisabledKernels(disabledRunKernelsBitmap); -} + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); -void WithCvOuterNode::setInnerNode(InnerNodeOptionsFlags nodeInnerOptions) -{ + /* + * Save the not-vanished HW bitmaps + */ + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmapsNotVanished = lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps; - // No inner nodes - (void)nodeInnerOptions; + return StaticGraphStatus::SG_OK; } -void WithCvOuterNode::configVanishStatus(VanishOption vanishStatus) +StaticGraphStatus imageSubGraphTopology200047::updateSegmentAwareKernels() { - (void)vanishStatus; - return; -} + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bnlm_sm_input + if (subGraphLinks[11]->isActive == false) + { + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 30); // Terminal id 30 - terminal_connect_bnlm_sm_input + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 29); // Device id 29 - ifd_segmap_bnlm_1_4 + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[0] &= ~(1 << 30); // Device id 30 - smurf_bnlm_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000; // Run kernel ids 25 (ifd_segmap_bnlm_1_4) and 26 (smurf_bnlm_1_0) + } + + // Link to terminal_connect_xnr_sm_input + if (subGraphLinks[12]->isActive == false) + { + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[0] &= ~(1 << 31); // Terminal id 31 - terminal_connect_xnr_sm_input + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 4); // Device id 36 - ifd_segmap_xnr_1_4 + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 5); // Device id 37 - smurf_xnr_1_0 + disabledRunKernelsBitmap[0] |= 0x180000000; // Run kernel ids 31 (ifd_segmap_xnr_1_4) and 32 (smurf_xnr_1_0) + } + + // Link to terminal_connect_acm_sm_input + if (subGraphLinks[13]->isActive == false) + { + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 0); // Terminal id 32 - terminal_connect_acm_sm_input + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 9); // Device id 41 - ifd_segmap_acm_1_4 + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 10); // Device id 42 - smurf_acm_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000; // Run kernel ids 36 (ifd_segmap_acm_1_4) and 37 (smurf_acm_1_0) + } + + // Link to terminal_connect_cas_sm_input + if (subGraphLinks[14]->isActive == false) + { + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 3); // Terminal id 35 - terminal_connect_cas_sm_input + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 6); // Device id 70 - ifd_segmap_cas_1_4 + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 7); // Device id 71 - smurf_cas_1_0 + disabledRunKernelsBitmap[0] |= 0x3000000000000000; // Run kernel ids 60 (ifd_segmap_cas_1_4) and 61 (smurf_cas_1_0) + } + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[15]->isActive == false) + { + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0x6000000000000; // Run kernel ids 49 (ifd_segmap_tnr_bc_1_4) and 50 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[16]->isActive == false) + { + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0x60000000000000; // Run kernel ids 53 (ifd_segmap_tnr_blend_1_4) and 54 (smurf_tnr_blend_1_0) + } + lbffDol3InputsWithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} /* * Graph 100000 */ -StaticGraph100000::StaticGraph100000(GraphConfiguration100000* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100000, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100000::StaticGraph100000(GraphConfiguration100000* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100000, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrNoSap] = &_lbffBayerNoGmvNoTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -33807,11 +51662,11 @@ StaticGraph100000::StaticGraph100000(GraphConfiguration100000* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerNoGmvNoTnrNoSapOuterNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -33845,13 +51700,13 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -33866,11 +51721,17 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[8]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -33895,10 +51756,14 @@ StaticGraphStatus imageSubGraphTopology100000::configInnerNodes(SubGraphInnerNod /* * Graph 100001 */ -StaticGraph100001::StaticGraph100001(GraphConfiguration100001* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100001, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100001::StaticGraph100001(GraphConfiguration100001* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100001, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrNoSap] = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -34021,12 +51886,12 @@ StaticGraph100001::StaticGraph100001(GraphConfiguration100001* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvNoTnrNoSapOuterNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -34061,15 +51926,25 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -34084,13 +51959,21 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[10]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[12]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -34120,10 +52003,13 @@ StaticGraphStatus imageSubGraphTopology100001::configInnerNodes(SubGraphInnerNod /* * Graph 100002 */ -StaticGraph100002::StaticGraph100002(GraphConfiguration100002* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100002, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100002::StaticGraph100002(GraphConfiguration100002* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100002, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -34233,11 +52119,11 @@ StaticGraph100002::StaticGraph100002(GraphConfiguration100002* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -34271,13 +52157,13 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -34292,11 +52178,17 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -34328,10 +52220,14 @@ StaticGraphStatus imageSubGraphTopology100002::configInnerNodes(SubGraphInnerNod /* * Graph 100003 */ -StaticGraph100003::StaticGraph100003(GraphConfiguration100003* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100003, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100003::StaticGraph100003(GraphConfiguration100003* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100003, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -34484,12 +52380,12 @@ StaticGraph100003::StaticGraph100003(GraphConfiguration100003* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -34524,15 +52420,25 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -34547,13 +52453,21 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -34586,10 +52500,16 @@ StaticGraphStatus imageSubGraphTopology100003::configInnerNodes(SubGraphInnerNod /* * Graph 100137 */ -StaticGraph100137::StaticGraph100137(GraphConfiguration100137* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100137, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100137::StaticGraph100137(GraphConfiguration100137* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100137, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrWithSap] = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -34844,14 +52764,14 @@ StaticGraph100137::StaticGraph100137(GraphConfiguration100137* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerWithGmvWithTnrWithSapOuterNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -34888,15 +52808,25 @@ StaticGraphStatus imageSubGraphTopology100137::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -34911,13 +52841,21 @@ StaticGraphStatus imageSubGraphTopology100137::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[22]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[23]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[25]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -35017,10 +52955,15 @@ StaticGraphStatus imageSubGraphTopology100137::updateSegmentAwareKernels() /* * Graph 100079 */ -StaticGraph100079::StaticGraph100079(GraphConfiguration100079* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100079, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100079::StaticGraph100079(GraphConfiguration100079* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100079, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -35173,13 +53116,13 @@ StaticGraph100079::StaticGraph100079(GraphConfiguration100079* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -35215,15 +53158,25 @@ StaticGraphStatus imageSubGraphTopology100079::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -35238,13 +53191,21 @@ StaticGraphStatus imageSubGraphTopology100079::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[11]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -35276,10 +53237,15 @@ StaticGraphStatus imageSubGraphTopology100079::configInnerNodes(SubGraphInnerNod /* * Graph 100080 */ -StaticGraph100080::StaticGraph100080(GraphConfiguration100080* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100080, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100080::StaticGraph100080(GraphConfiguration100080* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100080, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -35432,13 +53398,13 @@ StaticGraph100080::StaticGraph100080(GraphConfiguration100080* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -35474,15 +53440,25 @@ StaticGraphStatus imageSubGraphTopology100080::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -35497,13 +53473,21 @@ StaticGraphStatus imageSubGraphTopology100080::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[11]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -35535,10 +53519,16 @@ StaticGraphStatus imageSubGraphTopology100080::configInnerNodes(SubGraphInnerNod /* * Graph 100138 */ -StaticGraph100138::StaticGraph100138(GraphConfiguration100138* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100138, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100138::StaticGraph100138(GraphConfiguration100138* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100138, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrWithSap] = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -35776,14 +53766,14 @@ StaticGraph100138::StaticGraph100138(GraphConfiguration100138* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrWithSapOuterNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -35820,15 +53810,25 @@ StaticGraphStatus imageSubGraphTopology100138::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -35843,13 +53843,21 @@ StaticGraphStatus imageSubGraphTopology100138::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[20]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[21]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[23]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -35948,10 +53956,16 @@ StaticGraphStatus imageSubGraphTopology100138::updateSegmentAwareKernels() /* * Graph 100142 */ -StaticGraph100142::StaticGraph100142(GraphConfiguration100142* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100142, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100142::StaticGraph100142(GraphConfiguration100142* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100142, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -36212,14 +54226,14 @@ StaticGraph100142::StaticGraph100142(GraphConfiguration100142* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -36256,15 +54270,25 @@ StaticGraphStatus imageSubGraphTopology100142::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -36279,14 +54303,23 @@ StaticGraphStatus imageSubGraphTopology100142::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -36385,10 +54418,14 @@ StaticGraphStatus imageSubGraphTopology100142::updateSegmentAwareKernels() /* * Graph 100162 */ -StaticGraph100162::StaticGraph100162(GraphConfiguration100162* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100162, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100162::StaticGraph100162(GraphConfiguration100162* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100162, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithTnrWithSap] = &_lbffBayerPdaf2WithTnrWithSapOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -36606,12 +54643,12 @@ StaticGraph100162::StaticGraph100162(GraphConfiguration100162* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2WithTnrWithSapOuterNode = &_lbffBayerPdaf2WithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -36646,13 +54683,13 @@ StaticGraphStatus imageSubGraphTopology100162::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2WithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2WithTnrWithSapInnerOptions |= noDp; @@ -36667,12 +54704,19 @@ StaticGraphStatus imageSubGraphTopology100162::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -36771,10 +54815,16 @@ StaticGraphStatus imageSubGraphTopology100162::updateSegmentAwareKernels() /* * Graph 100143 */ -StaticGraph100143::StaticGraph100143(GraphConfiguration100143* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100143, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100143::StaticGraph100143(GraphConfiguration100143* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100143, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap] = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration); @@ -37019,14 +55069,14 @@ StaticGraph100143::StaticGraph100143(GraphConfiguration100143* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -37063,15 +55113,25 @@ StaticGraphStatus imageSubGraphTopology100143::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -37086,13 +55146,21 @@ StaticGraphStatus imageSubGraphTopology100143::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[23]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[22]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[24]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -37191,10 +55259,16 @@ StaticGraphStatus imageSubGraphTopology100143::updateSegmentAwareKernels() /* * Graph 100144 */ -StaticGraph100144::StaticGraph100144(GraphConfiguration100144* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100144, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100144::StaticGraph100144(GraphConfiguration100144* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100144, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -37449,14 +55523,14 @@ StaticGraph100144::StaticGraph100144(GraphConfiguration100144* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -37493,15 +55567,25 @@ StaticGraphStatus imageSubGraphTopology100144::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -37516,14 +55600,23 @@ StaticGraphStatus imageSubGraphTopology100144::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[22]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[23]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[25]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -37623,10 +55716,15 @@ StaticGraphStatus imageSubGraphTopology100144::updateSegmentAwareKernels() /* * Graph 100081 */ -StaticGraph100081::StaticGraph100081(GraphConfiguration100081* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100081, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100081::StaticGraph100081(GraphConfiguration100081* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100081, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -37796,13 +55894,13 @@ StaticGraph100081::StaticGraph100081(GraphConfiguration100081* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -37838,15 +55936,25 @@ StaticGraphStatus imageSubGraphTopology100081::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -37861,13 +55969,21 @@ StaticGraphStatus imageSubGraphTopology100081::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -37900,10 +56016,13 @@ StaticGraphStatus imageSubGraphTopology100081::configInnerNodes(SubGraphInnerNod /* * Graph 100004 */ -StaticGraph100004::StaticGraph100004(GraphConfiguration100004* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100004, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100004::StaticGraph100004(GraphConfiguration100004* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100004, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap] = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); _lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration); @@ -38006,11 +56125,11 @@ StaticGraph100004::StaticGraph100004(GraphConfiguration100004* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -38044,13 +56163,13 @@ StaticGraphStatus imageSubGraphTopology100004::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= noDp; @@ -38065,12 +56184,19 @@ StaticGraphStatus imageSubGraphTopology100004::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -38095,10 +56221,14 @@ StaticGraphStatus imageSubGraphTopology100004::configInnerNodes(SubGraphInnerNod /* * Graph 100005 */ -StaticGraph100005::StaticGraph100005(GraphConfiguration100005* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100005, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100005::StaticGraph100005(GraphConfiguration100005* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100005, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap] = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); _lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration); @@ -38244,12 +56374,12 @@ StaticGraph100005::StaticGraph100005(GraphConfiguration100005* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -38284,15 +56414,25 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= noDp; @@ -38307,14 +56447,23 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[12]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -38344,10 +56493,13 @@ StaticGraphStatus imageSubGraphTopology100005::configInnerNodes(SubGraphInnerNod /* * Graph 100006 */ -StaticGraph100006::StaticGraph100006(GraphConfiguration100006* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100006, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100006::StaticGraph100006(GraphConfiguration100006* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100006, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); _lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -38480,11 +56632,11 @@ StaticGraph100006::StaticGraph100006(GraphConfiguration100006* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -38518,13 +56670,13 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -38539,12 +56691,19 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -38576,10 +56735,15 @@ StaticGraphStatus imageSubGraphTopology100006::configInnerNodes(SubGraphInnerNod /* * Graph 100066 */ -StaticGraph100066::StaticGraph100066(GraphConfiguration100066* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100066, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100066::StaticGraph100066(GraphConfiguration100066* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100066, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); _lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -38755,13 +56919,13 @@ StaticGraph100066::StaticGraph100066(GraphConfiguration100066* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -38797,15 +56961,25 @@ StaticGraphStatus imageSubGraphTopology100066::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -38820,14 +56994,23 @@ StaticGraphStatus imageSubGraphTopology100066::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -38859,10 +57042,14 @@ StaticGraphStatus imageSubGraphTopology100066::configInnerNodes(SubGraphInnerNod /* * Graph 100007 */ -StaticGraph100007::StaticGraph100007(GraphConfiguration100007* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100007, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100007::StaticGraph100007(GraphConfiguration100007* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100007, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); _lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -39038,12 +57225,12 @@ StaticGraph100007::StaticGraph100007(GraphConfiguration100007* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -39078,15 +57265,25 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -39101,14 +57298,23 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -39141,10 +57347,16 @@ StaticGraphStatus imageSubGraphTopology100007::configInnerNodes(SubGraphInnerNod /* * Graph 100067 */ -StaticGraph100067::StaticGraph100067(GraphConfiguration100067* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100067, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100067::StaticGraph100067(GraphConfiguration100067* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100067, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); _lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -39347,14 +57559,14 @@ StaticGraph100067::StaticGraph100067(GraphConfiguration100067* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -39391,15 +57603,25 @@ StaticGraphStatus imageSubGraphTopology100067::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -39414,14 +57636,23 @@ StaticGraphStatus imageSubGraphTopology100067::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -39454,10 +57685,16 @@ StaticGraphStatus imageSubGraphTopology100067::configInnerNodes(SubGraphInnerNod /* * Graph 100139 */ -StaticGraph100139::StaticGraph100139(GraphConfiguration100139* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100139, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100139::StaticGraph100139(GraphConfiguration100139* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100139, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -39735,14 +57972,14 @@ StaticGraph100139::StaticGraph100139(GraphConfiguration100139* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -39779,15 +58016,25 @@ StaticGraphStatus imageSubGraphTopology100139::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && - subGraphLinks[28]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -39802,14 +58049,23 @@ StaticGraphStatus imageSubGraphTopology100139::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[25]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[27]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[26]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[28]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -39909,10 +58165,14 @@ StaticGraphStatus imageSubGraphTopology100139::updateSegmentAwareKernels() /* * Graph 100169 */ -StaticGraph100169::StaticGraph100169(GraphConfiguration100169* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100169, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100169::StaticGraph100169(GraphConfiguration100169* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100169, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithTnrWithSap] = &_lbffBayerPdaf2WithTnrWithSapOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -40130,12 +58390,12 @@ StaticGraph100169::StaticGraph100169(GraphConfiguration100169* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2WithTnrWithSapOuterNode = &_lbffBayerPdaf2WithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -40170,13 +58430,13 @@ StaticGraphStatus imageSubGraphTopology100169::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2WithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2WithTnrWithSapInnerOptions |= noDp; @@ -40191,12 +58451,19 @@ StaticGraphStatus imageSubGraphTopology100169::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerPdaf2WithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -40295,10 +58562,13 @@ StaticGraphStatus imageSubGraphTopology100169::updateSegmentAwareKernels() /* * Graph 100008 */ -StaticGraph100008::StaticGraph100008(GraphConfiguration100008* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100008, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100008::StaticGraph100008(GraphConfiguration100008* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100008, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap] = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration); @@ -40385,11 +58655,11 @@ StaticGraph100008::StaticGraph100008(GraphConfiguration100008* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -40423,13 +58693,13 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= noDp; @@ -40444,11 +58714,17 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[9]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -40473,10 +58749,14 @@ StaticGraphStatus imageSubGraphTopology100008::configInnerNodes(SubGraphInnerNod /* * Graph 100009 */ -StaticGraph100009::StaticGraph100009(GraphConfiguration100009* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100009, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100009::StaticGraph100009(GraphConfiguration100009* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100009, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap] = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration); @@ -40606,12 +58886,12 @@ StaticGraph100009::StaticGraph100009(GraphConfiguration100009* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -40646,15 +58926,25 @@ StaticGraphStatus imageSubGraphTopology100009::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= noDp; @@ -40669,13 +58959,21 @@ StaticGraphStatus imageSubGraphTopology100009::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[11]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -40705,10 +59003,13 @@ StaticGraphStatus imageSubGraphTopology100009::configInnerNodes(SubGraphInnerNod /* * Graph 100010 */ -StaticGraph100010::StaticGraph100010(GraphConfiguration100010* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100010, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100010::StaticGraph100010(GraphConfiguration100010* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100010, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap] = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -40825,11 +59126,11 @@ StaticGraph100010::StaticGraph100010(GraphConfiguration100010* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -40863,13 +59164,13 @@ StaticGraphStatus imageSubGraphTopology100010::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -40884,11 +59185,17 @@ StaticGraphStatus imageSubGraphTopology100010::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -40920,10 +59227,14 @@ StaticGraphStatus imageSubGraphTopology100010::configInnerNodes(SubGraphInnerNod /* * Graph 100011 */ -StaticGraph100011::StaticGraph100011(GraphConfiguration100011* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100011, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100011::StaticGraph100011(GraphConfiguration100011* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100011, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap] = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -41083,12 +59394,12 @@ StaticGraph100011::StaticGraph100011(GraphConfiguration100011* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -41123,15 +59434,25 @@ StaticGraphStatus imageSubGraphTopology100011::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -41146,13 +59467,21 @@ StaticGraphStatus imageSubGraphTopology100011::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -41185,10 +59514,16 @@ StaticGraphStatus imageSubGraphTopology100011::configInnerNodes(SubGraphInnerNod /* * Graph 100140 */ -StaticGraph100140::StaticGraph100140(GraphConfiguration100140* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100140, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100140::StaticGraph100140(GraphConfiguration100140* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100140, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap] = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration); @@ -41450,14 +59785,14 @@ StaticGraph100140::StaticGraph100140(GraphConfiguration100140* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -41494,15 +59829,25 @@ StaticGraphStatus imageSubGraphTopology100140::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -41517,13 +59862,21 @@ StaticGraphStatus imageSubGraphTopology100140::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -41623,10 +59976,15 @@ StaticGraphStatus imageSubGraphTopology100140::updateSegmentAwareKernels() /* * Graph 100045 */ -StaticGraph100045::StaticGraph100045(GraphConfiguration100045* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100045, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100045::StaticGraph100045(GraphConfiguration100045* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100045, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap] = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -41786,13 +60144,13 @@ StaticGraph100045::StaticGraph100045(GraphConfiguration100045* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -41828,15 +60186,25 @@ StaticGraphStatus imageSubGraphTopology100045::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -41851,13 +60219,21 @@ StaticGraphStatus imageSubGraphTopology100045::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[4]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[12]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -41889,10 +60265,15 @@ StaticGraphStatus imageSubGraphTopology100045::configInnerNodes(SubGraphInnerNod /* * Graph 100012 */ -StaticGraph100012::StaticGraph100012(GraphConfiguration100012* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100012, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100012::StaticGraph100012(GraphConfiguration100012* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100012, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap] = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDol2InputsNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -42038,13 +60419,13 @@ StaticGraph100012::StaticGraph100012(GraphConfiguration100012* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsNoGmvNoTnrNoSapOuterNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -42080,15 +60461,25 @@ StaticGraphStatus imageSubGraphTopology100012::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -42103,14 +60494,23 @@ StaticGraphStatus imageSubGraphTopology100012::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[11]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[13]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -42135,10 +60535,14 @@ StaticGraphStatus imageSubGraphTopology100012::configInnerNodes(SubGraphInnerNod /* * Graph 100013 */ -StaticGraph100013::StaticGraph100013(GraphConfiguration100013* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100013, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100013::StaticGraph100013(GraphConfiguration100013* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100013, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap] = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDol2InputsWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -42284,12 +60688,12 @@ StaticGraph100013::StaticGraph100013(GraphConfiguration100013* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsWithGmvNoTnrNoSapOuterNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -42324,15 +60728,25 @@ StaticGraphStatus imageSubGraphTopology100013::configInnerNodes(SubGraphInnerNod lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -42347,14 +60761,23 @@ StaticGraphStatus imageSubGraphTopology100013::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -42384,10 +60807,15 @@ StaticGraphStatus imageSubGraphTopology100013::configInnerNodes(SubGraphInnerNod /* * Graph 100014 */ -StaticGraph100014::StaticGraph100014(GraphConfiguration100014* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100014, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100014::StaticGraph100014(GraphConfiguration100014* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100014, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap] = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDol2InputsNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -42563,13 +60991,13 @@ StaticGraph100014::StaticGraph100014(GraphConfiguration100014* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsNoGmvWithTnrNoSapOuterNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -42605,15 +61033,25 @@ StaticGraphStatus imageSubGraphTopology100014::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -42628,14 +61066,23 @@ StaticGraphStatus imageSubGraphTopology100014::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -42667,10 +61114,14 @@ StaticGraphStatus imageSubGraphTopology100014::configInnerNodes(SubGraphInnerNod /* * Graph 100015 */ -StaticGraph100015::StaticGraph100015(GraphConfiguration100015* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100015, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100015::StaticGraph100015(GraphConfiguration100015* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100015, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap] = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDol2InputsWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -42846,12 +61297,12 @@ StaticGraph100015::StaticGraph100015(GraphConfiguration100015* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDol2InputsWithGmvWithTnrNoSapOuterNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -42886,15 +61337,25 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -42909,14 +61370,23 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -42949,10 +61419,16 @@ StaticGraphStatus imageSubGraphTopology100015::configInnerNodes(SubGraphInnerNod /* * Graph 100016 */ -StaticGraph100016::StaticGraph100016(GraphConfiguration100016* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100016, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100016::StaticGraph100016(GraphConfiguration100016* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100016, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap] = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -43117,14 +61593,14 @@ StaticGraph100016::StaticGraph100016(GraphConfiguration100016* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsNoGmvNoTnrNoSapOuterNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -43161,15 +61637,25 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -43184,14 +61670,23 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -43216,10 +61711,15 @@ StaticGraphStatus imageSubGraphTopology100016::configInnerNodes(SubGraphInnerNod /* * Graph 100017 */ -StaticGraph100017::StaticGraph100017(GraphConfiguration100017* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100017, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100017::StaticGraph100017(GraphConfiguration100017* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100017, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap] = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -43384,13 +61884,13 @@ StaticGraph100017::StaticGraph100017(GraphConfiguration100017* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvNoTnrNoSapOuterNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -43426,15 +61926,25 @@ StaticGraphStatus imageSubGraphTopology100017::configInnerNodes(SubGraphInnerNod lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -43449,14 +61959,23 @@ StaticGraphStatus imageSubGraphTopology100017::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -43486,10 +62005,16 @@ StaticGraphStatus imageSubGraphTopology100017::configInnerNodes(SubGraphInnerNod /* * Graph 100018 */ -StaticGraph100018::StaticGraph100018(GraphConfiguration100018* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100018, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100018::StaticGraph100018(GraphConfiguration100018* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100018, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap] = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -43684,14 +62209,14 @@ StaticGraph100018::StaticGraph100018(GraphConfiguration100018* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsNoGmvWithTnrNoSapOuterNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -43728,15 +62253,25 @@ StaticGraphStatus imageSubGraphTopology100018::configInnerNodes(SubGraphInnerNod lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -43751,14 +62286,23 @@ StaticGraphStatus imageSubGraphTopology100018::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -43790,10 +62334,15 @@ StaticGraphStatus imageSubGraphTopology100018::configInnerNodes(SubGraphInnerNod /* * Graph 100019 */ -StaticGraph100019::StaticGraph100019(GraphConfiguration100019* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100019, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100019::StaticGraph100019(GraphConfiguration100019* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100019, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap] = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -43988,13 +62537,13 @@ StaticGraph100019::StaticGraph100019(GraphConfiguration100019* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolOuterNode = &_isysDolOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvWithTnrNoSapOuterNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -44030,15 +62579,25 @@ StaticGraphStatus imageSubGraphTopology100019::configInnerNodes(SubGraphInnerNod lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -44053,14 +62612,23 @@ StaticGraphStatus imageSubGraphTopology100019::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -44093,12 +62661,16 @@ StaticGraphStatus imageSubGraphTopology100019::configInnerNodes(SubGraphInnerNod /* * Graph 100020 */ -StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100020, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100020, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrNoGmvNoTnrNoSap] = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvNoTnrNoSap] = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffRgbIrNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -44112,6 +62684,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->destNode = &_isysOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -44124,6 +62697,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -44134,6 +62708,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -44144,6 +62719,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -44154,6 +62730,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -44164,6 +62741,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -44174,6 +62752,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -44184,6 +62763,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -44194,6 +62774,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -44204,6 +62785,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -44214,6 +62796,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -44225,6 +62808,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -44234,6 +62818,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -44243,6 +62828,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -44252,6 +62838,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -44261,6 +62848,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -44270,6 +62858,7 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -44279,17 +62868,19 @@ StaticGraph100020::StaticGraph100020(GraphConfiguration100020* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysOuterNode = &_isysOuterNode; _irSubGraph.lbffRgbIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysOuterNode = &_isysOuterNode; _image_irSubGraph.lbffRgbIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -44390,13 +62981,13 @@ StaticGraphStatus imageSubGraphTopology100020::configInnerNodes(SubGraphInnerNod lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -44413,12 +63004,19 @@ StaticGraphStatus imageSubGraphTopology100020::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -44456,13 +63054,13 @@ StaticGraphStatus irSubGraphTopology100020::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -44476,7 +63074,7 @@ StaticGraphStatus irSubGraphTopology100020::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -44492,17 +63090,29 @@ StaticGraphStatus irSubGraphTopology100020::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[12]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -44545,13 +63155,13 @@ StaticGraphStatus image_irSubGraphTopology100020::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrNoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 8 && subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 9 && subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -44565,7 +63175,7 @@ StaticGraphStatus image_irSubGraphTopology100020::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -44581,17 +63191,29 @@ StaticGraphStatus image_irSubGraphTopology100020::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[12]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -44622,12 +63244,17 @@ StaticGraphStatus image_irSubGraphTopology100020::configInnerNodes(SubGraphInner /* * Graph 100021 */ -StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100021, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100021, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrWithGmvNoTnrNoSap] = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvNoTnrNoSap] = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffRgbIrWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -44642,6 +63269,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_isysOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -44654,6 +63282,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -44664,6 +63293,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -44674,6 +63304,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -44684,6 +63315,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -44694,6 +63326,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -44704,6 +63337,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -44714,6 +63348,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -44727,6 +63362,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destTerminalId = 17; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -44737,6 +63373,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 20; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -44747,6 +63384,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -44757,6 +63395,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -44769,6 +63408,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -44780,6 +63420,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -44789,6 +63430,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -44798,6 +63440,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[12] = link; _image_irSubGraph.links[15] = link; @@ -44809,6 +63452,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[13] = link; _image_irSubGraph.links[16] = link; @@ -44818,6 +63462,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[14] = link; _image_irSubGraph.links[17] = link; @@ -44827,6 +63472,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[18] = link; @@ -44836,6 +63482,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[16] = link; _image_irSubGraph.links[19] = link; @@ -44845,6 +63492,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[17] = link; _image_irSubGraph.links[20] = link; @@ -44854,6 +63502,7 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[18] = link; _image_irSubGraph.links[21] = link; @@ -44863,19 +63512,21 @@ StaticGraph100021::StaticGraph100021(GraphConfiguration100021* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrWithGmvNoTnrNoSapOuterNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysOuterNode = &_isysOuterNode; _irSubGraph.lbffRgbIrWithGmvNoTnrNoSapOuterNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysOuterNode = &_isysOuterNode; _image_irSubGraph.lbffRgbIrWithGmvNoTnrNoSapOuterNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -44978,15 +63629,25 @@ StaticGraphStatus imageSubGraphTopology100021::configInnerNodes(SubGraphInnerNod lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -45003,14 +63664,23 @@ StaticGraphStatus imageSubGraphTopology100021::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[11]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -45053,13 +63723,13 @@ StaticGraphStatus irSubGraphTopology100021::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -45073,7 +63743,7 @@ StaticGraphStatus irSubGraphTopology100021::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -45089,17 +63759,29 @@ StaticGraphStatus irSubGraphTopology100021::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -45147,15 +63829,15 @@ StaticGraphStatus image_irSubGraphTopology100021::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrWithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 10 && subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 11 && subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -45169,7 +63851,7 @@ StaticGraphStatus image_irSubGraphTopology100021::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -45185,19 +63867,33 @@ StaticGraphStatus image_irSubGraphTopology100021::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[11]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[21]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -45233,12 +63929,16 @@ StaticGraphStatus image_irSubGraphTopology100021::configInnerNodes(SubGraphInner /* * Graph 100022 */ -StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100022, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100022, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrNoGmvWithTnrNoSap] = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvWithTnrNoSap] = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffRgbIrNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -45252,6 +63952,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destNode = &_isysOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -45264,6 +63965,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -45274,6 +63976,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -45284,6 +63987,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -45294,6 +63998,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -45304,6 +64009,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -45314,6 +64020,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -45324,6 +64031,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -45337,6 +64045,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -45350,6 +64059,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -45363,6 +64073,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -45373,6 +64084,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -45383,6 +64095,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -45393,6 +64106,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -45404,6 +64118,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -45413,6 +64128,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -45422,6 +64138,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -45431,6 +64148,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -45440,6 +64158,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -45452,6 +64171,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -45464,6 +64184,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -45476,6 +64197,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -45485,6 +64207,7 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -45494,17 +64217,19 @@ StaticGraph100022::StaticGraph100022(GraphConfiguration100022* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysOuterNode = &_isysOuterNode; _irSubGraph.lbffRgbIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysOuterNode = &_isysOuterNode; _image_irSubGraph.lbffRgbIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -45605,13 +64330,13 @@ StaticGraphStatus imageSubGraphTopology100022::configInnerNodes(SubGraphInnerNod lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -45628,12 +64353,19 @@ StaticGraphStatus imageSubGraphTopology100022::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -45678,13 +64410,13 @@ StaticGraphStatus irSubGraphTopology100022::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -45698,7 +64430,7 @@ StaticGraphStatus irSubGraphTopology100022::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -45714,17 +64446,29 @@ StaticGraphStatus irSubGraphTopology100022::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -45777,13 +64521,13 @@ StaticGraphStatus image_irSubGraphTopology100022::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrNoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 11 && subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 12 && subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -45797,7 +64541,7 @@ StaticGraphStatus image_irSubGraphTopology100022::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -45813,17 +64557,29 @@ StaticGraphStatus image_irSubGraphTopology100022::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -45864,12 +64620,17 @@ StaticGraphStatus image_irSubGraphTopology100022::configInnerNodes(SubGraphInner /* * Graph 100023 */ -StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100023, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100023, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrWithGmvWithTnrNoSap] = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvWithTnrNoSap] = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffRgbIrWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -45884,6 +64645,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_isysOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -45896,6 +64658,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -45906,6 +64669,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -45916,6 +64680,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -45926,6 +64691,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -45936,6 +64702,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -45946,6 +64713,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -45956,6 +64724,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -45969,6 +64738,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 17; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -45979,6 +64749,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 20; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -45992,6 +64763,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -46005,6 +64777,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -46018,6 +64791,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -46028,6 +64802,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -46038,6 +64813,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -46050,6 +64826,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -46061,6 +64838,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -46070,6 +64848,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -46079,6 +64858,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[15] = link; _image_irSubGraph.links[18] = link; @@ -46090,6 +64870,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[16] = link; _image_irSubGraph.links[19] = link; @@ -46099,6 +64880,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[17] = link; _image_irSubGraph.links[20] = link; @@ -46108,6 +64890,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[18] = link; _image_irSubGraph.links[21] = link; @@ -46117,6 +64900,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[19] = link; _image_irSubGraph.links[22] = link; @@ -46126,6 +64910,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[23] = link; @@ -46138,6 +64923,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[21] = link; _image_irSubGraph.links[24] = link; @@ -46150,6 +64936,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[22] = link; _image_irSubGraph.links[25] = link; @@ -46162,6 +64949,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[23] = link; _image_irSubGraph.links[26] = link; @@ -46171,6 +64959,7 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[24] = link; _image_irSubGraph.links[27] = link; @@ -46180,19 +64969,21 @@ StaticGraph100023::StaticGraph100023(GraphConfiguration100023* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffRgbIrWithGmvWithTnrNoSapOuterNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysOuterNode = &_isysOuterNode; _irSubGraph.lbffRgbIrWithGmvWithTnrNoSapOuterNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysOuterNode = &_isysOuterNode; _image_irSubGraph.lbffRgbIrWithGmvWithTnrNoSapOuterNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -46295,15 +65086,25 @@ StaticGraphStatus imageSubGraphTopology100023::configInnerNodes(SubGraphInnerNod lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -46320,14 +65121,23 @@ StaticGraphStatus imageSubGraphTopology100023::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -46373,13 +65183,13 @@ StaticGraphStatus irSubGraphTopology100023::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -46393,7 +65203,7 @@ StaticGraphStatus irSubGraphTopology100023::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -46409,17 +65219,29 @@ StaticGraphStatus irSubGraphTopology100023::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -46473,15 +65295,15 @@ StaticGraphStatus image_irSubGraphTopology100023::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrWithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 13 && subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 14 && subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -46495,7 +65317,7 @@ StaticGraphStatus image_irSubGraphTopology100023::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[27]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -46511,19 +65333,33 @@ StaticGraphStatus image_irSubGraphTopology100023::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[4]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[21]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[23]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[27]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -46565,10 +65401,12 @@ StaticGraphStatus image_irSubGraphTopology100023::configInnerNodes(SubGraphInner /* * Graph 100024 */ -StaticGraph100024::StaticGraph100024(GraphConfiguration100024* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100024, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100024::StaticGraph100024(GraphConfiguration100024* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100024, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrNoSap] = &_lbffBayerNoGmvNoTnrNoSapOuterNode; _lbffBayerNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -46638,10 +65476,10 @@ StaticGraph100024::StaticGraph100024(GraphConfiguration100024* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerNoGmvNoTnrNoSapOuterNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -46674,13 +65512,13 @@ StaticGraphStatus imageSubGraphTopology100024::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[6]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[6]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -46695,11 +65533,17 @@ StaticGraphStatus imageSubGraphTopology100024::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[7]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -46724,10 +65568,13 @@ StaticGraphStatus imageSubGraphTopology100024::configInnerNodes(SubGraphInnerNod /* * Graph 100040 */ -StaticGraph100040::StaticGraph100040(GraphConfiguration100040* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100040, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100040::StaticGraph100040(GraphConfiguration100040* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100040, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrNoSap] = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _lbffBayerWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration); _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); @@ -46840,11 +65687,11 @@ StaticGraph100040::StaticGraph100040(GraphConfiguration100040* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerWithGmvNoTnrNoSapOuterNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -46878,15 +65725,25 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 10 && + (subGraphLinks[10]->src == subGraphLinks[8]->src && + subGraphLinks[10]->srcTerminalId == subGraphLinks[8]->srcTerminalId && + subGraphLinks[10]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[10]->src != subGraphLinks[8]->src || + subGraphLinks[10]->srcTerminalId != subGraphLinks[8]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -46901,13 +65758,21 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[9]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -46937,10 +65802,13 @@ StaticGraphStatus imageSubGraphTopology100040::configInnerNodes(SubGraphInnerNod /* * Graph 100041 */ -StaticGraph100041::StaticGraph100041(GraphConfiguration100041* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100041, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100041::StaticGraph100041(GraphConfiguration100041* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100041, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); _swGdcOuterNode.Init(&_graphConfiguration.swGdcOuterNodeConfiguration); @@ -47083,11 +65951,11 @@ StaticGraph100041::StaticGraph100041(GraphConfiguration100041* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -47121,15 +65989,25 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -47144,13 +66022,21 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[12]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -47183,10 +66069,12 @@ StaticGraphStatus imageSubGraphTopology100041::configInnerNodes(SubGraphInnerNod /* * Graph 100042 */ -StaticGraph100042::StaticGraph100042(GraphConfiguration100042* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100042, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100042::StaticGraph100042(GraphConfiguration100042* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100042, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -47286,10 +66174,10 @@ StaticGraph100042::StaticGraph100042(GraphConfiguration100042* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -47322,13 +66210,13 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -47343,11 +66231,17 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -47379,10 +66273,13 @@ StaticGraphStatus imageSubGraphTopology100042::configInnerNodes(SubGraphInnerNod /* * Graph 100027 */ -StaticGraph100027::StaticGraph100027(GraphConfiguration100027* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100027, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100027::StaticGraph100027(GraphConfiguration100027* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100027, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrNoGmvNoTnrNoSap] = &_lbffIrNoGmvNoTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffIrNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -47462,11 +66359,11 @@ StaticGraph100027::StaticGraph100027(GraphConfiguration100027* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrNoGmvNoTnrNoSapOuterNode = &_lbffIrNoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -47500,13 +66397,13 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod lbffIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -47521,11 +66418,17 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[8]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -47550,10 +66453,14 @@ StaticGraphStatus imageSubGraphTopology100027::configInnerNodes(SubGraphInnerNod /* * Graph 100028 */ -StaticGraph100028::StaticGraph100028(GraphConfiguration100028* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100028, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100028::StaticGraph100028(GraphConfiguration100028* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100028, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrWithGmvNoTnrNoSap] = &_lbffIrWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffIrWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -47676,12 +66583,12 @@ StaticGraph100028::StaticGraph100028(GraphConfiguration100028* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrWithGmvNoTnrNoSapOuterNode = &_lbffIrWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -47716,15 +66623,25 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod lbffIrWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && true) { lbffIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 12 && + (subGraphLinks[12]->src == subGraphLinks[10]->src && + subGraphLinks[12]->srcTerminalId == subGraphLinks[10]->srcTerminalId && + subGraphLinks[12]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[12]->src != subGraphLinks[10]->src || + subGraphLinks[12]->srcTerminalId != subGraphLinks[10]->srcTerminalId)) && true) { lbffIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -47739,13 +66656,21 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[10]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[12]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -47775,10 +66700,13 @@ StaticGraphStatus imageSubGraphTopology100028::configInnerNodes(SubGraphInnerNod /* * Graph 100029 */ -StaticGraph100029::StaticGraph100029(GraphConfiguration100029* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100029, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100029::StaticGraph100029(GraphConfiguration100029* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100029, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrNoGmvWithTnrNoSap] = &_lbffIrNoGmvWithTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffIrNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -47888,11 +66816,11 @@ StaticGraph100029::StaticGraph100029(GraphConfiguration100029* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrNoGmvWithTnrNoSapOuterNode = &_lbffIrNoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -47926,13 +66854,13 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod lbffIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -47947,11 +66875,17 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -47983,10 +66917,14 @@ StaticGraphStatus imageSubGraphTopology100029::configInnerNodes(SubGraphInnerNod /* * Graph 100030 */ -StaticGraph100030::StaticGraph100030(GraphConfiguration100030* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100030, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100030::StaticGraph100030(GraphConfiguration100030* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100030, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrWithGmvWithTnrNoSap] = &_lbffIrWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffIrWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -48139,12 +67077,12 @@ StaticGraph100030::StaticGraph100030(GraphConfiguration100030* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffIrWithGmvWithTnrNoSapOuterNode = &_lbffIrWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -48179,15 +67117,25 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod lbffIrWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -48202,13 +67150,21 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[3]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[4]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[5]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[6]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -48241,10 +67197,13 @@ StaticGraphStatus imageSubGraphTopology100030::configInnerNodes(SubGraphInnerNod /* * Graph 100031 */ -StaticGraph100031::StaticGraph100031(GraphConfiguration100031* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100031, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100031::StaticGraph100031(GraphConfiguration100031* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100031, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration); @@ -48341,11 +67300,11 @@ StaticGraph100031::StaticGraph100031(GraphConfiguration100031* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -48379,13 +67338,13 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= noDp; @@ -48400,12 +67359,19 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -48435,10 +67401,14 @@ StaticGraphStatus imageSubGraphTopology100031::configInnerNodes(SubGraphInnerNod /* * Graph 100032 */ -StaticGraph100032::StaticGraph100032(GraphConfiguration100032* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100032, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100032::StaticGraph100032(GraphConfiguration100032* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100032, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap] = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration); @@ -48578,12 +67548,12 @@ StaticGraph100032::StaticGraph100032(GraphConfiguration100032* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -48618,15 +67588,25 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= noDp; @@ -48641,14 +67621,23 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[12]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -48679,10 +67668,13 @@ StaticGraphStatus imageSubGraphTopology100032::configInnerNodes(SubGraphInnerNod /* * Graph 100033 */ -StaticGraph100033::StaticGraph100033(GraphConfiguration100033* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100033, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100033::StaticGraph100033(GraphConfiguration100033* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100033, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -48809,11 +67801,11 @@ StaticGraph100033::StaticGraph100033(GraphConfiguration100033* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -48847,13 +67839,13 @@ StaticGraphStatus imageSubGraphTopology100033::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -48868,12 +67860,19 @@ StaticGraphStatus imageSubGraphTopology100033::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[12]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -48906,10 +67905,14 @@ StaticGraphStatus imageSubGraphTopology100033::configInnerNodes(SubGraphInnerNod /* * Graph 100034 */ -StaticGraph100034::StaticGraph100034(GraphConfiguration100034* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100034, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100034::StaticGraph100034(GraphConfiguration100034* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100034, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -49079,12 +68082,12 @@ StaticGraph100034::StaticGraph100034(GraphConfiguration100034* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysOuterNode = &_isysOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -49119,15 +68122,25 @@ StaticGraphStatus imageSubGraphTopology100034::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -49142,14 +68155,23 @@ StaticGraphStatus imageSubGraphTopology100034::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[3]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -49183,10 +68205,16 @@ StaticGraphStatus imageSubGraphTopology100034::configInnerNodes(SubGraphInnerNod /* * Graph 100141 */ -StaticGraph100141::StaticGraph100141(GraphConfiguration100141* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100141, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100141::StaticGraph100141(GraphConfiguration100141* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100141, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -49458,14 +68486,14 @@ StaticGraph100141::StaticGraph100141(GraphConfiguration100141* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -49502,15 +68530,25 @@ StaticGraphStatus imageSubGraphTopology100141::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -49525,14 +68563,23 @@ StaticGraphStatus imageSubGraphTopology100141::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[24]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[26]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[25]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[27]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -49633,10 +68680,14 @@ StaticGraphStatus imageSubGraphTopology100141::updateSegmentAwareKernels() /* * Graph 100100 */ -StaticGraph100100::StaticGraph100100(GraphConfiguration100100* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100100, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100100::StaticGraph100100(GraphConfiguration100100* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100100, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrWithSap] = &_lbffBayerNoGmvNoTnrWithSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -49783,12 +68834,12 @@ StaticGraph100100::StaticGraph100100(GraphConfiguration100100* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerNoGmvNoTnrWithSapOuterNode = &_lbffBayerNoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -49823,13 +68874,13 @@ StaticGraphStatus imageSubGraphTopology100100::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -49844,11 +68895,17 @@ StaticGraphStatus imageSubGraphTopology100100::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[12]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[13]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[14]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -49922,10 +68979,15 @@ StaticGraphStatus imageSubGraphTopology100100::updateSegmentAwareKernels() /* * Graph 100101 */ -StaticGraph100101::StaticGraph100101(GraphConfiguration100101* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100101, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100101::StaticGraph100101(GraphConfiguration100101* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100101, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrWithSap] = &_lbffBayerWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -50115,13 +69177,13 @@ StaticGraph100101::StaticGraph100101(GraphConfiguration100101* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerWithGmvNoTnrWithSapOuterNode = &_lbffBayerWithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -50157,15 +69219,25 @@ StaticGraphStatus imageSubGraphTopology100101::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -50180,13 +69252,21 @@ StaticGraphStatus imageSubGraphTopology100101::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[12]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[13]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[14]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[17]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffBayerWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -50265,10 +69345,14 @@ StaticGraphStatus imageSubGraphTopology100101::updateSegmentAwareKernels() /* * Graph 100102 */ -StaticGraph100102::StaticGraph100102(GraphConfiguration100102* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100102, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100102::StaticGraph100102(GraphConfiguration100102* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100102, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrWithSap] = &_lbffBayerNoGmvWithTnrWithSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -50463,12 +69547,12 @@ StaticGraph100102::StaticGraph100102(GraphConfiguration100102* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrWithSapOuterNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -50503,13 +69587,13 @@ StaticGraphStatus imageSubGraphTopology100102::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -50524,11 +69608,17 @@ StaticGraphStatus imageSubGraphTopology100102::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[20]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[21]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -50627,10 +69717,14 @@ StaticGraphStatus imageSubGraphTopology100102::updateSegmentAwareKernels() /* * Graph 100157 */ -StaticGraph100157::StaticGraph100157(GraphConfiguration100157* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100157, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100157::StaticGraph100157(GraphConfiguration100157* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100157, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrWithOpacity] = &_lbffBayerNoGmvWithTnrWithOpacityOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -50782,12 +69876,12 @@ StaticGraph100157::StaticGraph100157(GraphConfiguration100157* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrWithOpacityOuterNode = &_lbffBayerNoGmvWithTnrWithOpacityOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -50822,13 +69916,13 @@ StaticGraphStatus imageSubGraphTopology100157::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrWithOpacityInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrWithOpacityInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrWithOpacityInnerOptions |= noDp; @@ -50843,11 +69937,17 @@ StaticGraphStatus imageSubGraphTopology100157::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithOpacity:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithOpacity:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithOpacity:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithOpacity:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrWithOpacityInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithOpacity:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerNoGmvWithTnrWithOpacityInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithOpacity:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -50910,10 +70010,15 @@ StaticGraphStatus imageSubGraphTopology100157::updateSegmentAwareKernels() /* * Graph 100103 */ -StaticGraph100103::StaticGraph100103(GraphConfiguration100103* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100103, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100103::StaticGraph100103(GraphConfiguration100103* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100103, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrWithSap] = &_lbffBayerWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -51151,13 +70256,13 @@ StaticGraph100103::StaticGraph100103(GraphConfiguration100103* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerWithGmvWithTnrWithSapOuterNode = &_lbffBayerWithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -51193,15 +70298,25 @@ StaticGraphStatus imageSubGraphTopology100103::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -51216,13 +70331,21 @@ StaticGraphStatus imageSubGraphTopology100103::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[22]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[23]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[25]->isActive = !(lbffBayerWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -51319,13 +70442,402 @@ StaticGraphStatus imageSubGraphTopology100103::updateSegmentAwareKernels() lbffBayerWithGmvWithTnrWithSapOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); return StaticGraphStatus::SG_OK; } +/* + * Graph 101114 + */ +StaticGraph101114::StaticGraph101114(GraphConfiguration101114* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 101114, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _imageSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity] = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); + _lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvWithTnrWithOpacityOuterNodeConfiguration); + _swNntmOuterNode.Init(&_graphConfiguration.swNntmOuterNodeConfiguration); + _swScalerOuterNode.Init(&_graphConfiguration.swScalerOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::CvOutput; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::SwSegnet; + link->destNode = &_swSegnetOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Node2Node; + + link = &_graphLinks[6]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 5; + link->type = LinkType::Node2Node; + + link = &_graphLinks[7]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 33; + link->type = LinkType::Node2Node; + + link = &_graphLinks[8]; + link->src = GraphElementType::SwSegnet; + link->srcNode = &_swSegnetOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 34; + link->type = LinkType::Node2Node; + + link = &_graphLinks[9]; + link->src = GraphElementType::LscBuffer; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 7; + link->type = LinkType::Source2Node; + + link = &_graphLinks[10]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 18; + link->dest = GraphElementType::AwbSveOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[11]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::AeOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[12]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 10; + link->dest = GraphElementType::AfStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[13]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 11; + link->dest = GraphElementType::AwbStdOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[14]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 12; + link->dest = GraphElementType::AwbSatOut; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[15]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 26; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 25; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[16]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 24; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 23; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[17]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 27; + link->dest = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->destNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->destTerminalId = 22; + link->type = LinkType::Node2Self; + link->frameDelay = 1U; + + link = &_graphLinks[18]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::ImageMp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[19]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::ImageDp; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[20]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 28; + link->dest = GraphElementType::SwNntm; + link->destNode = &_swNntmOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[21]; + link->src = GraphElementType::LbffDol2InputsNoGmvWithTnrWithOpacity; + link->srcNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + link->srcTerminalId = 29; + link->dest = GraphElementType::SwNntm; + link->destNode = &_swNntmOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[22]; + link->src = GraphElementType::SwNntm; + link->srcNode = &_swNntmOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::ProcessedMain; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[23]; + link->src = GraphElementType::SwNntm; + link->srcNode = &_swNntmOuterNode; + link->srcTerminalId = 2; + link->dest = GraphElementType::SwScaler; + link->destNode = &_swScalerOuterNode; + link->destTerminalId = 0; + link->type = LinkType::Node2Node; + + link = &_graphLinks[24]; + link->src = GraphElementType::SwScaler; + link->srcNode = &_swScalerOuterNode; + link->srcTerminalId = 1; + link->dest = GraphElementType::ProcessedSecondary; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 25; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _imageSubGraph.links[i] = &_graphLinks[i]; + } + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; + _imageSubGraph.lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode = &_lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; + _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_imageSubGraph; + + // logical node IDs + _imageSubGraph.isysDolWithCvOuterNode->contextId = 0; + _imageSubGraph.swSegnetOuterNode->contextId = 1; + _imageSubGraph.lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->contextId = 2; + _imageSubGraph.swNntmOuterNode->contextId = 3; + _imageSubGraph.swScalerOuterNode->contextId = 4; + // Apply a default inner nodes configuration for the selected sub graph + SubGraphInnerNodeConfiguration defaultInnerNodeConfiguration; + if(_selectedGraphTopology != nullptr) + { + _selectedGraphTopology->configInnerNodes(defaultInnerNodeConfiguration); + } +} +StaticGraph101114::~StaticGraph101114() +{ +} + +StaticGraphStatus imageSubGraphTopology101114::configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) +{ + + /* + * Init sub graphs inner nodes configuration base on user request + */ + InnerNodeOptionsFlags imagePublicInnerNodeConfiguration = GetInnerOptions(subGraphInnerNodeConfiguration.imageInnerOptions); + + /* + * Setting Node lbffDol2InputsNoGmvWithTnrWithOpacity initial inner node configuration + */ + InnerNodeOptionsFlags lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions = imagePublicInnerNodeConfiguration; + // always active public inner options + lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions |= (noPdaf | noIr); + // active public options according to sink mapping + if ( + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions |= noMp; + } + if ( + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && + true) + { + lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions |= noDp; + } + + /* + * Set the selected inner nodes to the outer nodes + */ + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->setInnerNode(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions); + + /* + * Link enablement by public inner options + */ + subGraphLinks[10]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_awb_sve_output -> awb_sve_out + + subGraphLinks[11]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_ae_output -> ae_out + + subGraphLinks[12]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_af_std_output -> af_std_out + + subGraphLinks[13]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_awb_std_output -> awb_std_out + + subGraphLinks[14]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_awb_sat_output -> awb_sat_out + + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_ofs_mp_output -> image_mp + + subGraphLinks[20]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + + subGraphLinks[19]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_ofs_dp_output -> image_dp + + subGraphLinks[21]->isActive = !(lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + + + /* + * Disable links with zero buffer size + * (used for post processing when not all links are being used) + */ + for (uint32_t i = 0; i < 25; i++) + { + if (subGraphLinks[i]->linkConfiguration->bufferSize == 0) + { + subGraphLinks[i]->isActive = false; + } + } + + /* + * Link enablement by inner options combinations + */ + subGraphLinks[15]->isActive = (lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_blend_output -> lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_blend_yuv_input + subGraphLinks[16]->isActive = (lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_bc_output -> lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_bc_rs_input + subGraphLinks[17]->isActive = (lbffDol2InputsNoGmvWithTnrWithOpacityInnerOptions & (noMp|noDp|noIr)) != (noMp|noDp|noIr); // lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_tnr_scaler_output -> lbff_Dol2Inputs_NoGmv_WithTnr_WithOpacity:terminal_connect_bc_yuv_input + + /* + * Update segment aware kernels according to links enablement + */ + updateSegmentAwareKernels(); + + /* + * Save the not-vanished HW bitmaps + */ + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmapsNotVanished = lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps; + + return StaticGraphStatus::SG_OK; +} + +StaticGraphStatus imageSubGraphTopology101114::updateSegmentAwareKernels() +{ + // For run kernels disablement + uint64_t disabledRunKernelsBitmap[] = {0x0, 0x0}; + + // Link to terminal_connect_bc_sm_input + if (subGraphLinks[7]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps.teb[1] &= ~(1 << 1); // Terminal id 33 - terminal_connect_bc_sm_input + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps.deb[1] &= ~(1 << 25); // Device id 57 - ifd_segmap_tnr_bc_1_4 + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps.deb[1] &= ~(1 << 26); // Device id 58 - smurf_tnr_bc_1_0 + disabledRunKernelsBitmap[0] |= 0xC000000000; // Run kernel ids 38 (ifd_segmap_tnr_bc_1_4) and 39 (smurf_tnr_bc_1_0) + } + + // Link to terminal_connect_blend_sm_input + if (subGraphLinks[8]->isActive == false) + { + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps.teb[1] &= ~(1 << 2); // Terminal id 34 - terminal_connect_blend_sm_input + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps.deb[1] &= ~(1 << 31); // Device id 63 - ifd_segmap_tnr_blend_1_4 + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->bitmaps.deb[2] &= ~(1 << 0); // Device id 64 - smurf_tnr_blend_1_0 + disabledRunKernelsBitmap[0] |= 0xC0000000000; // Run kernel ids 42 (ifd_segmap_tnr_blend_1_4) and 43 (smurf_tnr_blend_1_0) + } + + lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode->SetDisabledKernels(disabledRunKernelsBitmap); + return StaticGraphStatus::SG_OK; +} /* * Graph 100135 */ -StaticGraph100135::StaticGraph100135(GraphConfiguration100135* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100135, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100135::StaticGraph100135(GraphConfiguration100135* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100135, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrWithSap] = &_lbffBayerNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -51563,14 +71075,14 @@ StaticGraph100135::StaticGraph100135(GraphConfiguration100135* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrWithSapOuterNode = &_lbffBayerNoGmvWithTnrWithSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -51607,15 +71119,25 @@ StaticGraphStatus imageSubGraphTopology100135::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -51630,13 +71152,21 @@ StaticGraphStatus imageSubGraphTopology100135::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[20]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[21]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[23]->isActive = !(lbffBayerNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -51735,10 +71265,14 @@ StaticGraphStatus imageSubGraphTopology100135::updateSegmentAwareKernels() /* * Graph 100104 */ -StaticGraph100104::StaticGraph100104(GraphConfiguration100104* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100104, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100104::StaticGraph100104(GraphConfiguration100104* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100104, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvNoTnrWithSap] = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -51908,12 +71442,12 @@ StaticGraph100104::StaticGraph100104(GraphConfiguration100104* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -51948,13 +71482,13 @@ StaticGraphStatus imageSubGraphTopology100104::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions |= noDp; @@ -51969,12 +71503,19 @@ StaticGraphStatus imageSubGraphTopology100104::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffBayerPdaf2NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -52048,10 +71589,15 @@ StaticGraphStatus imageSubGraphTopology100104::updateSegmentAwareKernels() /* * Graph 100105 */ -StaticGraph100105::StaticGraph100105(GraphConfiguration100105* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100105, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100105::StaticGraph100105(GraphConfiguration100105* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100105, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvNoTnrWithSap] = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -52264,13 +71810,13 @@ StaticGraph100105::StaticGraph100105(GraphConfiguration100105* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -52306,15 +71852,25 @@ StaticGraphStatus imageSubGraphTopology100105::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions |= noDp; @@ -52329,14 +71885,23 @@ StaticGraphStatus imageSubGraphTopology100105::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[20]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[21]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[23]->isActive = !(lbffBayerPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -52415,10 +71980,14 @@ StaticGraphStatus imageSubGraphTopology100105::updateSegmentAwareKernels() /* * Graph 100106 */ -StaticGraph100106::StaticGraph100106(GraphConfiguration100106* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100106, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100106::StaticGraph100106(GraphConfiguration100106* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100106, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -52636,12 +72205,12 @@ StaticGraph100106::StaticGraph100106(GraphConfiguration100106* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -52676,13 +72245,13 @@ StaticGraphStatus imageSubGraphTopology100106::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -52697,12 +72266,19 @@ StaticGraphStatus imageSubGraphTopology100106::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -52801,10 +72377,16 @@ StaticGraphStatus imageSubGraphTopology100106::updateSegmentAwareKernels() /* * Graph 100166 */ -StaticGraph100166::StaticGraph100166(GraphConfiguration100166* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100166, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100166::StaticGraph100166(GraphConfiguration100166* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100166, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -53065,14 +72647,14 @@ StaticGraph100166::StaticGraph100166(GraphConfiguration100166* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -53109,15 +72691,25 @@ StaticGraphStatus imageSubGraphTopology100166::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -53132,14 +72724,23 @@ StaticGraphStatus imageSubGraphTopology100166::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffBayerPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -53238,10 +72839,15 @@ StaticGraphStatus imageSubGraphTopology100166::updateSegmentAwareKernels() /* * Graph 100107 */ -StaticGraph100107::StaticGraph100107(GraphConfiguration100107* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100107, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100107::StaticGraph100107(GraphConfiguration100107* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100107, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -53502,13 +73108,13 @@ StaticGraph100107::StaticGraph100107(GraphConfiguration100107* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -53544,15 +73150,25 @@ StaticGraphStatus imageSubGraphTopology100107::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && - subGraphLinks[28]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -53567,14 +73183,23 @@ StaticGraphStatus imageSubGraphTopology100107::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[25]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[27]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[26]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[28]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -53674,10 +73299,17 @@ StaticGraphStatus imageSubGraphTopology100107::updateSegmentAwareKernels() /* * Graph 100145 */ -StaticGraph100145::StaticGraph100145(GraphConfiguration100145* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100145, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100145::StaticGraph100145(GraphConfiguration100145* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100145, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -53965,7 +73597,7 @@ StaticGraph100145::StaticGraph100145(GraphConfiguration100145* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; @@ -53973,7 +73605,7 @@ StaticGraph100145::StaticGraph100145(GraphConfiguration100145* selectedGraphConf _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -54011,15 +73643,25 @@ StaticGraphStatus imageSubGraphTopology100145::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && - subGraphLinks[28]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -54034,14 +73676,23 @@ StaticGraphStatus imageSubGraphTopology100145::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[25]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[27]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[26]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[28]->isActive = !(lbffBayerPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -54141,10 +73792,14 @@ StaticGraphStatus imageSubGraphTopology100145::updateSegmentAwareKernels() /* * Graph 100108 */ -StaticGraph100108::StaticGraph100108(GraphConfiguration100108* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100108, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100108::StaticGraph100108(GraphConfiguration100108* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100108, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvNoTnrWithSap] = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration); @@ -54298,12 +73953,12 @@ StaticGraph100108::StaticGraph100108(GraphConfiguration100108* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -54338,13 +73993,13 @@ StaticGraphStatus imageSubGraphTopology100108::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions |= noDp; @@ -54359,11 +74014,17 @@ StaticGraphStatus imageSubGraphTopology100108::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[12]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffBayerPdaf3NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -54437,10 +74098,15 @@ StaticGraphStatus imageSubGraphTopology100108::updateSegmentAwareKernels() /* * Graph 100109 */ -StaticGraph100109::StaticGraph100109(GraphConfiguration100109* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100109, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100109::StaticGraph100109(GraphConfiguration100109* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100109, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvNoTnrWithSap] = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration); @@ -54637,13 +74303,13 @@ StaticGraph100109::StaticGraph100109(GraphConfiguration100109* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -54679,15 +74345,25 @@ StaticGraphStatus imageSubGraphTopology100109::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions |= noDp; @@ -54702,13 +74378,21 @@ StaticGraphStatus imageSubGraphTopology100109::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[12]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[20]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[21]->isActive = !(lbffBayerPdaf3WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -54787,10 +74471,14 @@ StaticGraphStatus imageSubGraphTopology100109::updateSegmentAwareKernels() /* * Graph 100110 */ -StaticGraph100110::StaticGraph100110(GraphConfiguration100110* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100110, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100110::StaticGraph100110(GraphConfiguration100110* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100110, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap] = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration); @@ -54992,12 +74680,12 @@ StaticGraph100110::StaticGraph100110(GraphConfiguration100110* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -55032,13 +74720,13 @@ StaticGraphStatus imageSubGraphTopology100110::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -55053,11 +74741,17 @@ StaticGraphStatus imageSubGraphTopology100110::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -55156,10 +74850,15 @@ StaticGraphStatus imageSubGraphTopology100110::updateSegmentAwareKernels() /* * Graph 100111 */ -StaticGraph100111::StaticGraph100111(GraphConfiguration100111* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100111, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100111::StaticGraph100111(GraphConfiguration100111* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100111, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvWithTnrWithSap] = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration); @@ -55404,13 +75103,13 @@ StaticGraph100111::StaticGraph100111(GraphConfiguration100111* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -55446,15 +75145,25 @@ StaticGraphStatus imageSubGraphTopology100111::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -55469,13 +75178,21 @@ StaticGraphStatus imageSubGraphTopology100111::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[23]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffBayerPdaf3WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -55575,10 +75292,16 @@ StaticGraphStatus imageSubGraphTopology100111::updateSegmentAwareKernels() /* * Graph 100136 */ -StaticGraph100136::StaticGraph100136(GraphConfiguration100136* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100136, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100136::StaticGraph100136(GraphConfiguration100136* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100136, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrWithSap] = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration); @@ -55823,14 +75546,14 @@ StaticGraph100136::StaticGraph100136(GraphConfiguration100136* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -55867,15 +75590,25 @@ StaticGraphStatus imageSubGraphTopology100136::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -55890,13 +75623,21 @@ StaticGraphStatus imageSubGraphTopology100136::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[23]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[22]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[24]->isActive = !(lbffBayerPdaf3NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -55995,10 +75736,16 @@ StaticGraphStatus imageSubGraphTopology100136::updateSegmentAwareKernels() /* * Graph 100200 */ -StaticGraph100200::StaticGraph100200(GraphConfiguration100200* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100200, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100200::StaticGraph100200(GraphConfiguration100200* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100200, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -56253,14 +76000,14 @@ StaticGraph100200::StaticGraph100200(GraphConfiguration100200* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -56297,15 +76044,25 @@ StaticGraphStatus imageSubGraphTopology100200::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -56320,14 +76077,23 @@ StaticGraphStatus imageSubGraphTopology100200::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[22]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[23]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[25]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -56427,10 +76193,15 @@ StaticGraphStatus imageSubGraphTopology100200::updateSegmentAwareKernels() /* * Graph 100201 */ -StaticGraph100201::StaticGraph100201(GraphConfiguration100201* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100201, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100201::StaticGraph100201(GraphConfiguration100201* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100201, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -56614,13 +76385,13 @@ StaticGraph100201::StaticGraph100201(GraphConfiguration100201* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -56656,15 +76427,25 @@ StaticGraphStatus imageSubGraphTopology100201::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -56679,14 +76460,23 @@ StaticGraphStatus imageSubGraphTopology100201::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -56719,10 +76509,14 @@ StaticGraphStatus imageSubGraphTopology100201::configInnerNodes(SubGraphInnerNod /* * Graph 100112 */ -StaticGraph100112::StaticGraph100112(GraphConfiguration100112* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100112, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100112::StaticGraph100112(GraphConfiguration100112* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100112, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvNoTnrWithSap] = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -56899,12 +76693,12 @@ StaticGraph100112::StaticGraph100112(GraphConfiguration100112* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDol2InputsNoGmvNoTnrWithSapOuterNode = &_lbffDol2InputsNoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -56939,13 +76733,13 @@ StaticGraphStatus imageSubGraphTopology100112::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && true) { lbffDol2InputsNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { lbffDol2InputsNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -56960,12 +76754,19 @@ StaticGraphStatus imageSubGraphTopology100112::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[15]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[19]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[20]->isActive = !(lbffDol2InputsNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -57039,10 +76840,15 @@ StaticGraphStatus imageSubGraphTopology100112::updateSegmentAwareKernels() /* * Graph 100113 */ -StaticGraph100113::StaticGraph100113(GraphConfiguration100113* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100113, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100113::StaticGraph100113(GraphConfiguration100113* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100113, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvNoTnrWithSap] = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -57262,13 +77068,13 @@ StaticGraph100113::StaticGraph100113(GraphConfiguration100113* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDol2InputsWithGmvNoTnrWithSapOuterNode = &_lbffDol2InputsWithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -57304,15 +77110,25 @@ StaticGraphStatus imageSubGraphTopology100113::configInnerNodes(SubGraphInnerNod lbffDol2InputsWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffDol2InputsWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffDol2InputsWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -57327,14 +77143,23 @@ StaticGraphStatus imageSubGraphTopology100113::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[14]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[23]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[22]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[24]->isActive = !(lbffDol2InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -57413,10 +77238,16 @@ StaticGraphStatus imageSubGraphTopology100113::updateSegmentAwareKernels() /* * Graph 100114 */ -StaticGraph100114::StaticGraph100114(GraphConfiguration100114* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100114, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100114::StaticGraph100114(GraphConfiguration100114* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100114, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap] = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -57684,14 +77515,14 @@ StaticGraph100114::StaticGraph100114(GraphConfiguration100114* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDol2InputsNoGmvWithTnrWithSapOuterNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -57728,15 +77559,25 @@ StaticGraphStatus imageSubGraphTopology100114::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -57751,14 +77592,23 @@ StaticGraphStatus imageSubGraphTopology100114::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[17]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[19]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[20]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[24]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[26]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[25]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[27]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -57857,10 +77707,16 @@ StaticGraphStatus imageSubGraphTopology100114::updateSegmentAwareKernels() /* * Graph 100146 */ -StaticGraph100146::StaticGraph100146(GraphConfiguration100146* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100146, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100146::StaticGraph100146(GraphConfiguration100146* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100146, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrWithSap] = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -58128,14 +77984,14 @@ StaticGraph100146::StaticGraph100146(GraphConfiguration100146* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDol2InputsNoGmvWithTnrWithSapOuterNode = &_lbffDol2InputsNoGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -58172,15 +78028,25 @@ StaticGraphStatus imageSubGraphTopology100146::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -58195,14 +78061,23 @@ StaticGraphStatus imageSubGraphTopology100146::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[17]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[19]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[20]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[24]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[26]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[25]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[27]->isActive = !(lbffDol2InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -58301,10 +78176,15 @@ StaticGraphStatus imageSubGraphTopology100146::updateSegmentAwareKernels() /* * Graph 100115 */ -StaticGraph100115::StaticGraph100115(GraphConfiguration100115* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100115, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100115::StaticGraph100115(GraphConfiguration100115* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100115, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvWithTnrWithSap] = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -58572,13 +78452,13 @@ StaticGraph100115::StaticGraph100115(GraphConfiguration100115* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDol2InputsWithGmvWithTnrWithSapOuterNode = &_lbffDol2InputsWithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -58614,15 +78494,25 @@ StaticGraphStatus imageSubGraphTopology100115::configInnerNodes(SubGraphInnerNod lbffDol2InputsWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && - subGraphLinks[28]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 28 && + (subGraphLinks[28]->src == subGraphLinks[26]->src && + subGraphLinks[28]->srcTerminalId == subGraphLinks[26]->srcTerminalId && + subGraphLinks[28]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[28]->src != subGraphLinks[26]->src || + subGraphLinks[28]->srcTerminalId != subGraphLinks[26]->srcTerminalId)) && true) { lbffDol2InputsWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && - subGraphLinks[29]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[27]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 29 && + (subGraphLinks[29]->src == subGraphLinks[27]->src && + subGraphLinks[29]->srcTerminalId == subGraphLinks[27]->srcTerminalId && + subGraphLinks[29]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[29]->src != subGraphLinks[27]->src || + subGraphLinks[29]->srcTerminalId != subGraphLinks[27]->srcTerminalId)) && true) { lbffDol2InputsWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -58637,14 +78527,23 @@ StaticGraphStatus imageSubGraphTopology100115::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[19]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[20]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[26]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[28]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[27]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[29]->isActive = !(lbffDol2InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -58744,10 +78643,15 @@ StaticGraphStatus imageSubGraphTopology100115::updateSegmentAwareKernels() /* * Graph 100116 */ -StaticGraph100116::StaticGraph100116(GraphConfiguration100116* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100116, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100116::StaticGraph100116(GraphConfiguration100116* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100116, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvNoTnrWithSap] = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -58943,13 +78847,13 @@ StaticGraph100116::StaticGraph100116(GraphConfiguration100116* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsNoGmvNoTnrWithSapOuterNode = &_lbffDol3InputsNoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -58985,13 +78889,13 @@ StaticGraphStatus imageSubGraphTopology100116::configInnerNodes(SubGraphInnerNod lbffDol3InputsNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffDol3InputsNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffDol3InputsNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -59006,12 +78910,19 @@ StaticGraphStatus imageSubGraphTopology100116::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[17]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[19]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[20]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffDol3InputsNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -59085,10 +78996,16 @@ StaticGraphStatus imageSubGraphTopology100116::updateSegmentAwareKernels() /* * Graph 100117 */ -StaticGraph100117::StaticGraph100117(GraphConfiguration100117* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100117, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100117::StaticGraph100117(GraphConfiguration100117* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100117, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvNoTnrWithSap] = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -59327,14 +79244,14 @@ StaticGraph100117::StaticGraph100117(GraphConfiguration100117* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvNoTnrWithSapOuterNode = &_lbffDol3InputsWithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -59371,15 +79288,25 @@ StaticGraphStatus imageSubGraphTopology100117::configInnerNodes(SubGraphInnerNod lbffDol3InputsWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffDol3InputsWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffDol3InputsWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -59394,14 +79321,23 @@ StaticGraphStatus imageSubGraphTopology100117::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[16]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[23]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffDol3InputsWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -59480,10 +79416,15 @@ StaticGraphStatus imageSubGraphTopology100117::updateSegmentAwareKernels() /* * Graph 100118 */ -StaticGraph100118::StaticGraph100118(GraphConfiguration100118* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100118, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100118::StaticGraph100118(GraphConfiguration100118* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100118, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvWithTnrWithSap] = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -59727,13 +79668,13 @@ StaticGraph100118::StaticGraph100118(GraphConfiguration100118* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsNoGmvWithTnrWithSapOuterNode = &_lbffDol3InputsNoGmvWithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -59769,13 +79710,13 @@ StaticGraphStatus imageSubGraphTopology100118::configInnerNodes(SubGraphInnerNod lbffDol3InputsNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && true) { lbffDol3InputsNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[27]->linkConfiguration->bufferSize == 0) && true) { lbffDol3InputsNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -59790,12 +79731,19 @@ StaticGraphStatus imageSubGraphTopology100118::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[19]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[20]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[21]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[22]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[26]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[27]->isActive = !(lbffDol3InputsNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -59894,10 +79842,16 @@ StaticGraphStatus imageSubGraphTopology100118::updateSegmentAwareKernels() /* * Graph 100119 */ -StaticGraph100119::StaticGraph100119(GraphConfiguration100119* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100119, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100119::StaticGraph100119(GraphConfiguration100119* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100119, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvWithTnrWithSap] = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -60184,14 +80138,14 @@ StaticGraph100119::StaticGraph100119(GraphConfiguration100119* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvWithTnrWithSapOuterNode = &_lbffDol3InputsWithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -60228,15 +80182,25 @@ StaticGraphStatus imageSubGraphTopology100119::configInnerNodes(SubGraphInnerNod lbffDol3InputsWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[28]->linkConfiguration->bufferSize == 0 && - subGraphLinks[30]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[28]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 30 && + (subGraphLinks[30]->src == subGraphLinks[28]->src && + subGraphLinks[30]->srcTerminalId == subGraphLinks[28]->srcTerminalId && + subGraphLinks[30]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[30]->src != subGraphLinks[28]->src || + subGraphLinks[30]->srcTerminalId != subGraphLinks[28]->srcTerminalId)) && true) { lbffDol3InputsWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[29]->linkConfiguration->bufferSize == 0 && - subGraphLinks[31]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[29]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 31 && + (subGraphLinks[31]->src == subGraphLinks[29]->src && + subGraphLinks[31]->srcTerminalId == subGraphLinks[29]->srcTerminalId && + subGraphLinks[31]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[31]->src != subGraphLinks[29]->src || + subGraphLinks[31]->srcTerminalId != subGraphLinks[29]->srcTerminalId)) && true) { lbffDol3InputsWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -60251,14 +80215,23 @@ StaticGraphStatus imageSubGraphTopology100119::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[21]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[22]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[28]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[30]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[29]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[31]->isActive = !(lbffDol3InputsWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -60358,12 +80331,17 @@ StaticGraphStatus imageSubGraphTopology100119::updateSegmentAwareKernels() /* * Graph 100120 */ -StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100120, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100120, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrNoGmvNoTnrWithSap] = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvNoTnrNoSap] = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -60378,6 +80356,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -60388,6 +80367,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -60398,6 +80378,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -60410,6 +80391,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_swSegnetOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -60422,6 +80404,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -60432,6 +80415,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 2; link->dest = GraphElementType::SegnetSecondary; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -60444,6 +80428,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; link->destTerminalId = 30; link->type = LinkType::Node2Node; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -60456,6 +80441,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; link->destTerminalId = 31; link->type = LinkType::Node2Node; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -60468,6 +80454,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; link->destTerminalId = 32; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -60480,6 +80467,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; link->destTerminalId = 35; link->type = LinkType::Node2Node; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -60490,6 +80478,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -60500,6 +80489,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -60510,6 +80500,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -60520,6 +80511,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -60530,6 +80522,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -60540,6 +80533,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -60550,6 +80544,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -60560,6 +80555,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -60570,6 +80566,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -60581,6 +80578,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -60590,6 +80588,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -60599,6 +80598,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -60608,6 +80608,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -60617,6 +80618,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[23] = link; _image_irSubGraph.links[23] = link; @@ -60626,6 +80628,7 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[24] = link; _image_irSubGraph.links[24] = link; @@ -60635,20 +80638,22 @@ StaticGraph100120::StaticGraph100120(GraphConfiguration100120* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffRgbIrNoGmvNoTnrWithSapOuterNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _irSubGraph.lbffRgbIrNoGmvNoTnrWithSapOuterNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _image_irSubGraph.lbffRgbIrNoGmvNoTnrWithSapOuterNode = &_lbffRgbIrNoGmvNoTnrWithSapOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -60752,13 +80757,13 @@ StaticGraphStatus imageSubGraphTopology100120::configInnerNodes(SubGraphInnerNod lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -60775,12 +80780,19 @@ StaticGraphStatus imageSubGraphTopology100120::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -60868,13 +80880,13 @@ StaticGraphStatus irSubGraphTopology100120::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -60888,7 +80900,7 @@ StaticGraphStatus irSubGraphTopology100120::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -60904,17 +80916,29 @@ StaticGraphStatus irSubGraphTopology100120::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[21]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[23]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -61007,13 +81031,13 @@ StaticGraphStatus image_irSubGraphTopology100120::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrNoGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 16 && subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 17 && subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -61027,7 +81051,7 @@ StaticGraphStatus image_irSubGraphTopology100120::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -61043,17 +81067,29 @@ StaticGraphStatus image_irSubGraphTopology100120::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffRgbIrNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[21]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[23]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -61133,12 +81169,18 @@ StaticGraphStatus image_irSubGraphTopology100120::updateSegmentAwareKernels() /* * Graph 100121 */ -StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100121, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100121, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrWithGmvNoTnrWithSap] = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvNoTnrNoSap] = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -61154,6 +81196,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -61164,6 +81207,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -61174,6 +81218,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -61186,6 +81231,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_swSegnetOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -61198,6 +81244,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -61208,6 +81255,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 2; link->dest = GraphElementType::SegnetSecondary; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -61220,6 +81268,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; link->destTerminalId = 30; link->type = LinkType::Node2Node; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -61232,6 +81281,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; link->destTerminalId = 31; link->type = LinkType::Node2Node; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -61244,6 +81294,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; link->destTerminalId = 32; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -61256,6 +81307,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; link->destTerminalId = 35; link->type = LinkType::Node2Node; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -61266,6 +81318,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -61276,6 +81329,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -61286,6 +81340,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -61296,6 +81351,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -61306,6 +81362,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -61316,6 +81373,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -61329,6 +81387,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destTerminalId = 17; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[16] = link; _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -61339,6 +81398,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 20; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -61349,6 +81409,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[18] = link; _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -61359,6 +81420,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[19] = link; _irSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -61371,6 +81433,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -61382,6 +81445,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -61391,6 +81455,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -61400,6 +81465,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[20] = link; _image_irSubGraph.links[23] = link; @@ -61411,6 +81477,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[21] = link; _image_irSubGraph.links[24] = link; @@ -61420,6 +81487,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[22] = link; _image_irSubGraph.links[25] = link; @@ -61429,6 +81497,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[23] = link; _image_irSubGraph.links[26] = link; @@ -61438,6 +81507,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[24] = link; _image_irSubGraph.links[27] = link; @@ -61447,6 +81517,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[25] = link; _image_irSubGraph.links[28] = link; @@ -61456,6 +81527,7 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[26] = link; _image_irSubGraph.links[29] = link; @@ -61465,22 +81537,24 @@ StaticGraph100121::StaticGraph100121(GraphConfiguration100121* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffRgbIrWithGmvNoTnrWithSapOuterNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _irSubGraph.lbffRgbIrWithGmvNoTnrWithSapOuterNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _image_irSubGraph.lbffRgbIrWithGmvNoTnrWithSapOuterNode = &_lbffRgbIrWithGmvNoTnrWithSapOuterNode; _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -61586,15 +81660,25 @@ StaticGraphStatus imageSubGraphTopology100121::configInnerNodes(SubGraphInnerNod lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -61611,14 +81695,23 @@ StaticGraphStatus imageSubGraphTopology100121::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[18]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[20]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[21]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -61711,13 +81804,13 @@ StaticGraphStatus irSubGraphTopology100121::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -61731,7 +81824,7 @@ StaticGraphStatus irSubGraphTopology100121::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -61747,17 +81840,29 @@ StaticGraphStatus irSubGraphTopology100121::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[18]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[23]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[25]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[26]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -61855,15 +81960,15 @@ StaticGraphStatus image_irSubGraphTopology100121::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrWithGmvNoTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 18 && subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 19 && subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -61877,7 +81982,7 @@ StaticGraphStatus image_irSubGraphTopology100121::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[29]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[29]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -61893,19 +81998,33 @@ StaticGraphStatus image_irSubGraphTopology100121::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[11]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[18]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[20]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[21]->isActive = !(lbffRgbIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + subGraphLinks[25]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[26]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[27]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[28]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[29]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -61990,12 +82109,17 @@ StaticGraphStatus image_irSubGraphTopology100121::updateSegmentAwareKernels() /* * Graph 100122 */ -StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100122, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100122, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrNoGmvWithTnrWithSap] = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvWithTnrNoSap] = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -62010,6 +82134,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -62020,6 +82145,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -62030,6 +82156,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -62042,6 +82169,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_swSegnetOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -62054,6 +82182,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -62064,6 +82193,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 2; link->dest = GraphElementType::SegnetSecondary; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -62076,6 +82206,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 30; link->type = LinkType::Node2Node; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -62088,6 +82219,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 31; link->type = LinkType::Node2Node; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -62100,6 +82232,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 32; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -62112,6 +82245,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 35; link->type = LinkType::Node2Node; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -62124,6 +82258,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 33; link->type = LinkType::Node2Node; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -62136,6 +82271,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 34; link->type = LinkType::Node2Node; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -62146,6 +82282,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -62156,6 +82293,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -62166,6 +82304,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -62176,6 +82315,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -62186,6 +82326,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -62196,6 +82337,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -62209,6 +82351,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[18] = link; _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -62222,6 +82365,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[19] = link; _irSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -62235,6 +82379,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[20] = link; _irSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -62245,6 +82390,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[21] = link; _irSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -62255,6 +82401,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[22] = link; _irSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -62265,6 +82412,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[23] = link; _image_irSubGraph.links[23] = link; @@ -62276,6 +82424,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[24] = link; _image_irSubGraph.links[24] = link; @@ -62285,6 +82434,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[25] = link; _image_irSubGraph.links[25] = link; @@ -62294,6 +82444,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[26] = link; _image_irSubGraph.links[26] = link; @@ -62303,6 +82454,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[27] = link; _image_irSubGraph.links[27] = link; @@ -62312,6 +82464,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[28] = link; _image_irSubGraph.links[28] = link; @@ -62324,6 +82477,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[29] = link; _image_irSubGraph.links[29] = link; @@ -62336,6 +82490,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[30] = link; _image_irSubGraph.links[30] = link; @@ -62348,6 +82503,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[31] = link; _image_irSubGraph.links[31] = link; @@ -62357,6 +82513,7 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[32] = link; _image_irSubGraph.links[32] = link; @@ -62366,20 +82523,22 @@ StaticGraph100122::StaticGraph100122(GraphConfiguration100122* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffRgbIrNoGmvWithTnrWithSapOuterNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _irSubGraph.lbffRgbIrNoGmvWithTnrWithSapOuterNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _image_irSubGraph.lbffRgbIrNoGmvWithTnrWithSapOuterNode = &_lbffRgbIrNoGmvWithTnrWithSapOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -62483,13 +82642,13 @@ StaticGraphStatus imageSubGraphTopology100122::configInnerNodes(SubGraphInnerNod lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -62506,12 +82665,19 @@ StaticGraphStatus imageSubGraphTopology100122::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -62624,13 +82790,13 @@ StaticGraphStatus irSubGraphTopology100122::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -62644,7 +82810,7 @@ StaticGraphStatus irSubGraphTopology100122::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[32]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[32]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -62660,17 +82826,29 @@ StaticGraphStatus irSubGraphTopology100122::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[25]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[26]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[27]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[28]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[32]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -62791,13 +82969,13 @@ StaticGraphStatus image_irSubGraphTopology100122::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrNoGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 21 && subGraphLinks[21]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 22 && subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -62811,7 +82989,7 @@ StaticGraphStatus image_irSubGraphTopology100122::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[32]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[32]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -62827,17 +83005,29 @@ StaticGraphStatus image_irSubGraphTopology100122::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[22]->isActive = !(lbffRgbIrNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[25]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[26]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[27]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[28]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[32]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -62945,12 +83135,18 @@ StaticGraphStatus image_irSubGraphTopology100122::updateSegmentAwareKernels() /* * Graph 100123 */ -StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100123, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100123, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrWithGmvWithTnrWithSap] = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvWithTnrNoSap] = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -62966,6 +83162,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -62976,6 +83173,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -62986,6 +83184,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -62998,6 +83197,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_swSegnetOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -63010,6 +83210,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -63020,6 +83221,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 2; link->dest = GraphElementType::SegnetSecondary; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -63032,6 +83234,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 30; link->type = LinkType::Node2Node; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -63044,6 +83247,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 31; link->type = LinkType::Node2Node; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -63056,6 +83260,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 32; link->type = LinkType::Node2Node; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -63068,6 +83273,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 35; link->type = LinkType::Node2Node; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -63080,6 +83286,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 33; link->type = LinkType::Node2Node; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -63092,6 +83299,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 34; link->type = LinkType::Node2Node; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -63102,6 +83310,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -63112,6 +83321,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -63122,6 +83332,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -63132,6 +83343,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -63142,6 +83354,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -63152,6 +83365,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[17] = link; _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -63165,6 +83379,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 17; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[18] = link; _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -63175,6 +83390,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 20; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[19] = link; _irSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -63188,6 +83404,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[20] = link; _irSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -63201,6 +83418,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[21] = link; _irSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -63214,6 +83432,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[22] = link; _irSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -63224,6 +83443,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[23] = link; _irSubGraph.links[23] = link; _image_irSubGraph.links[23] = link; @@ -63234,6 +83454,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[24] = link; _irSubGraph.links[24] = link; _image_irSubGraph.links[24] = link; @@ -63246,6 +83467,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[25] = link; _image_irSubGraph.links[25] = link; @@ -63257,6 +83479,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[26] = link; _image_irSubGraph.links[26] = link; @@ -63266,6 +83489,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[27] = link; _image_irSubGraph.links[27] = link; @@ -63275,6 +83499,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[25] = link; _image_irSubGraph.links[28] = link; @@ -63286,6 +83511,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[26] = link; _image_irSubGraph.links[29] = link; @@ -63295,6 +83521,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[27] = link; _image_irSubGraph.links[30] = link; @@ -63304,6 +83531,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[28] = link; _image_irSubGraph.links[31] = link; @@ -63313,6 +83541,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[29] = link; _image_irSubGraph.links[32] = link; @@ -63322,6 +83551,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[30] = link; _image_irSubGraph.links[33] = link; @@ -63334,6 +83564,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[31] = link; _image_irSubGraph.links[34] = link; @@ -63346,6 +83577,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[32] = link; _image_irSubGraph.links[35] = link; @@ -63358,6 +83590,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[33] = link; _image_irSubGraph.links[36] = link; @@ -63367,6 +83600,7 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[34] = link; _image_irSubGraph.links[37] = link; @@ -63376,22 +83610,24 @@ StaticGraph100123::StaticGraph100123(GraphConfiguration100123* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffRgbIrWithGmvWithTnrWithSapOuterNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _irSubGraph.lbffRgbIrWithGmvWithTnrWithSapOuterNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _image_irSubGraph.lbffRgbIrWithGmvWithTnrWithSapOuterNode = &_lbffRgbIrWithGmvWithTnrWithSapOuterNode; _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -63497,15 +83733,25 @@ StaticGraphStatus imageSubGraphTopology100123::configInnerNodes(SubGraphInnerNod lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && + (subGraphLinks[25]->src == subGraphLinks[23]->src && + subGraphLinks[25]->srcTerminalId == subGraphLinks[23]->srcTerminalId && + subGraphLinks[25]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[25]->src != subGraphLinks[23]->src || + subGraphLinks[25]->srcTerminalId != subGraphLinks[23]->srcTerminalId)) && true) { lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -63522,14 +83768,23 @@ StaticGraphStatus imageSubGraphTopology100123::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[23]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -63643,13 +83898,13 @@ StaticGraphStatus irSubGraphTopology100123::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -63663,7 +83918,7 @@ StaticGraphStatus irSubGraphTopology100123::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[34]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[34]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -63679,17 +83934,29 @@ StaticGraphStatus irSubGraphTopology100123::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[23]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[24]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[27]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[28]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[29]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[30]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[34]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -63811,15 +84078,15 @@ StaticGraphStatus image_irSubGraphTopology100123::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrWithGmvWithTnrWithSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 23 && subGraphLinks[23]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 25 && subGraphLinks[25]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 24 && subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && subGraphLinks[26]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -63833,7 +84100,7 @@ StaticGraphStatus image_irSubGraphTopology100123::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[37]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[37]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -63849,19 +84116,33 @@ StaticGraphStatus image_irSubGraphTopology100123::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[23]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[25]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[24]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[26]->isActive = !(lbffRgbIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + subGraphLinks[30]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[31]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[32]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[33]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[37]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -63970,10 +84251,14 @@ StaticGraphStatus image_irSubGraphTopology100123::updateSegmentAwareKernels() /* * Graph 100127 */ -StaticGraph100127::StaticGraph100127(GraphConfiguration100127* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100127, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100127::StaticGraph100127(GraphConfiguration100127* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100127, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrNoGmvNoTnrWithSap] = &_lbffIrNoGmvNoTnrWithSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -64111,12 +84396,12 @@ StaticGraph100127::StaticGraph100127(GraphConfiguration100127* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffIrNoGmvNoTnrWithSapOuterNode = &_lbffIrNoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -64151,13 +84436,13 @@ StaticGraphStatus imageSubGraphTopology100127::configInnerNodes(SubGraphInnerNod lbffIrNoGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvNoTnrWithSapInnerOptions |= noDp; @@ -64172,11 +84457,17 @@ StaticGraphStatus imageSubGraphTopology100127::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[10]->isActive = !(lbffIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[11]->isActive = !(lbffIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[12]->isActive = !(lbffIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[13]->isActive = !(lbffIrNoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffIrNoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Ir_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffIrNoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Ir_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -64241,10 +84532,15 @@ StaticGraphStatus imageSubGraphTopology100127::updateSegmentAwareKernels() /* * Graph 100128 */ -StaticGraph100128::StaticGraph100128(GraphConfiguration100128* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100128, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100128::StaticGraph100128(GraphConfiguration100128* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100128, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrWithGmvNoTnrWithSap] = &_lbffIrWithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -64425,13 +84721,13 @@ StaticGraph100128::StaticGraph100128(GraphConfiguration100128* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffIrWithGmvNoTnrWithSapOuterNode = &_lbffIrWithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -64467,15 +84763,25 @@ StaticGraphStatus imageSubGraphTopology100128::configInnerNodes(SubGraphInnerNod lbffIrWithGmvNoTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffIrWithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffIrWithGmvNoTnrWithSapInnerOptions |= noDp; @@ -64490,13 +84796,21 @@ StaticGraphStatus imageSubGraphTopology100128::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[10]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[11]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[12]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[13]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[18]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[19]->isActive = !(lbffIrWithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Ir_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -64566,10 +84880,14 @@ StaticGraphStatus imageSubGraphTopology100128::updateSegmentAwareKernels() /* * Graph 100129 */ -StaticGraph100129::StaticGraph100129(GraphConfiguration100129* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100129, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100129::StaticGraph100129(GraphConfiguration100129* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100129, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrNoGmvWithTnrWithSap] = &_lbffIrNoGmvWithTnrWithSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -64755,12 +85073,12 @@ StaticGraph100129::StaticGraph100129(GraphConfiguration100129* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffIrNoGmvWithTnrWithSapOuterNode = &_lbffIrNoGmvWithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -64795,13 +85113,13 @@ StaticGraphStatus imageSubGraphTopology100129::configInnerNodes(SubGraphInnerNod lbffIrNoGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvWithTnrWithSapInnerOptions |= noDp; @@ -64816,11 +85134,17 @@ StaticGraphStatus imageSubGraphTopology100129::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[12]->isActive = !(lbffIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffIrNoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[19]->isActive = !(lbffIrNoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Ir_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[20]->isActive = !(lbffIrNoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Ir_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -64910,10 +85234,15 @@ StaticGraphStatus imageSubGraphTopology100129::updateSegmentAwareKernels() /* * Graph 100130 */ -StaticGraph100130::StaticGraph100130(GraphConfiguration100130* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100130, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100130::StaticGraph100130(GraphConfiguration100130* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100130, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrWithGmvWithTnrWithSap] = &_lbffIrWithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -65142,13 +85471,13 @@ StaticGraph100130::StaticGraph100130(GraphConfiguration100130* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffIrWithGmvWithTnrWithSapOuterNode = &_lbffIrWithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -65184,15 +85513,25 @@ StaticGraphStatus imageSubGraphTopology100130::configInnerNodes(SubGraphInnerNod lbffIrWithGmvWithTnrWithSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[21]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 23 && + (subGraphLinks[23]->src == subGraphLinks[21]->src && + subGraphLinks[23]->srcTerminalId == subGraphLinks[21]->srcTerminalId && + subGraphLinks[23]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[23]->src != subGraphLinks[21]->src || + subGraphLinks[23]->srcTerminalId != subGraphLinks[21]->srcTerminalId)) && true) { lbffIrWithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 24 && + (subGraphLinks[24]->src == subGraphLinks[22]->src && + subGraphLinks[24]->srcTerminalId == subGraphLinks[22]->srcTerminalId && + subGraphLinks[24]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[24]->src != subGraphLinks[22]->src || + subGraphLinks[24]->srcTerminalId != subGraphLinks[22]->srcTerminalId)) && true) { lbffIrWithGmvWithTnrWithSapInnerOptions |= noDp; @@ -65207,13 +85546,21 @@ StaticGraphStatus imageSubGraphTopology100130::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[12]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[13]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[14]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[15]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[21]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[23]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[22]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[24]->isActive = !(lbffIrWithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Ir_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -65304,10 +85651,14 @@ StaticGraphStatus imageSubGraphTopology100130::updateSegmentAwareKernels() /* * Graph 100131 */ -StaticGraph100131::StaticGraph100131(GraphConfiguration100131* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100131, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100131::StaticGraph100131(GraphConfiguration100131* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100131, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap] = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -65471,12 +85822,12 @@ StaticGraph100131::StaticGraph100131(GraphConfiguration100131* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -65511,13 +85862,13 @@ StaticGraphStatus imageSubGraphTopology100131::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions |= noDp; @@ -65532,12 +85883,19 @@ StaticGraphStatus imageSubGraphTopology100131::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -65616,10 +85974,15 @@ StaticGraphStatus imageSubGraphTopology100131::updateSegmentAwareKernels() /* * Graph 100132 */ -StaticGraph100132::StaticGraph100132(GraphConfiguration100132* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100132, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100132::StaticGraph100132(GraphConfiguration100132* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100132, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap] = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -65826,13 +86189,13 @@ StaticGraph100132::StaticGraph100132(GraphConfiguration100132* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -65868,15 +86231,25 @@ StaticGraphStatus imageSubGraphTopology100132::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions |= noDp; @@ -65891,14 +86264,23 @@ StaticGraphStatus imageSubGraphTopology100132::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[19]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[21]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[20]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[22]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -65978,10 +86360,14 @@ StaticGraphStatus imageSubGraphTopology100132::updateSegmentAwareKernels() /* * Graph 100133 */ -StaticGraph100133::StaticGraph100133(GraphConfiguration100133* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100133, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100133::StaticGraph100133(GraphConfiguration100133* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100133, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -66193,12 +86579,12 @@ StaticGraph100133::StaticGraph100133(GraphConfiguration100133* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -66233,13 +86619,13 @@ StaticGraphStatus imageSubGraphTopology100133::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[22]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions |= noDp; @@ -66254,12 +86640,19 @@ StaticGraphStatus imageSubGraphTopology100133::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[22]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[23]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -66359,10 +86752,15 @@ StaticGraphStatus imageSubGraphTopology100133::updateSegmentAwareKernels() /* * Graph 100134 */ -StaticGraph100134::StaticGraph100134(GraphConfiguration100134* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100134, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100134::StaticGraph100134(GraphConfiguration100134* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100134, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::SwSegnet] = &_swSegnetOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap] = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _swSegnetOuterNode.Init(&_graphConfiguration.swSegnetOuterNodeConfiguration); @@ -66617,13 +87015,13 @@ StaticGraph100134::StaticGraph100134(GraphConfiguration100134* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.swSegnetOuterNode = &_swSegnetOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -66659,15 +87057,25 @@ StaticGraphStatus imageSubGraphTopology100134::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 26 && + (subGraphLinks[26]->src == subGraphLinks[24]->src && + subGraphLinks[26]->srcTerminalId == subGraphLinks[24]->srcTerminalId && + subGraphLinks[26]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[26]->src != subGraphLinks[24]->src || + subGraphLinks[26]->srcTerminalId != subGraphLinks[24]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= noMp; } if ( - subGraphLinks[25]->linkConfiguration->bufferSize == 0 && - subGraphLinks[27]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[25]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 27 && + (subGraphLinks[27]->src == subGraphLinks[25]->src && + subGraphLinks[27]->srcTerminalId == subGraphLinks[25]->srcTerminalId && + subGraphLinks[27]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[27]->src != subGraphLinks[25]->src || + subGraphLinks[27]->srcTerminalId != subGraphLinks[25]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions |= noDp; @@ -66682,14 +87090,23 @@ StaticGraphStatus imageSubGraphTopology100134::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ae_output -> ae_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[24]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[26]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[25]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[27]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_WithSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -66790,10 +87207,13 @@ StaticGraphStatus imageSubGraphTopology100134::updateSegmentAwareKernels() /* * Graph 100235 */ -StaticGraph100235::StaticGraph100235(GraphConfiguration100235* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100235, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100235::StaticGraph100235(GraphConfiguration100235* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100235, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrNoSap] = &_lbffBayerNoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -66887,11 +87307,11 @@ StaticGraph100235::StaticGraph100235(GraphConfiguration100235* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerNoGmvNoTnrNoSapOuterNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -66925,13 +87345,13 @@ StaticGraphStatus imageSubGraphTopology100235::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -66946,11 +87366,17 @@ StaticGraphStatus imageSubGraphTopology100235::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -66975,10 +87401,14 @@ StaticGraphStatus imageSubGraphTopology100235::configInnerNodes(SubGraphInnerNod /* * Graph 100236 */ -StaticGraph100236::StaticGraph100236(GraphConfiguration100236* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100236, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100236::StaticGraph100236(GraphConfiguration100236* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100236, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrNoSap] = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -67115,12 +87545,12 @@ StaticGraph100236::StaticGraph100236(GraphConfiguration100236* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerWithGmvNoTnrNoSapOuterNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -67155,15 +87585,25 @@ StaticGraphStatus imageSubGraphTopology100236::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -67178,13 +87618,21 @@ StaticGraphStatus imageSubGraphTopology100236::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[12]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -67214,10 +87662,13 @@ StaticGraphStatus imageSubGraphTopology100236::configInnerNodes(SubGraphInnerNod /* * Graph 100202 */ -StaticGraph100202::StaticGraph100202(GraphConfiguration100202* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100202, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100202::StaticGraph100202(GraphConfiguration100202* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100202, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -67341,11 +87792,11 @@ StaticGraph100202::StaticGraph100202(GraphConfiguration100202* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -67379,13 +87830,13 @@ StaticGraphStatus imageSubGraphTopology100202::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -67400,11 +87851,17 @@ StaticGraphStatus imageSubGraphTopology100202::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -67436,10 +87893,14 @@ StaticGraphStatus imageSubGraphTopology100202::configInnerNodes(SubGraphInnerNod /* * Graph 100203 */ -StaticGraph100203::StaticGraph100203(GraphConfiguration100203* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100203, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100203::StaticGraph100203(GraphConfiguration100203* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100203, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -67606,12 +88067,12 @@ StaticGraph100203::StaticGraph100203(GraphConfiguration100203* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -67646,15 +88107,25 @@ StaticGraphStatus imageSubGraphTopology100203::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -67669,13 +88140,21 @@ StaticGraphStatus imageSubGraphTopology100203::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -67708,10 +88187,15 @@ StaticGraphStatus imageSubGraphTopology100203::configInnerNodes(SubGraphInnerNod /* * Graph 100279 */ -StaticGraph100279::StaticGraph100279(GraphConfiguration100279* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100279, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100279::StaticGraph100279(GraphConfiguration100279* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100279, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -67878,13 +88362,13 @@ StaticGraph100279::StaticGraph100279(GraphConfiguration100279* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -67920,15 +88404,25 @@ StaticGraphStatus imageSubGraphTopology100279::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -67943,13 +88437,21 @@ StaticGraphStatus imageSubGraphTopology100279::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -67981,10 +88483,15 @@ StaticGraphStatus imageSubGraphTopology100279::configInnerNodes(SubGraphInnerNod /* * Graph 100280 */ -StaticGraph100280::StaticGraph100280(GraphConfiguration100280* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100280, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100280::StaticGraph100280(GraphConfiguration100280* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100280, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -68151,13 +88658,13 @@ StaticGraph100280::StaticGraph100280(GraphConfiguration100280* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -68193,15 +88700,25 @@ StaticGraphStatus imageSubGraphTopology100280::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -68216,13 +88733,21 @@ StaticGraphStatus imageSubGraphTopology100280::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -68254,10 +88779,15 @@ StaticGraphStatus imageSubGraphTopology100280::configInnerNodes(SubGraphInnerNod /* * Graph 100281 */ -StaticGraph100281::StaticGraph100281(GraphConfiguration100281* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100281, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100281::StaticGraph100281(GraphConfiguration100281* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100281, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -68441,13 +88971,13 @@ StaticGraph100281::StaticGraph100281(GraphConfiguration100281* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -68483,15 +89013,25 @@ StaticGraphStatus imageSubGraphTopology100281::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -68506,13 +89046,21 @@ StaticGraphStatus imageSubGraphTopology100281::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -68545,10 +89093,13 @@ StaticGraphStatus imageSubGraphTopology100281::configInnerNodes(SubGraphInnerNod /* * Graph 100204 */ -StaticGraph100204::StaticGraph100204(GraphConfiguration100204* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100204, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100204::StaticGraph100204(GraphConfiguration100204* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100204, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvNoTnrNoSap] = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration); @@ -68665,11 +89216,11 @@ StaticGraph100204::StaticGraph100204(GraphConfiguration100204* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -68703,13 +89254,13 @@ StaticGraphStatus imageSubGraphTopology100204::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions |= noDp; @@ -68724,12 +89275,19 @@ StaticGraphStatus imageSubGraphTopology100204::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[12]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -68754,10 +89312,14 @@ StaticGraphStatus imageSubGraphTopology100204::configInnerNodes(SubGraphInnerNod /* * Graph 100205 */ -StaticGraph100205::StaticGraph100205(GraphConfiguration100205* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100205, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100205::StaticGraph100205(GraphConfiguration100205* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100205, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvNoTnrNoSap] = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration); @@ -68917,12 +89479,12 @@ StaticGraph100205::StaticGraph100205(GraphConfiguration100205* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -68957,15 +89519,25 @@ StaticGraphStatus imageSubGraphTopology100205::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions |= noDp; @@ -68980,14 +89552,23 @@ StaticGraphStatus imageSubGraphTopology100205::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -69017,10 +89598,13 @@ StaticGraphStatus imageSubGraphTopology100205::configInnerNodes(SubGraphInnerNod /* * Graph 100206 */ -StaticGraph100206::StaticGraph100206(GraphConfiguration100206* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100206, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100206::StaticGraph100206(GraphConfiguration100206* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100206, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -69167,11 +89751,11 @@ StaticGraph100206::StaticGraph100206(GraphConfiguration100206* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -69205,13 +89789,13 @@ StaticGraphStatus imageSubGraphTopology100206::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -69226,12 +89810,19 @@ StaticGraphStatus imageSubGraphTopology100206::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -69263,10 +89854,15 @@ StaticGraphStatus imageSubGraphTopology100206::configInnerNodes(SubGraphInnerNod /* * Graph 100266 */ -StaticGraph100266::StaticGraph100266(GraphConfiguration100266* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100266, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100266::StaticGraph100266(GraphConfiguration100266* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100266, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -69456,13 +90052,13 @@ StaticGraph100266::StaticGraph100266(GraphConfiguration100266* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -69498,15 +90094,25 @@ StaticGraphStatus imageSubGraphTopology100266::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -69521,14 +90127,23 @@ StaticGraphStatus imageSubGraphTopology100266::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffBayerPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -69560,10 +90175,14 @@ StaticGraphStatus imageSubGraphTopology100266::configInnerNodes(SubGraphInnerNod /* * Graph 100207 */ -StaticGraph100207::StaticGraph100207(GraphConfiguration100207* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100207, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100207::StaticGraph100207(GraphConfiguration100207* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100207, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -69753,12 +90372,12 @@ StaticGraph100207::StaticGraph100207(GraphConfiguration100207* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -69793,15 +90412,25 @@ StaticGraphStatus imageSubGraphTopology100207::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -69816,14 +90445,23 @@ StaticGraphStatus imageSubGraphTopology100207::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -69856,10 +90494,16 @@ StaticGraphStatus imageSubGraphTopology100207::configInnerNodes(SubGraphInnerNod /* * Graph 100267 */ -StaticGraph100267::StaticGraph100267(GraphConfiguration100267* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100267, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100267::StaticGraph100267(GraphConfiguration100267* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100267, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); _lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -70076,14 +90720,14 @@ StaticGraph100267::StaticGraph100267(GraphConfiguration100267* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; _imageSubGraph.lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -70120,15 +90764,25 @@ StaticGraphStatus imageSubGraphTopology100267::configInnerNodes(SubGraphInnerNod lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -70143,14 +90797,23 @@ StaticGraphStatus imageSubGraphTopology100267::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[8]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[17]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffBayerPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -70183,10 +90846,13 @@ StaticGraphStatus imageSubGraphTopology100267::configInnerNodes(SubGraphInnerNod /* * Graph 100208 */ -StaticGraph100208::StaticGraph100208(GraphConfiguration100208* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100208, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100208::StaticGraph100208(GraphConfiguration100208* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100208, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvNoTnrNoSap] = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration); @@ -70287,11 +90953,11 @@ StaticGraph100208::StaticGraph100208(GraphConfiguration100208* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -70325,13 +90991,13 @@ StaticGraphStatus imageSubGraphTopology100208::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions |= noDp; @@ -70346,11 +91012,17 @@ StaticGraphStatus imageSubGraphTopology100208::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffBayerPdaf3NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -70375,10 +91047,14 @@ StaticGraphStatus imageSubGraphTopology100208::configInnerNodes(SubGraphInnerNod /* * Graph 100209 */ -StaticGraph100209::StaticGraph100209(GraphConfiguration100209* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100209, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100209::StaticGraph100209(GraphConfiguration100209* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100209, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvNoTnrNoSap] = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration); @@ -70522,12 +91198,12 @@ StaticGraph100209::StaticGraph100209(GraphConfiguration100209* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -70562,15 +91238,25 @@ StaticGraphStatus imageSubGraphTopology100209::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions |= noDp; @@ -70585,13 +91271,21 @@ StaticGraphStatus imageSubGraphTopology100209::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -70621,10 +91315,13 @@ StaticGraphStatus imageSubGraphTopology100209::configInnerNodes(SubGraphInnerNod /* * Graph 100210 */ -StaticGraph100210::StaticGraph100210(GraphConfiguration100210* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100210, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100210::StaticGraph100210(GraphConfiguration100210* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100210, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap] = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -70755,11 +91452,11 @@ StaticGraph100210::StaticGraph100210(GraphConfiguration100210* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -70793,13 +91490,13 @@ StaticGraphStatus imageSubGraphTopology100210::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -70814,11 +91511,17 @@ StaticGraphStatus imageSubGraphTopology100210::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -70850,10 +91553,14 @@ StaticGraphStatus imageSubGraphTopology100210::configInnerNodes(SubGraphInnerNod /* * Graph 100211 */ -StaticGraph100211::StaticGraph100211(GraphConfiguration100211* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100211, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100211::StaticGraph100211(GraphConfiguration100211* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100211, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3WithGmvWithTnrNoSap] = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -71027,12 +91734,12 @@ StaticGraph100211::StaticGraph100211(GraphConfiguration100211* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -71067,15 +91774,25 @@ StaticGraphStatus imageSubGraphTopology100211::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -71090,13 +91807,21 @@ StaticGraphStatus imageSubGraphTopology100211::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffBayerPdaf3WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -71129,10 +91854,15 @@ StaticGraphStatus imageSubGraphTopology100211::configInnerNodes(SubGraphInnerNod /* * Graph 100245 */ -StaticGraph100245::StaticGraph100245(GraphConfiguration100245* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100245, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100245::StaticGraph100245(GraphConfiguration100245* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100245, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3NoGmvWithTnrNoSap] = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -71306,13 +92036,13 @@ StaticGraph100245::StaticGraph100245(GraphConfiguration100245* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -71348,15 +92078,25 @@ StaticGraphStatus imageSubGraphTopology100245::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -71371,13 +92111,21 @@ StaticGraphStatus imageSubGraphTopology100245::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[6]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffBayerPdaf3NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -71409,10 +92157,15 @@ StaticGraphStatus imageSubGraphTopology100245::configInnerNodes(SubGraphInnerNod /* * Graph 100212 */ -StaticGraph100212::StaticGraph100212(GraphConfiguration100212* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100212, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100212::StaticGraph100212(GraphConfiguration100212* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100212, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvNoTnrNoSap] = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDol2InputsNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -71572,13 +92325,13 @@ StaticGraph100212::StaticGraph100212(GraphConfiguration100212* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDol2InputsNoGmvNoTnrNoSapOuterNode = &_lbffDol2InputsNoGmvNoTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -71614,15 +92367,25 @@ StaticGraphStatus imageSubGraphTopology100212::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffDol2InputsNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -71637,14 +92400,23 @@ StaticGraphStatus imageSubGraphTopology100212::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffDol2InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -71669,10 +92441,14 @@ StaticGraphStatus imageSubGraphTopology100212::configInnerNodes(SubGraphInnerNod /* * Graph 100213 */ -StaticGraph100213::StaticGraph100213(GraphConfiguration100213* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100213, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100213::StaticGraph100213(GraphConfiguration100213* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100213, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvNoTnrNoSap] = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDol2InputsWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -71832,12 +92608,12 @@ StaticGraph100213::StaticGraph100213(GraphConfiguration100213* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDol2InputsWithGmvNoTnrNoSapOuterNode = &_lbffDol2InputsWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -71872,15 +92648,25 @@ StaticGraphStatus imageSubGraphTopology100213::configInnerNodes(SubGraphInnerNod lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffDol2InputsWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -71895,14 +92681,23 @@ StaticGraphStatus imageSubGraphTopology100213::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -71932,10 +92727,15 @@ StaticGraphStatus imageSubGraphTopology100213::configInnerNodes(SubGraphInnerNod /* * Graph 100214 */ -StaticGraph100214::StaticGraph100214(GraphConfiguration100214* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100214, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100214::StaticGraph100214(GraphConfiguration100214* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100214, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsNoGmvWithTnrNoSap] = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDol2InputsNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -72125,13 +92925,13 @@ StaticGraph100214::StaticGraph100214(GraphConfiguration100214* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDol2InputsNoGmvWithTnrNoSapOuterNode = &_lbffDol2InputsNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -72167,15 +92967,25 @@ StaticGraphStatus imageSubGraphTopology100214::configInnerNodes(SubGraphInnerNod lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffDol2InputsNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -72190,14 +93000,23 @@ StaticGraphStatus imageSubGraphTopology100214::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffDol2InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -72229,10 +93048,14 @@ StaticGraphStatus imageSubGraphTopology100214::configInnerNodes(SubGraphInnerNod /* * Graph 100215 */ -StaticGraph100215::StaticGraph100215(GraphConfiguration100215* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100215, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100215::StaticGraph100215(GraphConfiguration100215* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100215, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol2InputsWithGmvWithTnrNoSap] = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDol2InputsWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -72422,12 +93245,12 @@ StaticGraph100215::StaticGraph100215(GraphConfiguration100215* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDol2InputsWithGmvWithTnrNoSapOuterNode = &_lbffDol2InputsWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -72462,15 +93285,25 @@ StaticGraphStatus imageSubGraphTopology100215::configInnerNodes(SubGraphInnerNod lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffDol2InputsWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -72485,14 +93318,23 @@ StaticGraphStatus imageSubGraphTopology100215::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[8]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[9]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[10]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[11]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[17]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[18]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffDol2InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol2Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -72525,10 +93367,16 @@ StaticGraphStatus imageSubGraphTopology100215::configInnerNodes(SubGraphInnerNod /* * Graph 100216 */ -StaticGraph100216::StaticGraph100216(GraphConfiguration100216* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100216, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100216::StaticGraph100216(GraphConfiguration100216* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100216, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvNoTnrNoSap] = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -72707,14 +93555,14 @@ StaticGraph100216::StaticGraph100216(GraphConfiguration100216* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsNoGmvNoTnrNoSapOuterNode = &_lbffDol3InputsNoGmvNoTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -72751,15 +93599,25 @@ StaticGraphStatus imageSubGraphTopology100216::configInnerNodes(SubGraphInnerNod lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffDol3InputsNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -72774,14 +93632,23 @@ StaticGraphStatus imageSubGraphTopology100216::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[9]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[10]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[11]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[12]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[13]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffDol3InputsNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -72806,10 +93673,15 @@ StaticGraphStatus imageSubGraphTopology100216::configInnerNodes(SubGraphInnerNod /* * Graph 100217 */ -StaticGraph100217::StaticGraph100217(GraphConfiguration100217* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100217, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100217::StaticGraph100217(GraphConfiguration100217* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100217, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvNoTnrNoSap] = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -72988,13 +93860,13 @@ StaticGraph100217::StaticGraph100217(GraphConfiguration100217* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvNoTnrNoSapOuterNode = &_lbffDol3InputsWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -73030,15 +93902,25 @@ StaticGraphStatus imageSubGraphTopology100217::configInnerNodes(SubGraphInnerNod lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffDol3InputsWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -73053,14 +93935,23 @@ StaticGraphStatus imageSubGraphTopology100217::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[12]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[13]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[16]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[18]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -73090,10 +93981,16 @@ StaticGraphStatus imageSubGraphTopology100217::configInnerNodes(SubGraphInnerNod /* * Graph 100218 */ -StaticGraph100218::StaticGraph100218(GraphConfiguration100218* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100218, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100218::StaticGraph100218(GraphConfiguration100218* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100218, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsNoGmvWithTnrNoSap] = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwNntm] = &_swNntmOuterNode; + elementTypeToOuternode[GraphElementType::SwScaler] = &_swScalerOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -73302,14 +94199,14 @@ StaticGraph100218::StaticGraph100218(GraphConfiguration100218* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsNoGmvWithTnrNoSapOuterNode = &_lbffDol3InputsNoGmvWithTnrNoSapOuterNode; _imageSubGraph.swNntmOuterNode = &_swNntmOuterNode; _imageSubGraph.swScalerOuterNode = &_swScalerOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -73346,15 +94243,25 @@ StaticGraphStatus imageSubGraphTopology100218::configInnerNodes(SubGraphInnerNod lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 20 && + (subGraphLinks[20]->src == subGraphLinks[18]->src && + subGraphLinks[20]->srcTerminalId == subGraphLinks[18]->srcTerminalId && + subGraphLinks[20]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[20]->src != subGraphLinks[18]->src || + subGraphLinks[20]->srcTerminalId != subGraphLinks[18]->srcTerminalId)) && true) { lbffDol3InputsNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -73369,14 +94276,23 @@ StaticGraphStatus imageSubGraphTopology100218::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[9]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[10]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[11]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[12]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[13]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[17]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[19]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_nntm:terminal_connect_input + subGraphLinks[18]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[20]->isActive = !(lbffDol3InputsNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_nntm:terminal_connect_input + /* * Disable links with zero buffer size @@ -73408,10 +94324,15 @@ StaticGraphStatus imageSubGraphTopology100218::configInnerNodes(SubGraphInnerNod /* * Graph 100219 */ -StaticGraph100219::StaticGraph100219(GraphConfiguration100219* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100219, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100219::StaticGraph100219(GraphConfiguration100219* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100219, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffDolSmooth] = &_lbffDolSmoothOuterNode; + elementTypeToOuternode[GraphElementType::LbffDol3InputsWithGmvWithTnrNoSap] = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); _lbffDolSmoothOuterNode.Init(&_graphConfiguration.lbffDolSmoothOuterNodeConfiguration); @@ -73620,13 +94541,13 @@ StaticGraph100219::StaticGraph100219(GraphConfiguration100219* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; _imageSubGraph.lbffDolSmoothOuterNode = &_lbffDolSmoothOuterNode; _imageSubGraph.lbffDol3InputsWithGmvWithTnrNoSapOuterNode = &_lbffDol3InputsWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -73662,15 +94583,25 @@ StaticGraphStatus imageSubGraphTopology100219::configInnerNodes(SubGraphInnerNod lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && - subGraphLinks[21]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[19]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 21 && + (subGraphLinks[21]->src == subGraphLinks[19]->src && + subGraphLinks[21]->srcTerminalId == subGraphLinks[19]->srcTerminalId && + subGraphLinks[21]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[21]->src != subGraphLinks[19]->src || + subGraphLinks[21]->srcTerminalId != subGraphLinks[19]->srcTerminalId)) && true) { lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && - subGraphLinks[22]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 22 && + (subGraphLinks[22]->src == subGraphLinks[20]->src && + subGraphLinks[22]->srcTerminalId == subGraphLinks[20]->srcTerminalId && + subGraphLinks[22]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[22]->src != subGraphLinks[20]->src || + subGraphLinks[22]->srcTerminalId != subGraphLinks[20]->srcTerminalId)) && true) { lbffDol3InputsWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -73685,14 +94616,23 @@ StaticGraphStatus imageSubGraphTopology100219::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[9]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[10]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[11]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[12]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[13]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[19]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[21]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[20]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[22]->isActive = !(lbffDol3InputsWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Dol3Inputs_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -73725,12 +94665,16 @@ StaticGraphStatus imageSubGraphTopology100219::configInnerNodes(SubGraphInnerNod /* * Graph 100220 */ -StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100220, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100220, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrNoGmvNoTnrNoSap] = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvNoTnrNoSap] = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffRgbIrNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -73744,6 +94688,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -73754,6 +94699,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -73764,6 +94710,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -73776,6 +94723,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -73786,6 +94734,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -73796,6 +94745,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -73806,6 +94756,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -73816,6 +94767,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -73826,6 +94778,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -73836,6 +94789,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -73846,6 +94800,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -73856,6 +94811,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -73866,6 +94822,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -73877,6 +94834,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -73886,6 +94844,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -73895,6 +94854,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -73904,6 +94864,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -73913,6 +94874,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -73922,6 +94884,7 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -73931,17 +94894,19 @@ StaticGraph100220::StaticGraph100220(GraphConfiguration100220* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffRgbIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.lbffRgbIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.lbffRgbIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrNoGmvNoTnrNoSapOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -74042,13 +95007,13 @@ StaticGraphStatus imageSubGraphTopology100220::configInnerNodes(SubGraphInnerNod lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -74065,12 +95030,19 @@ StaticGraphStatus imageSubGraphTopology100220::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -74108,13 +95080,13 @@ StaticGraphStatus irSubGraphTopology100220::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -74128,7 +95100,7 @@ StaticGraphStatus irSubGraphTopology100220::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -74144,17 +95116,29 @@ StaticGraphStatus irSubGraphTopology100220::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -74197,13 +95181,13 @@ StaticGraphStatus image_irSubGraphTopology100220::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrNoGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 10 && subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 11 && subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -74217,7 +95201,7 @@ StaticGraphStatus image_irSubGraphTopology100220::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -74233,17 +95217,29 @@ StaticGraphStatus image_irSubGraphTopology100220::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[10]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[11]->isActive = !(lbffRgbIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[15]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -74274,12 +95270,17 @@ StaticGraphStatus image_irSubGraphTopology100220::configInnerNodes(SubGraphInner /* * Graph 100221 */ -StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100221, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100221, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrWithGmvNoTnrNoSap] = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvNoTnrNoSap] = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffRgbIrWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -74294,6 +95295,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -74304,6 +95306,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -74314,6 +95317,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -74326,6 +95330,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -74336,6 +95341,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -74346,6 +95352,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -74356,6 +95363,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -74366,6 +95374,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -74376,6 +95385,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -74386,6 +95396,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -74399,6 +95410,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destTerminalId = 17; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -74409,6 +95421,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 20; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -74419,6 +95432,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -74429,6 +95443,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -74441,6 +95456,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -74452,6 +95468,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -74461,6 +95478,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -74470,6 +95488,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[14] = link; _image_irSubGraph.links[17] = link; @@ -74481,6 +95500,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[15] = link; _image_irSubGraph.links[18] = link; @@ -74490,6 +95510,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[16] = link; _image_irSubGraph.links[19] = link; @@ -74499,6 +95520,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[17] = link; _image_irSubGraph.links[20] = link; @@ -74508,6 +95530,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[18] = link; _image_irSubGraph.links[21] = link; @@ -74517,6 +95540,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[19] = link; _image_irSubGraph.links[22] = link; @@ -74526,6 +95550,7 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[23] = link; @@ -74535,19 +95560,21 @@ StaticGraph100221::StaticGraph100221(GraphConfiguration100221* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffRgbIrWithGmvNoTnrNoSapOuterNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.lbffRgbIrWithGmvNoTnrNoSapOuterNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.lbffRgbIrWithGmvNoTnrNoSapOuterNode = &_lbffRgbIrWithGmvNoTnrNoSapOuterNode; _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvNoTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvNoTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -74650,15 +95677,25 @@ StaticGraphStatus imageSubGraphTopology100221::configInnerNodes(SubGraphInnerNod lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -74675,14 +95712,23 @@ StaticGraphStatus imageSubGraphTopology100221::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -74725,13 +95771,13 @@ StaticGraphStatus irSubGraphTopology100221::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -74745,7 +95791,7 @@ StaticGraphStatus irSubGraphTopology100221::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[20]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[20]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -74761,17 +95807,29 @@ StaticGraphStatus irSubGraphTopology100221::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -74819,15 +95877,15 @@ StaticGraphStatus image_irSubGraphTopology100221::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrWithGmvNoTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 12 && subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 13 && subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -74841,7 +95899,7 @@ StaticGraphStatus image_irSubGraphTopology100221::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[23]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[23]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions |= noMp; @@ -74857,19 +95915,33 @@ StaticGraphStatus image_irSubGraphTopology100221::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[13]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[21]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[23]->isActive = !(lbffRgbIrIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -74905,12 +95977,16 @@ StaticGraphStatus image_irSubGraphTopology100221::configInnerNodes(SubGraphInner /* * Graph 100222 */ -StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100222, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100222, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrNoGmvWithTnrNoSap] = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvWithTnrNoSap] = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffRgbIrNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -74924,6 +96000,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -74934,6 +96011,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -74944,6 +96022,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -74956,6 +96035,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -74966,6 +96046,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -74976,6 +96057,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -74986,6 +96068,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -74996,6 +96079,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -75006,6 +96090,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -75016,6 +96101,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -75029,6 +96115,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -75042,6 +96129,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -75055,6 +96143,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -75065,6 +96154,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -75075,6 +96165,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -75085,6 +96176,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -75096,6 +96188,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -75105,6 +96198,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -75114,6 +96208,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -75123,6 +96218,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -75132,6 +96228,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[20] = link; @@ -75144,6 +96241,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[21] = link; _image_irSubGraph.links[21] = link; @@ -75156,6 +96254,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[22] = link; _image_irSubGraph.links[22] = link; @@ -75168,6 +96267,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[23] = link; _image_irSubGraph.links[23] = link; @@ -75177,6 +96277,7 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[24] = link; _image_irSubGraph.links[24] = link; @@ -75186,17 +96287,19 @@ StaticGraph100222::StaticGraph100222(GraphConfiguration100222* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffRgbIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.lbffRgbIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.lbffRgbIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrNoGmvWithTnrNoSapOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -75297,13 +96400,13 @@ StaticGraphStatus imageSubGraphTopology100222::configInnerNodes(SubGraphInnerNod lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -75320,12 +96423,19 @@ StaticGraphStatus imageSubGraphTopology100222::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -75370,13 +96480,13 @@ StaticGraphStatus irSubGraphTopology100222::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -75390,7 +96500,7 @@ StaticGraphStatus irSubGraphTopology100222::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -75406,17 +96516,29 @@ StaticGraphStatus irSubGraphTopology100222::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -75469,13 +96591,13 @@ StaticGraphStatus image_irSubGraphTopology100222::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrNoGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 13 && subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 14 && subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -75489,7 +96611,7 @@ StaticGraphStatus image_irSubGraphTopology100222::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[24]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[24]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -75505,17 +96627,29 @@ StaticGraphStatus image_irSubGraphTopology100222::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[13]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[14]->isActive = !(lbffRgbIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[18]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -75556,12 +96690,17 @@ StaticGraphStatus image_irSubGraphTopology100222::configInnerNodes(SubGraphInner /* * Graph 100223 */ -StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100223, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100223, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) ,_irSubGraph(_sinkMappingConfiguration) ,_image_irSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrWithGmvWithTnrNoSap] = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; + elementTypeToOuternode[GraphElementType::LbffRgbIrIrNoGmvWithTnrNoSap] = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffRgbIrWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -75576,6 +96715,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 4; link->type = LinkType::Source2Node; + _imageSubGraph.links[0] = link; _irSubGraph.links[0] = link; _image_irSubGraph.links[0] = link; @@ -75586,6 +96726,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_isysWithCvOuterNode; link->destTerminalId = 2; link->type = LinkType::Source2Node; + _imageSubGraph.links[1] = link; _irSubGraph.links[1] = link; _image_irSubGraph.links[1] = link; @@ -75596,6 +96737,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 3; link->dest = GraphElementType::CvOutput; link->type = LinkType::Node2Sink; + _imageSubGraph.links[2] = link; _irSubGraph.links[2] = link; _image_irSubGraph.links[2] = link; @@ -75608,6 +96750,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _imageSubGraph.links[3] = link; _irSubGraph.links[3] = link; _image_irSubGraph.links[3] = link; @@ -75618,6 +96761,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _imageSubGraph.links[4] = link; _irSubGraph.links[4] = link; _image_irSubGraph.links[4] = link; @@ -75628,6 +96772,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 18; link->dest = GraphElementType::AwbSveOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[5] = link; _irSubGraph.links[5] = link; _image_irSubGraph.links[5] = link; @@ -75638,6 +96783,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::AeOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[6] = link; _irSubGraph.links[6] = link; _image_irSubGraph.links[6] = link; @@ -75648,6 +96794,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::AfStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[7] = link; _irSubGraph.links[7] = link; _image_irSubGraph.links[7] = link; @@ -75658,6 +96805,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::AwbStdOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[8] = link; _irSubGraph.links[8] = link; _image_irSubGraph.links[8] = link; @@ -75668,6 +96816,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::AwbSatOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[9] = link; _irSubGraph.links[9] = link; _image_irSubGraph.links[9] = link; @@ -75681,6 +96830,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 17; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[10] = link; _irSubGraph.links[10] = link; _image_irSubGraph.links[10] = link; @@ -75691,6 +96841,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 20; link->dest = GraphElementType::GmvMatchOut; link->type = LinkType::Node2Sink; + _imageSubGraph.links[11] = link; _irSubGraph.links[11] = link; _image_irSubGraph.links[11] = link; @@ -75704,6 +96855,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[12] = link; _irSubGraph.links[12] = link; _image_irSubGraph.links[12] = link; @@ -75717,6 +96869,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[13] = link; _irSubGraph.links[13] = link; _image_irSubGraph.links[13] = link; @@ -75730,6 +96883,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _imageSubGraph.links[14] = link; _irSubGraph.links[14] = link; _image_irSubGraph.links[14] = link; @@ -75740,6 +96894,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::ImageMp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[15] = link; _irSubGraph.links[15] = link; _image_irSubGraph.links[15] = link; @@ -75750,6 +96905,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 29; link->dest = GraphElementType::ImageDp; link->type = LinkType::Node2Sink; + _imageSubGraph.links[16] = link; _irSubGraph.links[16] = link; _image_irSubGraph.links[16] = link; @@ -75762,6 +96918,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[17] = link; _image_irSubGraph.links[17] = link; @@ -75773,6 +96930,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_swGdcOuterNode; link->destTerminalId = 0; link->type = LinkType::Node2Node; + _imageSubGraph.links[18] = link; _image_irSubGraph.links[18] = link; @@ -75782,6 +96940,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 1; link->dest = GraphElementType::ProcessedMain; link->type = LinkType::Node2Sink; + _imageSubGraph.links[19] = link; _image_irSubGraph.links[19] = link; @@ -75791,6 +96950,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 7; link->type = LinkType::Source2Node; + _irSubGraph.links[17] = link; _image_irSubGraph.links[20] = link; @@ -75802,6 +96962,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; link->destTerminalId = 4; link->type = LinkType::Node2Node; + _irSubGraph.links[18] = link; _image_irSubGraph.links[21] = link; @@ -75811,6 +96972,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 9; link->dest = GraphElementType::IrAeOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[19] = link; _image_irSubGraph.links[22] = link; @@ -75820,6 +96982,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 10; link->dest = GraphElementType::IrAfStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[20] = link; _image_irSubGraph.links[23] = link; @@ -75829,6 +96992,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 11; link->dest = GraphElementType::IrAwbStdOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[21] = link; _image_irSubGraph.links[24] = link; @@ -75838,6 +97002,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 12; link->dest = GraphElementType::IrAwbSatOut; link->type = LinkType::Node2Sink; + _irSubGraph.links[22] = link; _image_irSubGraph.links[25] = link; @@ -75850,6 +97015,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 25; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[23] = link; _image_irSubGraph.links[26] = link; @@ -75862,6 +97028,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 23; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[24] = link; _image_irSubGraph.links[27] = link; @@ -75874,6 +97041,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->destTerminalId = 22; link->type = LinkType::Node2Self; link->frameDelay = 1U; + _irSubGraph.links[25] = link; _image_irSubGraph.links[28] = link; @@ -75883,6 +97051,7 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf link->srcTerminalId = 28; link->dest = GraphElementType::IrMp; link->type = LinkType::Node2Sink; + _irSubGraph.links[26] = link; _image_irSubGraph.links[29] = link; @@ -75892,19 +97061,21 @@ StaticGraph100223::StaticGraph100223(GraphConfiguration100223* selectedGraphConf _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; } - // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffRgbIrWithGmvWithTnrNoSapOuterNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _irSubGraph.lbffRgbIrWithGmvWithTnrNoSapOuterNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; _irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; + _irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; _image_irSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _image_irSubGraph.lbffRgbIrWithGmvWithTnrNoSapOuterNode = &_lbffRgbIrWithGmvWithTnrNoSapOuterNode; _image_irSubGraph.swGdcOuterNode = &_swGdcOuterNode; _image_irSubGraph.lbffRgbIrIrNoGmvWithTnrNoSapOuterNode = &_lbffRgbIrIrNoGmvWithTnrNoSapOuterNode; - + _image_irSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // choose the selected sub graph if ( // image sink group @@ -76007,15 +97178,25 @@ StaticGraphStatus imageSubGraphTopology100223::configInnerNodes(SubGraphInnerNod lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -76032,14 +97213,23 @@ StaticGraphStatus imageSubGraphTopology100223::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -76085,13 +97275,13 @@ StaticGraphStatus irSubGraphTopology100223::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= (noPdaf); // active public options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -76105,7 +97295,7 @@ StaticGraphStatus irSubGraphTopology100223::configInnerNodes(SubGraphInnerNodeCo lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[26]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[26]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -76121,17 +97311,29 @@ StaticGraphStatus irSubGraphTopology100223::configInnerNodes(SubGraphInnerNodeCo * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[19]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[20]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[21]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[26]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -76185,15 +97387,15 @@ StaticGraphStatus image_irSubGraphTopology100223::configInnerNodes(SubGraphInner InnerNodeOptionsFlags lbffRgbIrWithGmvWithTnrNoSapInnerOptions = imagePublicInnerNodeConfiguration; // active public inner options according to sink mapping if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 15 && subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && subGraphLinks[17]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (numOfLinks > 16 && subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && subGraphLinks[18]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -76207,7 +97409,7 @@ StaticGraphStatus image_irSubGraphTopology100223::configInnerNodes(SubGraphInner lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noDp | noIr); // active public options according to sink mapping if ( - subGraphLinks[29]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[29]->linkConfiguration->bufferSize == 0) && true) { lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions |= noMp; @@ -76223,19 +97425,33 @@ StaticGraphStatus image_irSubGraphTopology100223::configInnerNodes(SubGraphInner * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sve_output -> awb_sve_out + subGraphLinks[6]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[7]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[8]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[9]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[15]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[17]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[16]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[18]->isActive = !(lbffRgbIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_RgbIr_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + subGraphLinks[22]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ir_ae_out + subGraphLinks[23]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> ir_af_std_out + subGraphLinks[24]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> ir_awb_std_out + subGraphLinks[25]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> ir_awb_sat_out + subGraphLinks[29]->isActive = !(lbffRgbIrIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_RgbIr_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> ir_mp + /* * Link enablement by private inner options @@ -76277,10 +97493,13 @@ StaticGraphStatus image_irSubGraphTopology100223::configInnerNodes(SubGraphInner /* * Graph 100224 */ -StaticGraph100224::StaticGraph100224(GraphConfiguration100224* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100224, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100224::StaticGraph100224(GraphConfiguration100224* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100224, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::WithCv] = &_withCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvNoTnrNoSap] = &_lbffBayerNoGmvNoTnrNoSapOuterNode; _withCvOuterNode.Init(&_graphConfiguration.withCvOuterNodeConfiguration); _lbffBayerNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -76365,10 +97584,10 @@ StaticGraph100224::StaticGraph100224(GraphConfiguration100224* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerNoGmvNoTnrNoSapOuterNode = &_lbffBayerNoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -76401,13 +97620,13 @@ StaticGraphStatus imageSubGraphTopology100224::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[6]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[6]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[7]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[7]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -76422,11 +97641,17 @@ StaticGraphStatus imageSubGraphTopology100224::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[6]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[7]->isActive = !(lbffBayerNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -76451,10 +97676,14 @@ StaticGraphStatus imageSubGraphTopology100224::configInnerNodes(SubGraphInnerNod /* * Graph 100240 */ -StaticGraph100240::StaticGraph100240(GraphConfiguration100240* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100240, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100240::StaticGraph100240(GraphConfiguration100240* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100240, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::WithCv] = &_withCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvNoTnrNoSap] = &_lbffBayerWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _withCvOuterNode.Init(&_graphConfiguration.withCvOuterNodeConfiguration); _lbffBayerWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -76582,11 +97811,11 @@ StaticGraph100240::StaticGraph100240(GraphConfiguration100240* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerWithGmvNoTnrNoSapOuterNode = &_lbffBayerWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -76620,15 +97849,25 @@ StaticGraphStatus imageSubGraphTopology100240::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[8]->linkConfiguration->bufferSize == 0 && - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[8]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 10 && + (subGraphLinks[10]->src == subGraphLinks[8]->src && + subGraphLinks[10]->srcTerminalId == subGraphLinks[8]->srcTerminalId && + subGraphLinks[10]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[10]->src != subGraphLinks[8]->src || + subGraphLinks[10]->srcTerminalId != subGraphLinks[8]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 11 && + (subGraphLinks[11]->src == subGraphLinks[9]->src && + subGraphLinks[11]->srcTerminalId == subGraphLinks[9]->srcTerminalId && + subGraphLinks[11]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[11]->src != subGraphLinks[9]->src || + subGraphLinks[11]->srcTerminalId != subGraphLinks[9]->srcTerminalId)) && true) { lbffBayerWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -76643,13 +97882,21 @@ StaticGraphStatus imageSubGraphTopology100240::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[8]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[9]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[11]->isActive = !(lbffBayerWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -76679,10 +97926,14 @@ StaticGraphStatus imageSubGraphTopology100240::configInnerNodes(SubGraphInnerNod /* * Graph 100241 */ -StaticGraph100241::StaticGraph100241(GraphConfiguration100241* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100241, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100241::StaticGraph100241(GraphConfiguration100241* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100241, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::WithCv] = &_withCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerWithGmvWithTnrNoSap] = &_lbffBayerWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _withCvOuterNode.Init(&_graphConfiguration.withCvOuterNodeConfiguration); _lbffBayerWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -76840,11 +98091,11 @@ StaticGraph100241::StaticGraph100241(GraphConfiguration100241* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerWithGmvWithTnrNoSapOuterNode = &_lbffBayerWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -76878,15 +98129,25 @@ StaticGraphStatus imageSubGraphTopology100241::configInnerNodes(SubGraphInnerNod lbffBayerWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffBayerWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -76901,13 +98162,21 @@ StaticGraphStatus imageSubGraphTopology100241::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[12]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffBayerWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -76940,10 +98209,13 @@ StaticGraphStatus imageSubGraphTopology100241::configInnerNodes(SubGraphInnerNod /* * Graph 100242 */ -StaticGraph100242::StaticGraph100242(GraphConfiguration100242* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100242, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100242::StaticGraph100242(GraphConfiguration100242* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100242, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::WithCv] = &_withCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerNoGmvWithTnrNoSap] = &_lbffBayerNoGmvWithTnrNoSapOuterNode; _withCvOuterNode.Init(&_graphConfiguration.withCvOuterNodeConfiguration); _lbffBayerNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -77058,10 +98330,10 @@ StaticGraph100242::StaticGraph100242(GraphConfiguration100242* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.lbffBayerNoGmvWithTnrNoSapOuterNode = &_lbffBayerNoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -77094,13 +98366,13 @@ StaticGraphStatus imageSubGraphTopology100242::configInnerNodes(SubGraphInnerNod lbffBayerNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffBayerNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -77115,11 +98387,17 @@ StaticGraphStatus imageSubGraphTopology100242::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[2]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[3]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[4]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[5]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffBayerNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -77151,10 +98429,13 @@ StaticGraphStatus imageSubGraphTopology100242::configInnerNodes(SubGraphInnerNod /* * Graph 100227 */ -StaticGraph100227::StaticGraph100227(GraphConfiguration100227* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100227, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100227::StaticGraph100227(GraphConfiguration100227* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100227, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrNoGmvNoTnrNoSap] = &_lbffIrNoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffIrNoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrNoGmvNoTnrNoSapOuterNodeConfiguration); @@ -77248,11 +98529,11 @@ StaticGraph100227::StaticGraph100227(GraphConfiguration100227* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffIrNoGmvNoTnrNoSapOuterNode = &_lbffIrNoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -77286,13 +98567,13 @@ StaticGraphStatus imageSubGraphTopology100227::configInnerNodes(SubGraphInnerNod lbffIrNoGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[9]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[9]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[10]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[10]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvNoTnrNoSapInnerOptions |= noDp; @@ -77307,11 +98588,17 @@ StaticGraphStatus imageSubGraphTopology100227::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[9]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[10]->isActive = !(lbffIrNoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Ir_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -77336,10 +98623,14 @@ StaticGraphStatus imageSubGraphTopology100227::configInnerNodes(SubGraphInnerNod /* * Graph 100228 */ -StaticGraph100228::StaticGraph100228(GraphConfiguration100228* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100228, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100228::StaticGraph100228(GraphConfiguration100228* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100228, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrWithGmvNoTnrNoSap] = &_lbffIrWithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffIrWithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrWithGmvNoTnrNoSapOuterNodeConfiguration); @@ -77476,12 +98767,12 @@ StaticGraph100228::StaticGraph100228(GraphConfiguration100228* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffIrWithGmvNoTnrNoSapOuterNode = &_lbffIrWithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -77516,15 +98807,25 @@ StaticGraphStatus imageSubGraphTopology100228::configInnerNodes(SubGraphInnerNod lbffIrWithGmvNoTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 13 && + (subGraphLinks[13]->src == subGraphLinks[11]->src && + subGraphLinks[13]->srcTerminalId == subGraphLinks[11]->srcTerminalId && + subGraphLinks[13]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[13]->src != subGraphLinks[11]->src || + subGraphLinks[13]->srcTerminalId != subGraphLinks[11]->srcTerminalId)) && true) { lbffIrWithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 14 && + (subGraphLinks[14]->src == subGraphLinks[12]->src && + subGraphLinks[14]->srcTerminalId == subGraphLinks[12]->srcTerminalId && + subGraphLinks[14]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[14]->src != subGraphLinks[12]->src || + subGraphLinks[14]->srcTerminalId != subGraphLinks[12]->srcTerminalId)) && true) { lbffIrWithGmvNoTnrNoSapInnerOptions |= noDp; @@ -77539,13 +98840,21 @@ StaticGraphStatus imageSubGraphTopology100228::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[11]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[12]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[14]->isActive = !(lbffIrWithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -77575,10 +98884,13 @@ StaticGraphStatus imageSubGraphTopology100228::configInnerNodes(SubGraphInnerNod /* * Graph 100229 */ -StaticGraph100229::StaticGraph100229(GraphConfiguration100229* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100229, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100229::StaticGraph100229(GraphConfiguration100229* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100229, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrNoGmvWithTnrNoSap] = &_lbffIrNoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffIrNoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrNoGmvWithTnrNoSapOuterNodeConfiguration); @@ -77702,11 +99014,11 @@ StaticGraph100229::StaticGraph100229(GraphConfiguration100229* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffIrNoGmvWithTnrNoSapOuterNode = &_lbffIrNoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -77740,13 +99052,13 @@ StaticGraphStatus imageSubGraphTopology100229::configInnerNodes(SubGraphInnerNod lbffIrNoGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && true) { lbffIrNoGmvWithTnrNoSapInnerOptions |= noDp; @@ -77761,11 +99073,17 @@ StaticGraphStatus imageSubGraphTopology100229::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[12]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[13]->isActive = !(lbffIrNoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Ir_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -77797,10 +99115,14 @@ StaticGraphStatus imageSubGraphTopology100229::configInnerNodes(SubGraphInnerNod /* * Graph 100230 */ -StaticGraph100230::StaticGraph100230(GraphConfiguration100230* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100230, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100230::StaticGraph100230(GraphConfiguration100230* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100230, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffIrWithGmvWithTnrNoSap] = &_lbffIrWithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffIrWithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffIrWithGmvWithTnrNoSapOuterNodeConfiguration); @@ -77967,12 +99289,12 @@ StaticGraph100230::StaticGraph100230(GraphConfiguration100230* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffIrWithGmvWithTnrNoSapOuterNode = &_lbffIrWithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -78007,15 +99329,25 @@ StaticGraphStatus imageSubGraphTopology100230::configInnerNodes(SubGraphInnerNod lbffIrWithGmvWithTnrNoSapInnerOptions |= (noPdaf | noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffIrWithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 17 && + (subGraphLinks[17]->src == subGraphLinks[15]->src && + subGraphLinks[17]->srcTerminalId == subGraphLinks[15]->srcTerminalId && + subGraphLinks[17]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[17]->src != subGraphLinks[15]->src || + subGraphLinks[17]->srcTerminalId != subGraphLinks[15]->srcTerminalId)) && true) { lbffIrWithGmvWithTnrNoSapInnerOptions |= noDp; @@ -78030,13 +99362,21 @@ StaticGraphStatus imageSubGraphTopology100230::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[5]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[6]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[7]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[8]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[14]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[16]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[15]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[17]->isActive = !(lbffIrWithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Ir_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -78069,10 +99409,13 @@ StaticGraphStatus imageSubGraphTopology100230::configInnerNodes(SubGraphInnerNod /* * Graph 100231 */ -StaticGraph100231::StaticGraph100231(GraphConfiguration100231* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100231, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100231::StaticGraph100231(GraphConfiguration100231* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100231, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration); @@ -78183,11 +99526,11 @@ StaticGraph100231::StaticGraph100231(GraphConfiguration100231* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -78221,13 +99564,13 @@ StaticGraphStatus imageSubGraphTopology100231::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[11]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[11]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[12]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[12]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions |= noDp; @@ -78242,12 +99585,19 @@ StaticGraphStatus imageSubGraphTopology100231::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[11]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[12]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -78277,10 +99627,14 @@ StaticGraphStatus imageSubGraphTopology100231::configInnerNodes(SubGraphInnerNod /* * Graph 100232 */ -StaticGraph100232::StaticGraph100232(GraphConfiguration100232* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100232, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100232::StaticGraph100232(GraphConfiguration100232* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100232, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap] = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration); @@ -78434,12 +99788,12 @@ StaticGraph100232::StaticGraph100232(GraphConfiguration100232* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -78474,15 +99828,25 @@ StaticGraphStatus imageSubGraphTopology100232::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[13]->linkConfiguration->bufferSize == 0 && - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[13]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 15 && + (subGraphLinks[15]->src == subGraphLinks[13]->src && + subGraphLinks[15]->srcTerminalId == subGraphLinks[13]->srcTerminalId && + subGraphLinks[15]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[15]->src != subGraphLinks[13]->src || + subGraphLinks[15]->srcTerminalId != subGraphLinks[13]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 16 && + (subGraphLinks[16]->src == subGraphLinks[14]->src && + subGraphLinks[16]->srcTerminalId == subGraphLinks[14]->srcTerminalId && + subGraphLinks[16]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[16]->src != subGraphLinks[14]->src || + subGraphLinks[16]->srcTerminalId != subGraphLinks[14]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions |= noDp; @@ -78497,14 +99861,23 @@ StaticGraphStatus imageSubGraphTopology100232::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[13]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_NoTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -78535,10 +99908,13 @@ StaticGraphStatus imageSubGraphTopology100232::configInnerNodes(SubGraphInnerNod /* * Graph 100233 */ -StaticGraph100233::StaticGraph100233(GraphConfiguration100233* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100233, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100233::StaticGraph100233(GraphConfiguration100233* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100233, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration); @@ -78679,11 +100055,11 @@ StaticGraph100233::StaticGraph100233(GraphConfiguration100233* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -78717,13 +100093,13 @@ StaticGraphStatus imageSubGraphTopology100233::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[14]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[14]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[15]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[15]->linkConfiguration->bufferSize == 0) && true) { lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions |= noDp; @@ -78738,12 +100114,19 @@ StaticGraphStatus imageSubGraphTopology100233::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[14]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[15]->isActive = !(lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_NoGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + /* * Disable links with zero buffer size @@ -78776,10 +100159,14 @@ StaticGraphStatus imageSubGraphTopology100233::configInnerNodes(SubGraphInnerNod /* * Graph 100234 */ -StaticGraph100234::StaticGraph100234(GraphConfiguration100234* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100234, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100234::StaticGraph100234(GraphConfiguration100234* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100234, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _imageSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; + elementTypeToOuternode[GraphElementType::LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap] = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + elementTypeToOuternode[GraphElementType::SwGdc] = &_swGdcOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); _lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode.Init(&_graphConfiguration.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration); @@ -78963,12 +100350,12 @@ StaticGraph100234::StaticGraph100234(GraphConfiguration100234* selectedGraphConf // Assign link to sub-graph _imageSubGraph.links[i] = &_graphLinks[i]; } - + _imageSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _imageSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; _imageSubGraph.lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode = &_lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; _imageSubGraph.swGdcOuterNode = &_swGdcOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_imageSubGraph; @@ -79003,15 +100390,25 @@ StaticGraphStatus imageSubGraphTopology100234::configInnerNodes(SubGraphInnerNod lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= (noIr); // active public options according to sink mapping if ( - subGraphLinks[16]->linkConfiguration->bufferSize == 0 && - subGraphLinks[18]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[16]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 18 && + (subGraphLinks[18]->src == subGraphLinks[16]->src && + subGraphLinks[18]->srcTerminalId == subGraphLinks[16]->srcTerminalId && + subGraphLinks[18]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[18]->src != subGraphLinks[16]->src || + subGraphLinks[18]->srcTerminalId != subGraphLinks[16]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= noMp; } if ( - subGraphLinks[17]->linkConfiguration->bufferSize == 0 && - subGraphLinks[19]->linkConfiguration->bufferSize == 0 && + (subGraphLinks[17]->linkConfiguration->bufferSize == 0) && + (numOfLinks > 19 && + (subGraphLinks[19]->src == subGraphLinks[17]->src && + subGraphLinks[19]->srcTerminalId == subGraphLinks[17]->srcTerminalId && + subGraphLinks[19]->linkConfiguration->bufferSize == 0) || + (subGraphLinks[19]->src != subGraphLinks[17]->src || + subGraphLinks[19]->srcTerminalId != subGraphLinks[17]->srcTerminalId)) && true) { lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions |= noDp; @@ -79026,14 +100423,23 @@ StaticGraphStatus imageSubGraphTopology100234::configInnerNodes(SubGraphInnerNod * Link enablement by public inner options */ subGraphLinks[7]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ae_output -> ae_out + subGraphLinks[8]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_af_std_output -> af_std_out + subGraphLinks[9]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_std_output -> awb_std_out + subGraphLinks[10]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & no3A); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_awb_sat_output -> awb_sat_out + subGraphLinks[5]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noPdaf); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_pdaf_output -> pdaf_out + subGraphLinks[16]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> image_mp + subGraphLinks[18]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noMp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_mp_output -> sw_gdc:terminal_connect_input + subGraphLinks[17]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> image_dp + subGraphLinks[19]->isActive = !(lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapInnerOptions & noDp); // lbff_Bayer_Pdaf3asPdaf2_WithGmv_WithTnr_NoSap:terminal_connect_ofs_dp_output -> sw_gdc:terminal_connect_input + /* * Disable links with zero buffer size @@ -79067,10 +100473,12 @@ StaticGraphStatus imageSubGraphTopology100234::configInnerNodes(SubGraphInnerNod /* * Graph 100026 */ -StaticGraph100026::StaticGraph100026(GraphConfiguration100026* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100026, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100026::StaticGraph100026(GraphConfiguration100026* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100026, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::Isys] = &_isysOuterNode; _isysOuterNode.Init(&_graphConfiguration.isysOuterNodeConfiguration); @@ -79098,10 +100506,10 @@ StaticGraph100026::StaticGraph100026(GraphConfiguration100026* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysOuterNode = &_isysOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79114,10 +100522,12 @@ StaticGraph100026::~StaticGraph100026() /* * Graph 100059 */ -StaticGraph100059::StaticGraph100059(GraphConfiguration100059* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100059, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100059::StaticGraph100059(GraphConfiguration100059* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100059, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); @@ -79159,10 +100569,10 @@ StaticGraph100059::StaticGraph100059(GraphConfiguration100059* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79175,10 +100585,12 @@ StaticGraph100059::~StaticGraph100059() /* * Graph 100035 */ -StaticGraph100035::StaticGraph100035(GraphConfiguration100035* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100035, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100035::StaticGraph100035(GraphConfiguration100035* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100035, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDol] = &_isysDolOuterNode; _isysDolOuterNode.Init(&_graphConfiguration.isysDolOuterNodeConfiguration); @@ -79220,10 +100632,10 @@ StaticGraph100035::StaticGraph100035(GraphConfiguration100035* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysDolOuterNode = &_isysDolOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79236,10 +100648,12 @@ StaticGraph100035::~StaticGraph100035() /* * Graph 100036 */ -StaticGraph100036::StaticGraph100036(GraphConfiguration100036* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100036, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100036::StaticGraph100036(GraphConfiguration100036* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100036, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2] = &_isysPdaf2OuterNode; _isysPdaf2OuterNode.Init(&_graphConfiguration.isysPdaf2OuterNodeConfiguration); @@ -79281,10 +100695,10 @@ StaticGraph100036::StaticGraph100036(GraphConfiguration100036* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysPdaf2OuterNode = &_isysPdaf2OuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79297,10 +100711,12 @@ StaticGraph100036::~StaticGraph100036() /* * Graph 100037 */ -StaticGraph100037::StaticGraph100037(GraphConfiguration100037* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100037, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100037::StaticGraph100037(GraphConfiguration100037* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100037, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); @@ -79342,10 +100758,10 @@ StaticGraph100037::StaticGraph100037(GraphConfiguration100037* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79358,10 +100774,12 @@ StaticGraph100037::~StaticGraph100037() /* * Graph 100058 */ -StaticGraph100058::StaticGraph100058(GraphConfiguration100058* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100058, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100058::StaticGraph100058(GraphConfiguration100058* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100058, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysWithCv] = &_isysWithCvOuterNode; _isysWithCvOuterNode.Init(&_graphConfiguration.isysWithCvOuterNodeConfiguration); @@ -79403,10 +100821,10 @@ StaticGraph100058::StaticGraph100058(GraphConfiguration100058* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysWithCvOuterNode = &_isysWithCvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79419,10 +100837,12 @@ StaticGraph100058::~StaticGraph100058() /* * Graph 100038 */ -StaticGraph100038::StaticGraph100038(GraphConfiguration100038* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100038, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100038::StaticGraph100038(GraphConfiguration100038* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100038, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); @@ -79478,10 +100898,10 @@ StaticGraph100038::StaticGraph100038(GraphConfiguration100038* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; @@ -79491,13 +100911,92 @@ StaticGraph100038::StaticGraph100038(GraphConfiguration100038* selectedGraphConf StaticGraph100038::~StaticGraph100038() { } +/* + * Graph 101138 + */ +StaticGraph101138::StaticGraph101138(GraphConfiguration101138* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 101138, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), + _rawSubGraph(_sinkMappingConfiguration) +{ + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysDolWithCv] = &_isysDolWithCvOuterNode; + + _isysDolWithCvOuterNode.Init(&_graphConfiguration.isysDolWithCvOuterNodeConfiguration); + + // Declare all the links in the graph + GraphLink* link = nullptr; + link = &_graphLinks[0]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 4; + link->type = LinkType::Source2Node; + + link = &_graphLinks[1]; + link->src = GraphElementType::SensorDolLongExposure; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 8; + link->type = LinkType::Source2Node; + + link = &_graphLinks[2]; + link->src = GraphElementType::Sensor; + link->dest = GraphElementType::IsysDolWithCv; + link->destNode = &_isysDolWithCvOuterNode; + link->destTerminalId = 2; + link->type = LinkType::Source2Node; + + link = &_graphLinks[3]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 5; + link->dest = GraphElementType::RawIsys; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[4]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 9; + link->dest = GraphElementType::RawIsysDolLong; + link->type = LinkType::Node2Sink; + + link = &_graphLinks[5]; + link->src = GraphElementType::IsysDolWithCv; + link->srcNode = &_isysDolWithCvOuterNode; + link->srcTerminalId = 3; + link->dest = GraphElementType::RawIsysCv; + link->type = LinkType::Node2Sink; + + for (uint8_t i = 0; i < 6; ++i) + { + // apply link configuration + _graphLinks[i].linkConfiguration = &_graphConfiguration.linkConfigurations[i]; + + // Assign link to sub-graph + _rawSubGraph.links[i] = &_graphLinks[i]; + } + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; + // add nodes for sub graph + _rawSubGraph.isysDolWithCvOuterNode = &_isysDolWithCvOuterNode; + + // choose the selected sub graph + _selectedGraphTopology = &_rawSubGraph; + + // logical node IDs + _rawSubGraph.isysDolWithCvOuterNode->contextId = 0; +} +StaticGraph101138::~StaticGraph101138() +{ +} /* * Graph 100039 */ -StaticGraph100039::StaticGraph100039(GraphConfiguration100039* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation) : - IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100039, selectedSettingsId, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), +StaticGraph100039::StaticGraph100039(GraphConfiguration100039* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation) : + IStaticGraphConfig(selectedSensorMode, sinkMappingConfiguration, 100039, selectedSettingsId, additonalFeaturesBit, configurationInformation), _graphConfiguration(*selectedGraphConfiguration), _rawSubGraph(_sinkMappingConfiguration) { + std::map elementTypeToOuternode; + elementTypeToOuternode[GraphElementType::IsysPdaf2WithCv] = &_isysPdaf2WithCvOuterNode; _isysPdaf2WithCvOuterNode.Init(&_graphConfiguration.isysPdaf2WithCvOuterNodeConfiguration); @@ -79553,10 +101052,10 @@ StaticGraph100039::StaticGraph100039(GraphConfiguration100039* selectedGraphConf // Assign link to sub-graph _rawSubGraph.links[i] = &_graphLinks[i]; } - + _rawSubGraph.numOfLinks = _graphConfiguration.numberOfActualLinks; // add nodes for sub graph _rawSubGraph.isysPdaf2WithCvOuterNode = &_isysPdaf2WithCvOuterNode; - + // choose the selected sub graph _selectedGraphTopology = &_rawSubGraph; diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.h b/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.h index 3db52a4..6fccb19 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphAutogen.h @@ -34,10 +34,14 @@ #include "Ipu8StaticGraphTypesAutogen.h" #include "Ipu8StaticGraphBinaryAutogen.h" +#define SUPPORT_HISTORY_CHANGE_BASED_ON_GRAPH 0 + #define SUPPORT_KEY_RESOLUTIONS 0 #define SUPPORT_FRAGMENTS 1 +#define SUPPORT_TM_SWITCH 1 + enum InnerNodeOption { None = 0, @@ -60,6 +64,11 @@ struct KernelFragments { StaticGraphFragmentDesc fragmentDescriptors[4]; }; +struct TuningModeMap { + uint8_t key = 0; + uint8_t id = 0; +}; + class OuterNode { public: /** @@ -81,6 +90,8 @@ class OuterNode { uint64_t disabledRunKernelsBitmapNotVanished[2] = {}; VanishOption fragmentVanishStatus[4] = {}; uint16_t* kernelListInConfigOrder = {}; + TuningModeMap nodeTuningModes[2] = {}; + OuterNode() {} ~OuterNode(); @@ -88,6 +99,7 @@ class OuterNode { NodeTypes nodeType, uint32_t kernelCount, uint32_t operationMode, + TuningModeMap tuningModes[2], uint32_t streamId, uint8_t nodeNumberOfFragments); @@ -146,11 +158,12 @@ class IStaticGraphConfig { public: virtual ~IStaticGraphConfig(){} - IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + IStaticGraphConfig(SensorMode* selectedSensorMode, VirtualSinkMapping* sinkMappingConfiguration, int32_t graphId, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); StaticGraphStatus getGraphTopology(GraphTopology** topology); StaticGraphStatus getSensorMode(SensorMode** sensorMode); StaticGraphStatus getGraphId(int32_t* id); StaticGraphStatus getSettingsId(int32_t* id); + StaticGraphStatus getAdditionalFeaturesBit(int32_t* featuresBit); StaticGraphStatus getVirtualSinkConnection(VirtualSink& virtualSink, HwSink* hwSink); StaticGraphStatus getConfigurationInformation(StaticGraphConfigurationInformation** configurationInformation); @@ -162,6 +175,7 @@ class IStaticGraphConfig private: int32_t _graphId; int32_t _settingsId; + int32_t _additonalFeaturesBit; VirtualSinkMapping _selectedSinkMappingConfiguration; }; @@ -171,6 +185,7 @@ struct IsysOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[1]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[1]; @@ -182,6 +197,7 @@ struct LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[20]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[17]; @@ -190,314 +206,315 @@ struct LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration uint8_t systemApiConfiguration[2168]; }; -struct LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration +struct SwB2bInOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[24]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[21]; - StaticGraphKernelRes resolutionHistories[17]; - StaticGraphKernelBppConfiguration bppInfos[38]; - uint8_t systemApiConfiguration[2860]; }; -struct SwGdcOuterNodeConfiguration +struct SwB2bOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[1]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[1]; StaticGraphKernelRes resolutionHistories[1]; StaticGraphKernelBppConfiguration bppInfos[1]; + uint8_t systemApiConfiguration[20]; }; -struct LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration +struct SwB2bOutOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[31]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[25]; - StaticGraphKernelRes resolutionHistories[19]; - StaticGraphKernelBppConfiguration bppInfos[46]; - uint8_t systemApiConfiguration[3498]; }; -struct LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration +struct SwRemosaicInOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[35]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[29]; - StaticGraphKernelRes resolutionHistories[23]; - StaticGraphKernelBppConfiguration bppInfos[50]; - uint8_t systemApiConfiguration[4190]; }; -struct IsysWithCvOuterNodeConfiguration +struct SwRemosaicOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[4]; + KernelFragments fragmentConfigurations[1]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[3]; - StaticGraphKernelRes resolutionHistories[4]; - StaticGraphKernelBppConfiguration bppInfos[4]; - uint8_t systemApiConfiguration[54]; + StaticGraphKernelRes resolutionHistories[1]; + StaticGraphKernelBppConfiguration bppInfos[1]; }; -struct SwSegnetOuterNodeConfiguration +struct SwRemosaicOutOuterNodeConfiguration { uint8_t numberOfFragments = 0; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; }; -struct LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration +struct SwAinrInOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[51]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[41]; - StaticGraphKernelRes resolutionHistories[39]; - StaticGraphKernelBppConfiguration bppInfos[62]; - uint8_t systemApiConfiguration[5510]; }; -struct SwScalerOuterNodeConfiguration +struct SwAinrOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; +}; + +struct SwAinrOutOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; +}; + +struct SwGdcInOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; +}; + +struct SwGdcOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[1]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[1]; StaticGraphKernelRes resolutionHistories[1]; StaticGraphKernelBppConfiguration bppInfos[1]; - uint8_t systemApiConfiguration[12]; +}; + +struct SwGdcOutOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; +}; + +struct SwNntmInOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; }; struct SwNntmOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[1]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionHistories[1]; StaticGraphKernelBppConfiguration bppInfos[1]; - uint8_t systemApiConfiguration[5]; }; -struct LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration +struct SwNntmOutOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[47]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[37]; - StaticGraphKernelRes resolutionHistories[35]; - StaticGraphKernelBppConfiguration bppInfos[58]; - uint8_t systemApiConfiguration[4818]; }; -struct IsysPdaf2WithCvOuterNodeConfiguration +struct SwImvInOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[5]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[4]; - StaticGraphKernelRes resolutionHistories[5]; - StaticGraphKernelBppConfiguration bppInfos[5]; - uint8_t systemApiConfiguration[54]; }; -struct LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration +struct SwImvOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[51]; + KernelFragments fragmentConfigurations[2]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[41]; - StaticGraphKernelRes resolutionHistories[39]; - StaticGraphKernelBppConfiguration bppInfos[62]; - uint8_t systemApiConfiguration[5290]; + StaticGraphKernelRes resolutionInfos[2]; + StaticGraphKernelRes resolutionHistories[2]; + StaticGraphKernelBppConfiguration bppInfos[2]; + uint8_t systemApiConfiguration[12]; }; -struct LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration +struct SwImvOutOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[55]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[45]; - StaticGraphKernelRes resolutionHistories[43]; - StaticGraphKernelBppConfiguration bppInfos[66]; - uint8_t systemApiConfiguration[5982]; }; -struct LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration +struct SwScalerInOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[50]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[40]; - StaticGraphKernelRes resolutionHistories[37]; - StaticGraphKernelBppConfiguration bppInfos[61]; - uint8_t systemApiConfiguration[5070]; }; -struct LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration +struct SwScalerOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[52]; + KernelFragments fragmentConfigurations[1]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[42]; - StaticGraphKernelRes resolutionHistories[39]; - StaticGraphKernelBppConfiguration bppInfos[63]; - uint8_t systemApiConfiguration[5510]; + StaticGraphKernelRes resolutionInfos[1]; + StaticGraphKernelRes resolutionHistories[1]; + StaticGraphKernelBppConfiguration bppInfos[1]; + uint8_t systemApiConfiguration[12]; }; -struct IsysPdaf2OuterNodeConfiguration +struct SwScalerOutOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[2]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[2]; - StaticGraphKernelRes resolutionHistories[2]; - StaticGraphKernelBppConfiguration bppInfos[2]; }; -struct LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[24]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[21]; StaticGraphKernelRes resolutionHistories[17]; StaticGraphKernelBppConfiguration bppInfos[38]; - uint8_t systemApiConfiguration[2640]; + uint8_t systemApiConfiguration[2860]; }; -struct LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[28]; + KernelFragments fragmentConfigurations[31]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[25]; - StaticGraphKernelRes resolutionHistories[21]; - StaticGraphKernelBppConfiguration bppInfos[42]; - uint8_t systemApiConfiguration[3332]; + StaticGraphKernelRes resolutionHistories[19]; + StaticGraphKernelBppConfiguration bppInfos[46]; + uint8_t systemApiConfiguration[3498]; }; -struct LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[35]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[29]; StaticGraphKernelRes resolutionHistories[23]; StaticGraphKernelBppConfiguration bppInfos[50]; - uint8_t systemApiConfiguration[3970]; -}; - -struct LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration -{ - uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[39]; - uint32_t streamId = 0; - uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[33]; - StaticGraphKernelRes resolutionHistories[27]; - StaticGraphKernelBppConfiguration bppInfos[54]; - uint8_t systemApiConfiguration[4662]; + uint8_t systemApiConfiguration[4190]; }; -struct LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration +struct IsysWithCvOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[55]; + KernelFragments fragmentConfigurations[4]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[45]; - StaticGraphKernelRes resolutionHistories[43]; - StaticGraphKernelBppConfiguration bppInfos[66]; - uint8_t systemApiConfiguration[5982]; + StaticGraphKernelRes resolutionInfos[3]; + StaticGraphKernelRes resolutionHistories[4]; + StaticGraphKernelBppConfiguration bppInfos[4]; + uint8_t systemApiConfiguration[54]; }; -struct LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration +struct SwSegnetOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[23]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[20]; - StaticGraphKernelRes resolutionHistories[15]; - StaticGraphKernelBppConfiguration bppInfos[37]; - uint8_t systemApiConfiguration[2420]; }; -struct LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[27]; + KernelFragments fragmentConfigurations[31]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[24]; - StaticGraphKernelRes resolutionHistories[19]; - StaticGraphKernelBppConfiguration bppInfos[41]; - uint8_t systemApiConfiguration[3112]; + StaticGraphKernelRes resolutionInfos[25]; + StaticGraphKernelRes resolutionHistories[24]; + StaticGraphKernelBppConfiguration bppInfos[42]; + uint8_t systemApiConfiguration[3048]; }; -struct LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[34]; + KernelFragments fragmentConfigurations[35]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[28]; - StaticGraphKernelRes resolutionHistories[21]; - StaticGraphKernelBppConfiguration bppInfos[49]; - uint8_t systemApiConfiguration[3750]; + StaticGraphKernelRes resolutionInfos[29]; + StaticGraphKernelRes resolutionHistories[28]; + StaticGraphKernelBppConfiguration bppInfos[46]; + uint8_t systemApiConfiguration[3740]; }; -struct LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[38]; + KernelFragments fragmentConfigurations[47]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[32]; - StaticGraphKernelRes resolutionHistories[25]; - StaticGraphKernelBppConfiguration bppInfos[53]; - uint8_t systemApiConfiguration[4442]; + StaticGraphKernelRes resolutionInfos[37]; + StaticGraphKernelRes resolutionHistories[35]; + StaticGraphKernelBppConfiguration bppInfos[58]; + uint8_t systemApiConfiguration[4818]; }; -struct LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration +struct LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[54]; + KernelFragments fragmentConfigurations[51]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[44]; - StaticGraphKernelRes resolutionHistories[41]; - StaticGraphKernelBppConfiguration bppInfos[65]; - uint8_t systemApiConfiguration[5762]; + StaticGraphKernelRes resolutionInfos[41]; + StaticGraphKernelRes resolutionHistories[39]; + StaticGraphKernelBppConfiguration bppInfos[62]; + uint8_t systemApiConfiguration[5510]; }; -struct IsysDolOuterNodeConfiguration +struct IsysPdaf2OuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[2]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[2]; @@ -505,442 +522,530 @@ struct IsysDolOuterNodeConfiguration StaticGraphKernelBppConfiguration bppInfos[2]; }; -struct LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[22]; + KernelFragments fragmentConfigurations[24]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[19]; - StaticGraphKernelRes resolutionHistories[15]; - StaticGraphKernelBppConfiguration bppInfos[37]; - uint8_t systemApiConfiguration[2613]; + StaticGraphKernelRes resolutionInfos[21]; + StaticGraphKernelRes resolutionHistories[17]; + StaticGraphKernelBppConfiguration bppInfos[38]; + uint8_t systemApiConfiguration[2640]; }; -struct LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[26]; + KernelFragments fragmentConfigurations[28]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[23]; - StaticGraphKernelRes resolutionHistories[19]; - StaticGraphKernelBppConfiguration bppInfos[41]; - uint8_t systemApiConfiguration[3305]; + StaticGraphKernelRes resolutionInfos[25]; + StaticGraphKernelRes resolutionHistories[21]; + StaticGraphKernelBppConfiguration bppInfos[42]; + uint8_t systemApiConfiguration[3332]; }; -struct LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[33]; + KernelFragments fragmentConfigurations[35]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[27]; - StaticGraphKernelRes resolutionHistories[21]; - StaticGraphKernelBppConfiguration bppInfos[49]; - uint8_t systemApiConfiguration[3943]; + StaticGraphKernelRes resolutionInfos[29]; + StaticGraphKernelRes resolutionHistories[23]; + StaticGraphKernelBppConfiguration bppInfos[50]; + uint8_t systemApiConfiguration[3970]; }; -struct LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[37]; + KernelFragments fragmentConfigurations[39]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[31]; - StaticGraphKernelRes resolutionHistories[25]; - StaticGraphKernelBppConfiguration bppInfos[53]; - uint8_t systemApiConfiguration[4635]; + StaticGraphKernelRes resolutionInfos[33]; + StaticGraphKernelRes resolutionHistories[27]; + StaticGraphKernelBppConfiguration bppInfos[54]; + uint8_t systemApiConfiguration[4662]; }; -struct LbffDolSmoothOuterNodeConfiguration +struct IsysPdaf2WithCvOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[3]; + KernelFragments fragmentConfigurations[5]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[2]; - StaticGraphKernelRes resolutionHistories[2]; - StaticGraphKernelBppConfiguration bppInfos[8]; - uint8_t systemApiConfiguration[476]; + StaticGraphKernelRes resolutionInfos[4]; + StaticGraphKernelRes resolutionHistories[5]; + StaticGraphKernelBppConfiguration bppInfos[5]; + uint8_t systemApiConfiguration[54]; }; -struct LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[23]; + KernelFragments fragmentConfigurations[35]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[20]; - StaticGraphKernelRes resolutionHistories[16]; - StaticGraphKernelBppConfiguration bppInfos[38]; - uint8_t systemApiConfiguration[2833]; + StaticGraphKernelRes resolutionInfos[29]; + StaticGraphKernelRes resolutionHistories[28]; + StaticGraphKernelBppConfiguration bppInfos[46]; + uint8_t systemApiConfiguration[3520]; }; -struct LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[27]; + KernelFragments fragmentConfigurations[39]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[24]; - StaticGraphKernelRes resolutionHistories[20]; - StaticGraphKernelBppConfiguration bppInfos[42]; - uint8_t systemApiConfiguration[3525]; + StaticGraphKernelRes resolutionInfos[33]; + StaticGraphKernelRes resolutionHistories[32]; + StaticGraphKernelBppConfiguration bppInfos[50]; + uint8_t systemApiConfiguration[4212]; }; -struct LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[34]; + KernelFragments fragmentConfigurations[51]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[28]; - StaticGraphKernelRes resolutionHistories[22]; - StaticGraphKernelBppConfiguration bppInfos[50]; - uint8_t systemApiConfiguration[4163]; + StaticGraphKernelRes resolutionInfos[41]; + StaticGraphKernelRes resolutionHistories[39]; + StaticGraphKernelBppConfiguration bppInfos[62]; + uint8_t systemApiConfiguration[5290]; }; -struct LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[38]; + KernelFragments fragmentConfigurations[55]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[32]; - StaticGraphKernelRes resolutionHistories[26]; - StaticGraphKernelBppConfiguration bppInfos[54]; - uint8_t systemApiConfiguration[4855]; + StaticGraphKernelRes resolutionInfos[45]; + StaticGraphKernelRes resolutionHistories[43]; + StaticGraphKernelBppConfiguration bppInfos[66]; + uint8_t systemApiConfiguration[5982]; }; -struct LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[22]; + KernelFragments fragmentConfigurations[23]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[19]; + StaticGraphKernelRes resolutionInfos[20]; StaticGraphKernelRes resolutionHistories[15]; - StaticGraphKernelBppConfiguration bppInfos[36]; - uint8_t systemApiConfiguration[2608]; + StaticGraphKernelBppConfiguration bppInfos[37]; + uint8_t systemApiConfiguration[2420]; }; -struct LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[19]; + KernelFragments fragmentConfigurations[27]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[16]; - StaticGraphKernelRes resolutionHistories[13]; - StaticGraphKernelBppConfiguration bppInfos[32]; - uint8_t systemApiConfiguration[2148]; + StaticGraphKernelRes resolutionInfos[24]; + StaticGraphKernelRes resolutionHistories[19]; + StaticGraphKernelBppConfiguration bppInfos[41]; + uint8_t systemApiConfiguration[3112]; }; -struct LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[26]; + KernelFragments fragmentConfigurations[34]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[23]; - StaticGraphKernelRes resolutionHistories[19]; - StaticGraphKernelBppConfiguration bppInfos[40]; - uint8_t systemApiConfiguration[3300]; + StaticGraphKernelRes resolutionInfos[28]; + StaticGraphKernelRes resolutionHistories[21]; + StaticGraphKernelBppConfiguration bppInfos[49]; + uint8_t systemApiConfiguration[3750]; }; -struct LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[33]; + KernelFragments fragmentConfigurations[38]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[27]; - StaticGraphKernelRes resolutionHistories[21]; - StaticGraphKernelBppConfiguration bppInfos[48]; - uint8_t systemApiConfiguration[3938]; + StaticGraphKernelRes resolutionInfos[32]; + StaticGraphKernelRes resolutionHistories[25]; + StaticGraphKernelBppConfiguration bppInfos[53]; + uint8_t systemApiConfiguration[4442]; }; -struct LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[30]; + KernelFragments fragmentConfigurations[34]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[24]; - StaticGraphKernelRes resolutionHistories[19]; - StaticGraphKernelBppConfiguration bppInfos[44]; - uint8_t systemApiConfiguration[3478]; + StaticGraphKernelRes resolutionInfos[28]; + StaticGraphKernelRes resolutionHistories[26]; + StaticGraphKernelBppConfiguration bppInfos[45]; + uint8_t systemApiConfiguration[3300]; }; -struct LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[37]; + KernelFragments fragmentConfigurations[38]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[31]; - StaticGraphKernelRes resolutionHistories[25]; - StaticGraphKernelBppConfiguration bppInfos[52]; - uint8_t systemApiConfiguration[4630]; + StaticGraphKernelRes resolutionInfos[32]; + StaticGraphKernelRes resolutionHistories[30]; + StaticGraphKernelBppConfiguration bppInfos[49]; + uint8_t systemApiConfiguration[3992]; }; -struct LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[19]; + KernelFragments fragmentConfigurations[50]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[16]; - StaticGraphKernelRes resolutionHistories[13]; - StaticGraphKernelBppConfiguration bppInfos[33]; - uint8_t systemApiConfiguration[2168]; + StaticGraphKernelRes resolutionInfos[40]; + StaticGraphKernelRes resolutionHistories[37]; + StaticGraphKernelBppConfiguration bppInfos[61]; + uint8_t systemApiConfiguration[5070]; }; -struct LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[23]; + KernelFragments fragmentConfigurations[54]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[20]; - StaticGraphKernelRes resolutionHistories[17]; - StaticGraphKernelBppConfiguration bppInfos[37]; - uint8_t systemApiConfiguration[2860]; + StaticGraphKernelRes resolutionInfos[44]; + StaticGraphKernelRes resolutionHistories[41]; + StaticGraphKernelBppConfiguration bppInfos[65]; + uint8_t systemApiConfiguration[5762]; }; -struct LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration +struct IsysDolOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[30]; + KernelFragments fragmentConfigurations[2]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[24]; - StaticGraphKernelRes resolutionHistories[19]; - StaticGraphKernelBppConfiguration bppInfos[45]; - uint8_t systemApiConfiguration[3498]; + StaticGraphKernelRes resolutionInfos[2]; + StaticGraphKernelRes resolutionHistories[2]; + StaticGraphKernelBppConfiguration bppInfos[2]; }; -struct LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration +struct LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[34]; + KernelFragments fragmentConfigurations[22]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[28]; - StaticGraphKernelRes resolutionHistories[23]; - StaticGraphKernelBppConfiguration bppInfos[49]; - uint8_t systemApiConfiguration[4190]; + StaticGraphKernelRes resolutionInfos[19]; + StaticGraphKernelRes resolutionHistories[15]; + StaticGraphKernelBppConfiguration bppInfos[37]; + uint8_t systemApiConfiguration[2613]; }; -struct LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration +struct LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[25]; + KernelFragments fragmentConfigurations[26]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[22]; - StaticGraphKernelRes resolutionHistories[17]; - StaticGraphKernelBppConfiguration bppInfos[39]; - uint8_t systemApiConfiguration[2860]; + StaticGraphKernelRes resolutionInfos[23]; + StaticGraphKernelRes resolutionHistories[19]; + StaticGraphKernelBppConfiguration bppInfos[41]; + uint8_t systemApiConfiguration[3305]; }; -struct LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration +struct LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[29]; + KernelFragments fragmentConfigurations[33]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[26]; + StaticGraphKernelRes resolutionInfos[27]; StaticGraphKernelRes resolutionHistories[21]; - StaticGraphKernelBppConfiguration bppInfos[43]; - uint8_t systemApiConfiguration[3552]; + StaticGraphKernelBppConfiguration bppInfos[49]; + uint8_t systemApiConfiguration[3943]; }; -struct LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration +struct LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[36]; + KernelFragments fragmentConfigurations[37]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[30]; - StaticGraphKernelRes resolutionHistories[23]; - StaticGraphKernelBppConfiguration bppInfos[51]; - uint8_t systemApiConfiguration[4190]; + StaticGraphKernelRes resolutionInfos[31]; + StaticGraphKernelRes resolutionHistories[25]; + StaticGraphKernelBppConfiguration bppInfos[53]; + uint8_t systemApiConfiguration[4635]; }; -struct LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration +struct IsysDolWithCvOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[40]; + KernelFragments fragmentConfigurations[5]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[34]; - StaticGraphKernelRes resolutionHistories[27]; - StaticGraphKernelBppConfiguration bppInfos[55]; - uint8_t systemApiConfiguration[4882]; + StaticGraphKernelRes resolutionInfos[4]; + StaticGraphKernelRes resolutionHistories[5]; + StaticGraphKernelBppConfiguration bppInfos[5]; + uint8_t systemApiConfiguration[54]; }; -struct LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration +struct LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[56]; + KernelFragments fragmentConfigurations[33]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[46]; - StaticGraphKernelRes resolutionHistories[43]; - StaticGraphKernelBppConfiguration bppInfos[67]; - uint8_t systemApiConfiguration[6202]; + StaticGraphKernelRes resolutionInfos[27]; + StaticGraphKernelRes resolutionHistories[26]; + StaticGraphKernelBppConfiguration bppInfos[45]; + uint8_t systemApiConfiguration[3493]; }; -struct LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[31]; + KernelFragments fragmentConfigurations[37]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[25]; - StaticGraphKernelRes resolutionHistories[24]; - StaticGraphKernelBppConfiguration bppInfos[42]; - uint8_t systemApiConfiguration[3048]; + StaticGraphKernelRes resolutionInfos[31]; + StaticGraphKernelRes resolutionHistories[30]; + StaticGraphKernelBppConfiguration bppInfos[49]; + uint8_t systemApiConfiguration[4185]; }; -struct LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[35]; + KernelFragments fragmentConfigurations[49]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[29]; - StaticGraphKernelRes resolutionHistories[28]; - StaticGraphKernelBppConfiguration bppInfos[46]; - uint8_t systemApiConfiguration[3740]; + StaticGraphKernelRes resolutionInfos[39]; + StaticGraphKernelRes resolutionHistories[37]; + StaticGraphKernelBppConfiguration bppInfos[61]; + uint8_t systemApiConfiguration[5263]; }; -struct LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration +struct LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[53]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[43]; + StaticGraphKernelRes resolutionHistories[41]; + StaticGraphKernelBppConfiguration bppInfos[65]; + uint8_t systemApiConfiguration[5955]; +}; + +struct LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[25]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[22]; + StaticGraphKernelRes resolutionHistories[17]; + StaticGraphKernelBppConfiguration bppInfos[39]; + uint8_t systemApiConfiguration[2860]; +}; + +struct LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[29]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[26]; + StaticGraphKernelRes resolutionHistories[21]; + StaticGraphKernelBppConfiguration bppInfos[43]; + uint8_t systemApiConfiguration[3552]; +}; + +struct LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[36]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[29]; - StaticGraphKernelRes resolutionHistories[24]; - StaticGraphKernelBppConfiguration bppInfos[50]; - uint8_t systemApiConfiguration[3938]; + StaticGraphKernelRes resolutionInfos[30]; + StaticGraphKernelRes resolutionHistories[23]; + StaticGraphKernelBppConfiguration bppInfos[51]; + uint8_t systemApiConfiguration[4190]; }; -struct LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[35]; + KernelFragments fragmentConfigurations[40]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[29]; + StaticGraphKernelRes resolutionInfos[34]; + StaticGraphKernelRes resolutionHistories[27]; + StaticGraphKernelBppConfiguration bppInfos[55]; + uint8_t systemApiConfiguration[4882]; +}; + +struct LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[36]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[30]; StaticGraphKernelRes resolutionHistories[28]; - StaticGraphKernelBppConfiguration bppInfos[46]; - uint8_t systemApiConfiguration[3520]; + StaticGraphKernelBppConfiguration bppInfos[47]; + uint8_t systemApiConfiguration[3740]; }; -struct LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[39]; + KernelFragments fragmentConfigurations[40]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[33]; + StaticGraphKernelRes resolutionInfos[34]; StaticGraphKernelRes resolutionHistories[32]; - StaticGraphKernelBppConfiguration bppInfos[50]; - uint8_t systemApiConfiguration[4212]; + StaticGraphKernelBppConfiguration bppInfos[51]; + uint8_t systemApiConfiguration[4432]; }; -struct LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[34]; + KernelFragments fragmentConfigurations[52]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[28]; - StaticGraphKernelRes resolutionHistories[26]; - StaticGraphKernelBppConfiguration bppInfos[45]; - uint8_t systemApiConfiguration[3300]; + StaticGraphKernelRes resolutionInfos[42]; + StaticGraphKernelRes resolutionHistories[39]; + StaticGraphKernelBppConfiguration bppInfos[63]; + uint8_t systemApiConfiguration[5510]; }; -struct LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[38]; + KernelFragments fragmentConfigurations[56]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[32]; - StaticGraphKernelRes resolutionHistories[30]; - StaticGraphKernelBppConfiguration bppInfos[49]; - uint8_t systemApiConfiguration[3992]; + StaticGraphKernelRes resolutionInfos[46]; + StaticGraphKernelRes resolutionHistories[43]; + StaticGraphKernelBppConfiguration bppInfos[67]; + uint8_t systemApiConfiguration[6202]; }; -struct IsysDolWithCvOuterNodeConfiguration +struct LbffDolSmoothOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[5]; + KernelFragments fragmentConfigurations[3]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[4]; - StaticGraphKernelRes resolutionHistories[5]; - StaticGraphKernelBppConfiguration bppInfos[5]; - uint8_t systemApiConfiguration[54]; + StaticGraphKernelRes resolutionInfos[2]; + StaticGraphKernelRes resolutionHistories[2]; + StaticGraphKernelBppConfiguration bppInfos[8]; + uint8_t systemApiConfiguration[476]; }; -struct LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[33]; + KernelFragments fragmentConfigurations[23]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[27]; - StaticGraphKernelRes resolutionHistories[26]; - StaticGraphKernelBppConfiguration bppInfos[45]; - uint8_t systemApiConfiguration[3493]; + StaticGraphKernelRes resolutionInfos[20]; + StaticGraphKernelRes resolutionHistories[16]; + StaticGraphKernelBppConfiguration bppInfos[38]; + uint8_t systemApiConfiguration[2833]; }; -struct LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[37]; + KernelFragments fragmentConfigurations[27]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[31]; - StaticGraphKernelRes resolutionHistories[30]; - StaticGraphKernelBppConfiguration bppInfos[49]; - uint8_t systemApiConfiguration[4185]; + StaticGraphKernelRes resolutionInfos[24]; + StaticGraphKernelRes resolutionHistories[20]; + StaticGraphKernelBppConfiguration bppInfos[42]; + uint8_t systemApiConfiguration[3525]; }; -struct LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration +struct LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[49]; + KernelFragments fragmentConfigurations[34]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[39]; - StaticGraphKernelRes resolutionHistories[37]; - StaticGraphKernelBppConfiguration bppInfos[61]; - uint8_t systemApiConfiguration[5263]; + StaticGraphKernelRes resolutionInfos[28]; + StaticGraphKernelRes resolutionHistories[22]; + StaticGraphKernelBppConfiguration bppInfos[50]; + uint8_t systemApiConfiguration[4163]; }; -struct LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration +struct LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[53]; + KernelFragments fragmentConfigurations[38]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[43]; - StaticGraphKernelRes resolutionHistories[41]; - StaticGraphKernelBppConfiguration bppInfos[65]; - uint8_t systemApiConfiguration[5955]; + StaticGraphKernelRes resolutionInfos[32]; + StaticGraphKernelRes resolutionHistories[26]; + StaticGraphKernelBppConfiguration bppInfos[54]; + uint8_t systemApiConfiguration[4855]; }; struct LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[34]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[28]; @@ -953,6 +1058,7 @@ struct LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[38]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[32]; @@ -965,6 +1071,7 @@ struct LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[50]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[40]; @@ -977,6 +1084,7 @@ struct LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[54]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[44]; @@ -985,130 +1093,284 @@ struct LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration uint8_t systemApiConfiguration[6175]; }; -struct LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[33]; + KernelFragments fragmentConfigurations[55]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[27]; - StaticGraphKernelRes resolutionHistories[26]; - StaticGraphKernelBppConfiguration bppInfos[44]; - uint8_t systemApiConfiguration[3488]; + StaticGraphKernelRes resolutionInfos[45]; + StaticGraphKernelRes resolutionHistories[43]; + StaticGraphKernelBppConfiguration bppInfos[66]; + uint8_t systemApiConfiguration[5982]; }; -struct LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[37]; + KernelFragments fragmentConfigurations[22]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[31]; - StaticGraphKernelRes resolutionHistories[30]; - StaticGraphKernelBppConfiguration bppInfos[48]; - uint8_t systemApiConfiguration[4180]; + StaticGraphKernelRes resolutionInfos[19]; + StaticGraphKernelRes resolutionHistories[15]; + StaticGraphKernelBppConfiguration bppInfos[36]; + uint8_t systemApiConfiguration[2608]; }; -struct LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration +struct LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[49]; + KernelFragments fragmentConfigurations[19]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[39]; - StaticGraphKernelRes resolutionHistories[37]; - StaticGraphKernelBppConfiguration bppInfos[60]; - uint8_t systemApiConfiguration[5258]; + StaticGraphKernelRes resolutionInfos[16]; + StaticGraphKernelRes resolutionHistories[13]; + StaticGraphKernelBppConfiguration bppInfos[32]; + uint8_t systemApiConfiguration[2148]; }; -struct LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration +struct LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[53]; + KernelFragments fragmentConfigurations[26]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[43]; - StaticGraphKernelRes resolutionHistories[41]; - StaticGraphKernelBppConfiguration bppInfos[64]; - uint8_t systemApiConfiguration[5950]; + StaticGraphKernelRes resolutionInfos[23]; + StaticGraphKernelRes resolutionHistories[19]; + StaticGraphKernelBppConfiguration bppInfos[40]; + uint8_t systemApiConfiguration[3300]; }; -struct LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[27]; + KernelFragments fragmentConfigurations[33]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[22]; + StaticGraphKernelRes resolutionInfos[27]; StaticGraphKernelRes resolutionHistories[21]; - StaticGraphKernelBppConfiguration bppInfos[39]; - uint8_t systemApiConfiguration[2828]; + StaticGraphKernelBppConfiguration bppInfos[48]; + uint8_t systemApiConfiguration[3938]; }; -struct LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[31]; + KernelFragments fragmentConfigurations[30]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[26]; - StaticGraphKernelRes resolutionHistories[25]; - StaticGraphKernelBppConfiguration bppInfos[43]; - uint8_t systemApiConfiguration[3520]; + StaticGraphKernelRes resolutionInfos[24]; + StaticGraphKernelRes resolutionHistories[19]; + StaticGraphKernelBppConfiguration bppInfos[44]; + uint8_t systemApiConfiguration[3478]; }; -struct LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration +struct LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[43]; + KernelFragments fragmentConfigurations[37]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[34]; - StaticGraphKernelRes resolutionHistories[32]; - StaticGraphKernelBppConfiguration bppInfos[55]; - uint8_t systemApiConfiguration[4598]; + StaticGraphKernelRes resolutionInfos[31]; + StaticGraphKernelRes resolutionHistories[25]; + StaticGraphKernelBppConfiguration bppInfos[52]; + uint8_t systemApiConfiguration[4630]; }; -struct LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration +struct LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[47]; + KernelFragments fragmentConfigurations[19]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[38]; - StaticGraphKernelRes resolutionHistories[36]; - StaticGraphKernelBppConfiguration bppInfos[59]; - uint8_t systemApiConfiguration[5290]; + StaticGraphKernelRes resolutionInfos[16]; + StaticGraphKernelRes resolutionHistories[13]; + StaticGraphKernelBppConfiguration bppInfos[33]; + uint8_t systemApiConfiguration[2168]; }; -struct LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration +struct LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[23]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[20]; + StaticGraphKernelRes resolutionHistories[17]; + StaticGraphKernelBppConfiguration bppInfos[37]; + uint8_t systemApiConfiguration[2860]; +}; + +struct LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[30]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[24]; + StaticGraphKernelRes resolutionHistories[19]; + StaticGraphKernelBppConfiguration bppInfos[45]; + uint8_t systemApiConfiguration[3498]; +}; + +struct LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[34]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[28]; + StaticGraphKernelRes resolutionHistories[23]; + StaticGraphKernelBppConfiguration bppInfos[49]; + uint8_t systemApiConfiguration[4190]; +}; + +struct LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[36]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; - StaticGraphKernelRes resolutionInfos[30]; - StaticGraphKernelRes resolutionHistories[28]; - StaticGraphKernelBppConfiguration bppInfos[47]; - uint8_t systemApiConfiguration[3740]; + StaticGraphKernelRes resolutionInfos[29]; + StaticGraphKernelRes resolutionHistories[24]; + StaticGraphKernelBppConfiguration bppInfos[50]; + uint8_t systemApiConfiguration[3938]; }; -struct LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration +struct LbffDol2InputsNoGmvWithTnrWithOpacityOuterNodeConfiguration { uint8_t numberOfFragments = 0; - KernelFragments fragmentConfigurations[40]; + KernelFragments fragmentConfigurations[38]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[31]; + StaticGraphKernelRes resolutionHistories[26]; + StaticGraphKernelBppConfiguration bppInfos[53]; + uint8_t systemApiConfiguration[4383]; +}; + +struct LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[33]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[27]; + StaticGraphKernelRes resolutionHistories[26]; + StaticGraphKernelBppConfiguration bppInfos[44]; + uint8_t systemApiConfiguration[3488]; +}; + +struct LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[37]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[31]; + StaticGraphKernelRes resolutionHistories[30]; + StaticGraphKernelBppConfiguration bppInfos[48]; + uint8_t systemApiConfiguration[4180]; +}; + +struct LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[49]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[39]; + StaticGraphKernelRes resolutionHistories[37]; + StaticGraphKernelBppConfiguration bppInfos[60]; + uint8_t systemApiConfiguration[5258]; +}; + +struct LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[53]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[43]; + StaticGraphKernelRes resolutionHistories[41]; + StaticGraphKernelBppConfiguration bppInfos[64]; + uint8_t systemApiConfiguration[5950]; +}; + +struct LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[27]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[22]; + StaticGraphKernelRes resolutionHistories[21]; + StaticGraphKernelBppConfiguration bppInfos[39]; + uint8_t systemApiConfiguration[2828]; +}; + +struct LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[31]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[26]; + StaticGraphKernelRes resolutionHistories[25]; + StaticGraphKernelBppConfiguration bppInfos[43]; + uint8_t systemApiConfiguration[3520]; +}; + +struct LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[43]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[34]; StaticGraphKernelRes resolutionHistories[32]; - StaticGraphKernelBppConfiguration bppInfos[51]; - uint8_t systemApiConfiguration[4432]; + StaticGraphKernelBppConfiguration bppInfos[55]; + uint8_t systemApiConfiguration[4598]; +}; + +struct LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration +{ + uint8_t numberOfFragments = 0; + KernelFragments fragmentConfigurations[47]; + TuningModeMap tuningModes[2]; + uint32_t streamId = 0; + uint8_t tuningMode = 0; + StaticGraphKernelRes resolutionInfos[38]; + StaticGraphKernelRes resolutionHistories[36]; + StaticGraphKernelBppConfiguration bppInfos[59]; + uint8_t systemApiConfiguration[5290]; }; struct WithCvOuterNodeConfiguration { uint8_t numberOfFragments = 0; KernelFragments fragmentConfigurations[6]; + TuningModeMap tuningModes[2]; uint32_t streamId = 0; uint8_t tuningMode = 0; StaticGraphKernelRes resolutionInfos[5]; @@ -1117,585 +1379,873 @@ struct WithCvOuterNodeConfiguration uint8_t systemApiConfiguration[54]; }; -struct GraphConfiguration100000 +struct GraphConfiguration200000 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[9]; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100001 +struct GraphConfiguration200001 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[14]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100002 +struct GraphConfiguration200002 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[12]; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100003 +struct GraphConfiguration200003 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100137 +struct GraphConfiguration200004 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration; + LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[29]; -}; - -struct GraphConfiguration100079 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100080 +struct GraphConfiguration200005 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100138 +struct GraphConfiguration200006 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[27]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[32]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100142 +struct GraphConfiguration200007 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[30]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[34]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100162 +struct GraphConfiguration200008 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100143 +struct GraphConfiguration200009 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[28]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100144 +struct GraphConfiguration200010 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[29]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100081 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; -}; - -struct GraphConfiguration100004 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[12]; -}; - -struct GraphConfiguration100005 +struct GraphConfiguration200011 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; -}; - -struct GraphConfiguration100006 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[15]; -}; - -struct GraphConfiguration100066 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100007 +struct GraphConfiguration200012 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[30]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100067 +struct GraphConfiguration200013 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[23]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[32]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100139 +struct GraphConfiguration200014 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[32]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[35]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100169 +struct GraphConfiguration200015 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[37]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100008 +struct GraphConfiguration200016 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[10]; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100009 +struct GraphConfiguration200017 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[15]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100010 +struct GraphConfiguration200018 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[13]; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[23]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100011 +struct GraphConfiguration200019 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[18]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100140 +struct GraphConfiguration200020 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration; + LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; +}; + +struct GraphConfiguration200021 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[30]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100045 +struct GraphConfiguration200022 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[18]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[33]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100012 +struct GraphConfiguration200023 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[35]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100013 +struct GraphConfiguration200024 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration; + LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100014 +struct GraphConfiguration200025 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100015 +struct GraphConfiguration200026 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100016 +struct GraphConfiguration200027 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100017 +struct GraphConfiguration200028 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[31]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100018 +struct GraphConfiguration200029 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[33]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100019 +struct GraphConfiguration200030 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[36]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100020 +struct GraphConfiguration200031 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration; - LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[38]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100021 +struct GraphConfiguration200032 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100022 +struct GraphConfiguration200033 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration; - LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[23]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100023 +struct GraphConfiguration200034 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[28]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100024 +struct GraphConfiguration200035 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[8]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[26]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100040 +struct GraphConfiguration200036 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[13]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100041 +struct GraphConfiguration200037 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[16]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[31]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100042 +struct GraphConfiguration200038 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[11]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[34]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100027 +struct GraphConfiguration200039 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[9]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[36]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100028 +struct GraphConfiguration200040 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffIrWithGmvNoTnrNoSapOuterNodeConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[14]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100029 +struct GraphConfiguration200041 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[12]; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[26]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100030 +struct GraphConfiguration200042 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffIrWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100031 +struct GraphConfiguration200043 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[11]; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100032 +struct GraphConfiguration200044 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[16]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[33]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100033 +struct GraphConfiguration200045 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[14]; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[35]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100034 +struct GraphConfiguration200046 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[38]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100141 +struct GraphConfiguration200047 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration; + SwB2bOuterNodeConfiguration swB2bOuterNodeConfiguration; + SwRemosaicOuterNodeConfiguration swRemosaicOuterNodeConfiguration; + SwAinrOuterNodeConfiguration swAinrOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwImvOuterNodeConfiguration swImvOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[31]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[40]; + StaticGraphSwProcessingLinkDefinition swProcessingLinkDefinitions[10]; }; -struct GraphConfiguration100100 +struct GraphConfiguration100000 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[9]; }; -struct GraphConfiguration100101 +struct GraphConfiguration100001 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[14]; }; -struct GraphConfiguration100102 +struct GraphConfiguration100002 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[12]; }; -struct GraphConfiguration100157 +struct GraphConfiguration100003 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration lbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100103 +struct GraphConfiguration100137 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; @@ -1703,1686 +2253,5040 @@ struct GraphConfiguration100103 SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[27]; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; }; -struct GraphConfiguration100135 +struct GraphConfiguration100079 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[27]; -}; - -struct GraphConfiguration100104 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100105 +struct GraphConfiguration100080 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100106 +struct GraphConfiguration100138 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; }; -struct GraphConfiguration100166 +struct GraphConfiguration100142 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[30]; }; -struct GraphConfiguration100107 +struct GraphConfiguration100162 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[30]; + LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; }; -struct GraphConfiguration100145 +struct GraphConfiguration100143 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[33]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; }; -struct GraphConfiguration100108 +struct GraphConfiguration100144 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[18]; + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; }; -struct GraphConfiguration100109 +struct GraphConfiguration100081 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[23]; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; }; -struct GraphConfiguration100110 +struct GraphConfiguration100004 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[23]; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[12]; }; -struct GraphConfiguration100111 +struct GraphConfiguration100005 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[28]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100136 +struct GraphConfiguration100006 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[28]; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[15]; }; -struct GraphConfiguration100200 +struct GraphConfiguration100066 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[29]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; }; -struct GraphConfiguration100201 +struct GraphConfiguration100007 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; -}; - -struct GraphConfiguration100112 + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; +}; + +struct GraphConfiguration100067 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[23]; }; -struct GraphConfiguration100113 +struct GraphConfiguration100139 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[26]; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[32]; }; -struct GraphConfiguration100114 +struct GraphConfiguration100169 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[31]; + LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; }; -struct GraphConfiguration100146 +struct GraphConfiguration100008 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[31]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[10]; }; -struct GraphConfiguration100115 +struct GraphConfiguration100009 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[31]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[15]; }; -struct GraphConfiguration100116 +struct GraphConfiguration100010 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[23]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[13]; }; -struct GraphConfiguration100117 +struct GraphConfiguration100011 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[28]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[18]; }; -struct GraphConfiguration100118 +struct GraphConfiguration100140 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration; SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[28]; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[30]; }; -struct GraphConfiguration100119 +struct GraphConfiguration100045 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[33]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[18]; }; -struct GraphConfiguration100120 +struct GraphConfiguration100012 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration lbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration; - LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100121 +struct GraphConfiguration100013 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration lbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[30]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100122 +struct GraphConfiguration100014 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration lbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration; - LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[33]; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; }; -struct GraphConfiguration100123 +struct GraphConfiguration100015 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration lbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[38]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; }; -struct GraphConfiguration100127 +struct GraphConfiguration100016 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration lbffIrNoGmvNoTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[16]; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; }; -struct GraphConfiguration100128 +struct GraphConfiguration100017 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration lbffIrWithGmvNoTnrWithSapOuterNodeConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; }; -struct GraphConfiguration100129 +struct GraphConfiguration100018 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration lbffIrNoGmvWithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; }; -struct GraphConfiguration100130 +struct GraphConfiguration100019 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration lbffIrWithGmvWithTnrWithSapOuterNodeConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[26]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; }; -struct GraphConfiguration100131 +struct GraphConfiguration100020 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration; + LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100132 +struct GraphConfiguration100021 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[24]; + LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; }; -struct GraphConfiguration100133 +struct GraphConfiguration100022 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[24]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration; + LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[23]; }; -struct GraphConfiguration100134 +struct GraphConfiguration100023 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[29]; + LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; }; -struct GraphConfiguration100235 +struct GraphConfiguration100024 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[11]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[8]; }; -struct GraphConfiguration100236 +struct GraphConfiguration100040 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[16]; -}; - -struct GraphConfiguration100202 -{ - StaticGraphConfigurationInformation configurationInformation; - VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[14]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[13]; }; -struct GraphConfiguration100203 +struct GraphConfiguration100041 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[16]; }; -struct GraphConfiguration100279 +struct GraphConfiguration100042 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[11]; }; -struct GraphConfiguration100280 +struct GraphConfiguration100027 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[9]; }; -struct GraphConfiguration100281 +struct GraphConfiguration100028 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffIrWithGmvNoTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[14]; }; -struct GraphConfiguration100204 +struct GraphConfiguration100029 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[14]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[12]; }; -struct GraphConfiguration100205 +struct GraphConfiguration100030 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffIrWithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100206 +struct GraphConfiguration100031 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[11]; }; -struct GraphConfiguration100266 +struct GraphConfiguration100032 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[16]; }; -struct GraphConfiguration100207 +struct GraphConfiguration100033 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[14]; +}; + +struct GraphConfiguration100034 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; }; -struct GraphConfiguration100267 +struct GraphConfiguration100141 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[31]; }; -struct GraphConfiguration100208 +struct GraphConfiguration100100 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[12]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100209 +struct GraphConfiguration100101 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[17]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; }; -struct GraphConfiguration100210 +struct GraphConfiguration100102 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[15]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; }; -struct GraphConfiguration100211 +struct GraphConfiguration100157 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration lbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; }; -struct GraphConfiguration100245 +struct GraphConfiguration100103 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[20]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; }; -struct GraphConfiguration100212 +struct GraphConfiguration101114 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrWithOpacityOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrWithOpacityOuterNodeConfiguration; SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; }; -struct GraphConfiguration100213 +struct GraphConfiguration100135 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[27]; }; -struct GraphConfiguration100214 +struct GraphConfiguration100104 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; }; -struct GraphConfiguration100215 +struct GraphConfiguration100105 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[22]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; }; -struct GraphConfiguration100216 +struct GraphConfiguration100106 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; }; -struct GraphConfiguration100217 +struct GraphConfiguration100166 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration; - SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[21]; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[30]; }; -struct GraphConfiguration100218 +struct GraphConfiguration100107 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration; - SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; - SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[24]; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[30]; }; -struct GraphConfiguration100219 +struct GraphConfiguration100145 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; - LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[24]; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[33]; }; -struct GraphConfiguration100220 +struct GraphConfiguration100108 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration; - LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[18]; }; -struct GraphConfiguration100221 +struct GraphConfiguration100109 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration; + LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[24]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[23]; }; -struct GraphConfiguration100222 +struct GraphConfiguration100110 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration; - LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[25]; + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[23]; }; -struct GraphConfiguration100223 +struct GraphConfiguration100111 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration; + LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[30]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; }; -struct GraphConfiguration100224 +struct GraphConfiguration100136 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; - LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[10]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; }; -struct GraphConfiguration100240 +struct GraphConfiguration100200 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; - LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; +}; + +struct GraphConfiguration100201 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; +}; + +struct GraphConfiguration100112 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; +}; + +struct GraphConfiguration100113 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[15]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[26]; }; -struct GraphConfiguration100241 +struct GraphConfiguration100114 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; - LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[31]; +}; + +struct GraphConfiguration100146 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[18]; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[31]; }; -struct GraphConfiguration100242 +struct GraphConfiguration100115 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; - LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[13]; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[31]; }; -struct GraphConfiguration100227 +struct GraphConfiguration100116 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffIrNoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[11]; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[23]; }; -struct GraphConfiguration100228 +struct GraphConfiguration100117 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffIrWithGmvNoTnrNoSapOuterNodeConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[16]; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; }; -struct GraphConfiguration100229 +struct GraphConfiguration100118 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[28]; +}; + +struct GraphConfiguration100119 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[33]; +}; + +struct GraphConfiguration100120 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffIrNoGmvWithTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[14]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration lbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration; + LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; }; -struct GraphConfiguration100230 +struct GraphConfiguration100121 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffIrWithGmvWithTnrNoSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration lbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[19]; + LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[30]; }; -struct GraphConfiguration100231 +struct GraphConfiguration100122 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[13]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration lbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration; + LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[33]; }; -struct GraphConfiguration100232 +struct GraphConfiguration100123 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration lbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[18]; + LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[38]; }; -struct GraphConfiguration100233 +struct GraphConfiguration100127 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration lbffIrNoGmvNoTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[16]; }; -struct GraphConfiguration100234 +struct GraphConfiguration100128 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration lbffIrWithGmvNoTnrWithSapOuterNodeConfiguration; SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; StaticGraphLinkConfiguration linkConfigurations[21]; }; -struct GraphConfiguration100026 +struct GraphConfiguration100129 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysOuterNodeConfiguration isysOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[2]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration lbffIrNoGmvWithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; }; -struct GraphConfiguration100059 +struct GraphConfiguration100130 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[4]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration lbffIrWithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[26]; }; -struct GraphConfiguration100035 +struct GraphConfiguration100131 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[4]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; }; -struct GraphConfiguration100036 +struct GraphConfiguration100132 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[4]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; }; -struct GraphConfiguration100037 +struct GraphConfiguration100133 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[4]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; }; -struct GraphConfiguration100058 +struct GraphConfiguration100134 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[4]; + SwSegnetOuterNodeConfiguration swSegnetOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[29]; }; -struct GraphConfiguration100038 +struct GraphConfiguration100235 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[6]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[11]; }; -struct GraphConfiguration100039 +struct GraphConfiguration100236 { StaticGraphConfigurationInformation configurationInformation; VirtualSinkMapping sinkMappingConfiguration; - IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; - StaticGraphLinkConfiguration linkConfigurations[6]; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[16]; }; -#pragma pack(pop) -class IsysOuterNode : public OuterNode +struct GraphConfiguration100202 { -public: - IsysOuterNode(): OuterNode(){} - void Init(IsysOuterNodeConfiguration* selectedGraphConfiguration); - - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; - + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[14]; }; -class LbffBayerNoGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerNoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; -}; -class LbffBayerWithGmvNoTnrNoSapOuterNode : public OuterNode +struct GraphConfiguration100203 { -public: - LbffBayerWithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; - + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100279 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100280 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100281 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; +}; + +struct GraphConfiguration100204 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[14]; +}; + +struct GraphConfiguration100205 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100206 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; +}; + +struct GraphConfiguration100266 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; +}; + +struct GraphConfiguration100207 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; +}; + +struct GraphConfiguration100267 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; +}; + +struct GraphConfiguration100208 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[12]; +}; + +struct GraphConfiguration100209 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[17]; +}; + +struct GraphConfiguration100210 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[15]; +}; + +struct GraphConfiguration100211 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; +}; + +struct GraphConfiguration100245 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[20]; +}; + +struct GraphConfiguration100212 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100213 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100214 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; +}; + +struct GraphConfiguration100215 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[22]; +}; + +struct GraphConfiguration100216 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; +}; + +struct GraphConfiguration100217 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; +}; + +struct GraphConfiguration100218 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration; + SwNntmOuterNodeConfiguration swNntmOuterNodeConfiguration; + SwScalerOuterNodeConfiguration swScalerOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; +}; + +struct GraphConfiguration100219 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + LbffDolSmoothOuterNodeConfiguration lbffDolSmoothOuterNodeConfiguration; + LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration lbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; +}; + +struct GraphConfiguration100220 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration; + LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100221 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[24]; +}; + +struct GraphConfiguration100222 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration; + LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[25]; +}; + +struct GraphConfiguration100223 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[30]; +}; + +struct GraphConfiguration100224 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; + LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[10]; +}; + +struct GraphConfiguration100240 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; + LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[15]; +}; + +struct GraphConfiguration100241 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; + LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[18]; +}; + +struct GraphConfiguration100242 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + WithCvOuterNodeConfiguration withCvOuterNodeConfiguration; + LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[13]; +}; + +struct GraphConfiguration100227 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration lbffIrNoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[11]; +}; + +struct GraphConfiguration100228 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration lbffIrWithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[16]; +}; + +struct GraphConfiguration100229 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration lbffIrNoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[14]; +}; + +struct GraphConfiguration100230 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration lbffIrWithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[19]; +}; + +struct GraphConfiguration100231 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[13]; +}; + +struct GraphConfiguration100232 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[18]; +}; + +struct GraphConfiguration100233 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[16]; +}; + +struct GraphConfiguration100234 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration; + SwGdcOuterNodeConfiguration swGdcOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[21]; +}; + +struct GraphConfiguration100026 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysOuterNodeConfiguration isysOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[2]; +}; + +struct GraphConfiguration100059 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[4]; +}; + +struct GraphConfiguration100035 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolOuterNodeConfiguration isysDolOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[4]; +}; + +struct GraphConfiguration100036 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2OuterNodeConfiguration isysPdaf2OuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[4]; +}; + +struct GraphConfiguration100037 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[4]; +}; + +struct GraphConfiguration100058 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysWithCvOuterNodeConfiguration isysWithCvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[4]; +}; + +struct GraphConfiguration100038 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[6]; +}; + +struct GraphConfiguration101138 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysDolWithCvOuterNodeConfiguration isysDolWithCvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[6]; +}; + +struct GraphConfiguration100039 +{ + StaticGraphConfigurationInformation configurationInformation; + VirtualSinkMapping sinkMappingConfiguration; + IsysPdaf2WithCvOuterNodeConfiguration isysPdaf2WithCvOuterNodeConfiguration; + int32_t numberOfActualLinks = 0; + StaticGraphLinkConfiguration linkConfigurations[6]; +}; +#pragma pack(pop) + +class IsysOuterNode : public OuterNode +{ +public: + IsysOuterNode(): OuterNode(){} + void Init(IsysOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerNoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerNoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwB2bInOuterNode : public OuterNode +{ +public: + SwB2bInOuterNode(): OuterNode(){} + void Init(SwB2bInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwB2bOuterNode : public OuterNode +{ +public: + SwB2bOuterNode(): OuterNode(){} + void Init(SwB2bOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwB2bOutOuterNode : public OuterNode +{ +public: + SwB2bOutOuterNode(): OuterNode(){} + void Init(SwB2bOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwRemosaicInOuterNode : public OuterNode +{ +public: + SwRemosaicInOuterNode(): OuterNode(){} + void Init(SwRemosaicInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwRemosaicOuterNode : public OuterNode +{ +public: + SwRemosaicOuterNode(): OuterNode(){} + void Init(SwRemosaicOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwRemosaicOutOuterNode : public OuterNode +{ +public: + SwRemosaicOutOuterNode(): OuterNode(){} + void Init(SwRemosaicOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwAinrInOuterNode : public OuterNode +{ +public: + SwAinrInOuterNode(): OuterNode(){} + void Init(SwAinrInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwAinrOuterNode : public OuterNode +{ +public: + SwAinrOuterNode(): OuterNode(){} + void Init(SwAinrOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwAinrOutOuterNode : public OuterNode +{ +public: + SwAinrOutOuterNode(): OuterNode(){} + void Init(SwAinrOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwGdcInOuterNode : public OuterNode +{ +public: + SwGdcInOuterNode(): OuterNode(){} + void Init(SwGdcInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + }; class SwGdcOuterNode : public OuterNode { public: - SwGdcOuterNode(): OuterNode(){} - void Init(SwGdcOuterNodeConfiguration* selectedGraphConfiguration); + SwGdcOuterNode(): OuterNode(){} + void Init(SwGdcOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwGdcOutOuterNode : public OuterNode +{ +public: + SwGdcOutOuterNode(): OuterNode(){} + void Init(SwGdcOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwNntmInOuterNode : public OuterNode +{ +public: + SwNntmInOuterNode(): OuterNode(){} + void Init(SwNntmInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwNntmOuterNode : public OuterNode +{ +public: + SwNntmOuterNode(): OuterNode(){} + void Init(SwNntmOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwNntmOutOuterNode : public OuterNode +{ +public: + SwNntmOutOuterNode(): OuterNode(){} + void Init(SwNntmOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwImvInOuterNode : public OuterNode +{ +public: + SwImvInOuterNode(): OuterNode(){} + void Init(SwImvInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwImvOuterNode : public OuterNode +{ +public: + SwImvOuterNode(): OuterNode(){} + void Init(SwImvOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwImvOutOuterNode : public OuterNode +{ +public: + SwImvOutOuterNode(): OuterNode(){} + void Init(SwImvOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwScalerInOuterNode : public OuterNode +{ +public: + SwScalerInOuterNode(): OuterNode(){} + void Init(SwScalerInOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwScalerOuterNode : public OuterNode +{ +public: + SwScalerOuterNode(): OuterNode(){} + void Init(SwScalerOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwScalerOutOuterNode : public OuterNode +{ +public: + SwScalerOutOuterNode(): OuterNode(){} + void Init(SwScalerOutOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerWithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerWithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerNoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerNoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerWithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerWithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class IsysWithCvOuterNode : public OuterNode +{ +public: + IsysWithCvOuterNode(): OuterNode(){} + void Init(IsysWithCvOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class SwSegnetOuterNode : public OuterNode +{ +public: + SwSegnetOuterNode(): OuterNode(){} + void Init(SwSegnetOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerNoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerNoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerWithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerWithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerNoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerNoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerWithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerWithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class IsysPdaf2OuterNode : public OuterNode +{ +public: + IsysPdaf2OuterNode(): OuterNode(){} + void Init(IsysPdaf2OuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class IsysPdaf2WithCvOuterNode : public OuterNode +{ +public: + IsysPdaf2WithCvOuterNode(): OuterNode(){} + void Init(IsysPdaf2WithCvOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class IsysDolOuterNode : public OuterNode +{ +public: + IsysDolOuterNode(): OuterNode(){} + void Init(IsysDolOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsNoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsNoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsWithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsWithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsNoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsNoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsWithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsWithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class IsysDolWithCvOuterNode : public OuterNode +{ +public: + IsysDolWithCvOuterNode(): OuterNode(){} + void Init(IsysDolWithCvOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsNoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsNoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsWithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsWithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsNoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsNoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsWithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol2InputsWithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDolSmoothOuterNode : public OuterNode +{ +public: + LbffDolSmoothOuterNode(): OuterNode(){} + void Init(LbffDolSmoothOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsNoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsNoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsWithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsWithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsNoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsNoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsWithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsWithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsNoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsNoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsWithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsWithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsNoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsNoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol3InputsWithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffDol3InputsWithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerPdaf2WithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffBayerPdaf2WithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrNoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffRgbIrNoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrIrNoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffRgbIrIrNoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrWithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffRgbIrWithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrNoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffRgbIrNoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrIrNoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffRgbIrIrNoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrWithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffRgbIrWithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrNoGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffIrNoGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrWithGmvNoTnrNoSapOuterNode : public OuterNode +{ +public: + LbffIrWithGmvNoTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrNoGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffIrNoGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrWithGmvWithTnrNoSapOuterNode : public OuterNode +{ +public: + LbffIrWithGmvWithTnrNoSapOuterNode(): OuterNode(){} + void Init(LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffBayerNoGmvWithTnrWithOpacityOuterNode : public OuterNode +{ +public: + LbffBayerNoGmvWithTnrWithOpacityOuterNode(): OuterNode(){} + void Init(LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode : public OuterNode +{ +public: + LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode(): OuterNode(){} + void Init(LbffDol2InputsNoGmvWithTnrWithOpacityOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrNoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffRgbIrNoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrWithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffRgbIrWithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrNoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffRgbIrNoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffRgbIrWithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffRgbIrWithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrNoGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffIrNoGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrWithGmvNoTnrWithSapOuterNode : public OuterNode +{ +public: + LbffIrWithGmvNoTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrNoGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffIrNoGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class LbffIrWithGmvWithTnrWithSapOuterNode : public OuterNode +{ +public: + LbffIrWithGmvWithTnrWithSapOuterNode(): OuterNode(){} + void Init(LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; +class WithCvOuterNode : public OuterNode +{ +public: + WithCvOuterNode(): OuterNode(){} + void Init(WithCvOuterNodeConfiguration* selectedGraphConfiguration); + + void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); + void configVanishStatus(VanishOption vanishStatus) override; + +}; + +class imageSubGraphTopology200000 : public GraphTopology { + +public: + imageSubGraphTopology200000(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 19, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerNoGmvNoTnrNoSapOuterNode* lbffBayerNoGmvNoTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[19]; + +}; + +class StaticGraph200000 : public IStaticGraphConfig +{ +public: + StaticGraph200000(GraphConfiguration200000* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200000(); + static const uint32_t hashCode = 4193146247; // autogenerated + +private: + // Configuration + GraphConfiguration200000 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerNoGmvNoTnrNoSapOuterNode _lbffBayerNoGmvNoTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200000 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[19]; +}; + +class imageSubGraphTopology200001 : public GraphTopology { + +public: + imageSubGraphTopology200001(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 21, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerWithGmvNoTnrNoSapOuterNode* lbffBayerWithGmvNoTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[21]; + +}; + +class StaticGraph200001 : public IStaticGraphConfig +{ +public: + StaticGraph200001(GraphConfiguration200001* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200001(); + static const uint32_t hashCode = 3288532247; // autogenerated + +private: + // Configuration + GraphConfiguration200001 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerWithGmvNoTnrNoSapOuterNode _lbffBayerWithGmvNoTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200001 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[21]; +}; + +class imageSubGraphTopology200002 : public GraphTopology { + +public: + imageSubGraphTopology200002(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 22, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerNoGmvWithTnrNoSapOuterNode* lbffBayerNoGmvWithTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[22]; + +}; + +class StaticGraph200002 : public IStaticGraphConfig +{ +public: + StaticGraph200002(GraphConfiguration200002* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200002(); + static const uint32_t hashCode = 691605543; // autogenerated + +private: + // Configuration + GraphConfiguration200002 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerNoGmvWithTnrNoSapOuterNode _lbffBayerNoGmvWithTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200002 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[22]; +}; + +class imageSubGraphTopology200003 : public GraphTopology { + +public: + imageSubGraphTopology200003(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 24, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerWithGmvWithTnrNoSapOuterNode* lbffBayerWithGmvWithTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[24]; + +}; + +class StaticGraph200003 : public IStaticGraphConfig +{ +public: + StaticGraph200003(GraphConfiguration200003* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200003(); + static const uint32_t hashCode = 3615244151; // autogenerated + +private: + // Configuration + GraphConfiguration200003 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerWithGmvWithTnrNoSapOuterNode _lbffBayerWithGmvWithTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200003 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[24]; +}; + +class imageSubGraphTopology200004 : public GraphTopology { + +public: + imageSubGraphTopology200004(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 27, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerNoGmvNoTnrWithSapOuterNode* lbffBayerNoGmvNoTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[27]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200004 : public IStaticGraphConfig +{ +public: + StaticGraph200004(GraphConfiguration200004* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200004(); + static const uint32_t hashCode = 3992658056; // autogenerated + +private: + // Configuration + GraphConfiguration200004 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerNoGmvNoTnrWithSapOuterNode _lbffBayerNoGmvNoTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200004 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[27]; +}; + +class imageSubGraphTopology200005 : public GraphTopology { + +public: + imageSubGraphTopology200005(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 29, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerWithGmvNoTnrWithSapOuterNode* lbffBayerWithGmvNoTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[29]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200005 : public IStaticGraphConfig +{ +public: + StaticGraph200005(GraphConfiguration200005* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200005(); + static const uint32_t hashCode = 4031159184; // autogenerated + +private: + // Configuration + GraphConfiguration200005 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerWithGmvNoTnrWithSapOuterNode _lbffBayerWithGmvNoTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200005 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[29]; +}; + +class imageSubGraphTopology200006 : public GraphTopology { + +public: + imageSubGraphTopology200006(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 32, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerNoGmvWithTnrWithSapOuterNode* lbffBayerNoGmvWithTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[32]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200006 : public IStaticGraphConfig +{ +public: + StaticGraph200006(GraphConfiguration200006* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200006(); + static const uint32_t hashCode = 4034951006; // autogenerated + +private: + // Configuration + GraphConfiguration200006 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerNoGmvWithTnrWithSapOuterNode _lbffBayerNoGmvWithTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200006 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[32]; +}; + +class imageSubGraphTopology200007 : public GraphTopology { + +public: + imageSubGraphTopology200007(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 34, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerWithGmvWithTnrWithSapOuterNode* lbffBayerWithGmvWithTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[34]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200007 : public IStaticGraphConfig +{ +public: + StaticGraph200007(GraphConfiguration200007* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200007(); + static const uint32_t hashCode = 2405410902; // autogenerated + +private: + // Configuration + GraphConfiguration200007 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerWithGmvWithTnrWithSapOuterNode _lbffBayerWithGmvWithTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200007 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[34]; +}; + +class imageSubGraphTopology200008 : public GraphTopology { + +public: + imageSubGraphTopology200008(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 22, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2OuterNode* isysPdaf2OuterNode = nullptr; + LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode* lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[22]; + +}; + +class StaticGraph200008 : public IStaticGraphConfig +{ +public: + StaticGraph200008(GraphConfiguration200008* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200008(); + static const uint32_t hashCode = 2268347828; // autogenerated + +private: + // Configuration + GraphConfiguration200008 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2OuterNode _isysPdaf2OuterNode; + LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode _lbffBayerPdaf2NoGmvNoTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200008 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[22]; +}; + +class imageSubGraphTopology200009 : public GraphTopology { + +public: + imageSubGraphTopology200009(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 24, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2OuterNode* isysPdaf2OuterNode = nullptr; + LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode* lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[24]; + +}; + +class StaticGraph200009 : public IStaticGraphConfig +{ +public: + StaticGraph200009(GraphConfiguration200009* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200009(); + static const uint32_t hashCode = 2729877820; // autogenerated + +private: + // Configuration + GraphConfiguration200009 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2OuterNode _isysPdaf2OuterNode; + LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode _lbffBayerPdaf2WithGmvNoTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200009 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[24]; +}; + +class imageSubGraphTopology200010 : public GraphTopology { + +public: + imageSubGraphTopology200010(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 25, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2OuterNode* isysPdaf2OuterNode = nullptr; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode* lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[25]; + +}; + +class StaticGraph200010 : public IStaticGraphConfig +{ +public: + StaticGraph200010(GraphConfiguration200010* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200010(); + static const uint32_t hashCode = 2893799632; // autogenerated + +private: + // Configuration + GraphConfiguration200010 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2OuterNode _isysPdaf2OuterNode; + LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode _lbffBayerPdaf2NoGmvWithTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200010 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[25]; +}; + +class imageSubGraphTopology200011 : public GraphTopology { + +public: + imageSubGraphTopology200011(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 27, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2OuterNode* isysPdaf2OuterNode = nullptr; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode* lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[27]; + +}; + +class StaticGraph200011 : public IStaticGraphConfig +{ +public: + StaticGraph200011(GraphConfiguration200011* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200011(); + static const uint32_t hashCode = 456036856; // autogenerated + +private: + // Configuration + GraphConfiguration200011 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2OuterNode _isysPdaf2OuterNode; + LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode _lbffBayerPdaf2WithGmvWithTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200011 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[27]; +}; + +class imageSubGraphTopology200012 : public GraphTopology { + +public: + imageSubGraphTopology200012(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 30, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2WithCvOuterNode* isysPdaf2WithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode* lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[30]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200012 : public IStaticGraphConfig +{ +public: + StaticGraph200012(GraphConfiguration200012* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200012(); + static const uint32_t hashCode = 271672635; // autogenerated + +private: + // Configuration + GraphConfiguration200012 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2WithCvOuterNode _isysPdaf2WithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode _lbffBayerPdaf2NoGmvNoTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200012 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[30]; +}; + +class imageSubGraphTopology200013 : public GraphTopology { + +public: + imageSubGraphTopology200013(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 32, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2WithCvOuterNode* isysPdaf2WithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode* lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[32]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200013 : public IStaticGraphConfig +{ +public: + StaticGraph200013(GraphConfiguration200013* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200013(); + static const uint32_t hashCode = 1333520811; // autogenerated + +private: + // Configuration + GraphConfiguration200013 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2WithCvOuterNode _isysPdaf2WithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode _lbffBayerPdaf2WithGmvNoTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200013 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[32]; +}; + +class imageSubGraphTopology200014 : public GraphTopology { + +public: + imageSubGraphTopology200014(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 35, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2WithCvOuterNode* isysPdaf2WithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode* lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[35]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200014 : public IStaticGraphConfig +{ +public: + StaticGraph200014(GraphConfiguration200014* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200014(); + static const uint32_t hashCode = 537894889; // autogenerated + +private: + // Configuration + GraphConfiguration200014 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2WithCvOuterNode _isysPdaf2WithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode _lbffBayerPdaf2NoGmvWithTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200014 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[35]; +}; + +class imageSubGraphTopology200015 : public GraphTopology { + +public: + imageSubGraphTopology200015(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 37, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysPdaf2WithCvOuterNode* isysPdaf2WithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode* lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[37]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200015 : public IStaticGraphConfig +{ +public: + StaticGraph200015(GraphConfiguration200015* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200015(); + static const uint32_t hashCode = 3358791529; // autogenerated + +private: + // Configuration + GraphConfiguration200015 _graphConfiguration; + + /* Outer Nodes */ + IsysPdaf2WithCvOuterNode _isysPdaf2WithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode _lbffBayerPdaf2WithGmvWithTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200015 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[37]; +}; + +class imageSubGraphTopology200016 : public GraphTopology { + +public: + imageSubGraphTopology200016(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 20, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode* lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[20]; + +}; + +class StaticGraph200016 : public IStaticGraphConfig +{ +public: + StaticGraph200016(GraphConfiguration200016* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200016(); + static const uint32_t hashCode = 1555116574; // autogenerated + +private: + // Configuration + GraphConfiguration200016 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode _lbffBayerPdaf3NoGmvNoTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200016 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[20]; +}; + +class imageSubGraphTopology200017 : public GraphTopology { + +public: + imageSubGraphTopology200017(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 22, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode* lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[22]; + +}; + +class StaticGraph200017 : public IStaticGraphConfig +{ +public: + StaticGraph200017(GraphConfiguration200017* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200017(); + static const uint32_t hashCode = 3257661974; // autogenerated + +private: + // Configuration + GraphConfiguration200017 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode _lbffBayerPdaf3WithGmvNoTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200017 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[22]; +}; + +class imageSubGraphTopology200018 : public GraphTopology { + +public: + imageSubGraphTopology200018(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 23, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode* lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[23]; + +}; + +class StaticGraph200018 : public IStaticGraphConfig +{ +public: + StaticGraph200018(GraphConfiguration200018* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200018(); + static const uint32_t hashCode = 1216700882; // autogenerated + +private: + // Configuration + GraphConfiguration200018 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode _lbffBayerPdaf3NoGmvWithTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200018 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[23]; +}; + +class imageSubGraphTopology200019 : public GraphTopology { + +public: + imageSubGraphTopology200019(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 25, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode* lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[25]; + +}; + +class StaticGraph200019 : public IStaticGraphConfig +{ +public: + StaticGraph200019(GraphConfiguration200019* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200019(); + static const uint32_t hashCode = 3050003466; // autogenerated + +private: + // Configuration + GraphConfiguration200019 _graphConfiguration; + + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode _lbffBayerPdaf3WithGmvWithTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200019 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[25]; +}; + +class imageSubGraphTopology200020 : public GraphTopology { + +public: + imageSubGraphTopology200020(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 28, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode* lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[28]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200020 : public IStaticGraphConfig +{ +public: + StaticGraph200020(GraphConfiguration200020* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200020(); + static const uint32_t hashCode = 2901109361; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200020 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode _lbffBayerPdaf3NoGmvNoTnrWithSapOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200020 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[28]; +}; + +class imageSubGraphTopology200021 : public GraphTopology { + +public: + imageSubGraphTopology200021(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 30, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode* lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[30]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200021 : public IStaticGraphConfig +{ +public: + StaticGraph200021(GraphConfiguration200021* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200021(); + static const uint32_t hashCode = 3646552305; // autogenerated + +private: + // Configuration + GraphConfiguration200021 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode _lbffBayerPdaf3WithGmvNoTnrWithSapOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200021 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[30]; +}; + +class imageSubGraphTopology200022 : public GraphTopology { + +public: + imageSubGraphTopology200022(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 33, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode* lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[33]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200022 : public IStaticGraphConfig +{ +public: + StaticGraph200022(GraphConfiguration200022* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200022(); + static const uint32_t hashCode = 3944654851; // autogenerated + +private: + // Configuration + GraphConfiguration200022 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode _lbffBayerPdaf3NoGmvWithTnrWithSapOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200022 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[33]; +}; + +class imageSubGraphTopology200023 : public GraphTopology { + +public: + imageSubGraphTopology200023(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 35, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode* lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[35]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph200023 : public IStaticGraphConfig +{ +public: + StaticGraph200023(GraphConfiguration200023* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200023(); + static const uint32_t hashCode = 2699563891; // autogenerated + +private: + // Configuration + GraphConfiguration200023 _graphConfiguration; + + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode _lbffBayerPdaf3WithGmvWithTnrWithSapOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200023 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[35]; +}; + +class imageSubGraphTopology200024 : public GraphTopology { + +public: + imageSubGraphTopology200024(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 22, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDol2InputsNoGmvNoTnrNoSapOuterNode* lbffDol2InputsNoGmvNoTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[22]; + +}; + +class StaticGraph200024 : public IStaticGraphConfig +{ +public: + StaticGraph200024(GraphConfiguration200024* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200024(); + static const uint32_t hashCode = 3783302055; // autogenerated + +private: + // Configuration + GraphConfiguration200024 _graphConfiguration; + + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDol2InputsNoGmvNoTnrNoSapOuterNode _lbffDol2InputsNoGmvNoTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200024 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[22]; +}; + +class imageSubGraphTopology200025 : public GraphTopology { + +public: + imageSubGraphTopology200025(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 24, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDol2InputsWithGmvNoTnrNoSapOuterNode* lbffDol2InputsWithGmvNoTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[24]; + +}; + +class StaticGraph200025 : public IStaticGraphConfig +{ +public: + StaticGraph200025(GraphConfiguration200025* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200025(); + static const uint32_t hashCode = 251624183; // autogenerated + +private: + // Configuration + GraphConfiguration200025 _graphConfiguration; + + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDol2InputsWithGmvNoTnrNoSapOuterNode _lbffDol2InputsWithGmvNoTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200025 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[24]; +}; + +class imageSubGraphTopology200026 : public GraphTopology { + +public: + imageSubGraphTopology200026(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 25, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDol2InputsNoGmvWithTnrNoSapOuterNode* lbffDol2InputsNoGmvWithTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[25]; }; -class LbffBayerNoGmvWithTnrNoSapOuterNode : public OuterNode + +class StaticGraph200026 : public IStaticGraphConfig { public: - LbffBayerNoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200026(GraphConfiguration200026* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200026(); + static const uint32_t hashCode = 4037804759; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200026 _graphConfiguration; -}; -class LbffBayerWithGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerWithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDol2InputsNoGmvWithTnrNoSapOuterNode _lbffDol2InputsNoGmvWithTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200026 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[25]; }; -class IsysWithCvOuterNode : public OuterNode -{ -public: - IsysWithCvOuterNode(): OuterNode(){} - void Init(IsysWithCvOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200027 : public GraphTopology { -}; -class SwSegnetOuterNode : public OuterNode -{ public: - SwSegnetOuterNode(): OuterNode(){} - void Init(SwSegnetOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200027(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 27, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDol2InputsWithGmvWithTnrNoSapOuterNode* lbffDol2InputsWithGmvWithTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[27]; }; -class LbffBayerWithGmvWithTnrWithSapOuterNode : public OuterNode + +class StaticGraph200027 : public IStaticGraphConfig { public: - LbffBayerWithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200027(GraphConfiguration200027* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200027(); + static const uint32_t hashCode = 2359525479; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200027 _graphConfiguration; -}; -class SwScalerOuterNode : public OuterNode -{ -public: - SwScalerOuterNode(): OuterNode(){} - void Init(SwScalerOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDol2InputsWithGmvWithTnrNoSapOuterNode _lbffDol2InputsWithGmvWithTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200027 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[27]; }; -class SwNntmOuterNode : public OuterNode -{ -public: - SwNntmOuterNode(): OuterNode(){} - void Init(SwNntmOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200028 : public GraphTopology { -}; -class LbffBayerNoGmvWithTnrWithSapOuterNode : public OuterNode -{ public: - LbffBayerNoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200028(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 31, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDol2InputsNoGmvNoTnrWithSapOuterNode* lbffDol2InputsNoGmvNoTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[31]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class IsysPdaf2WithCvOuterNode : public OuterNode + +class StaticGraph200028 : public IStaticGraphConfig { public: - IsysPdaf2WithCvOuterNode(): OuterNode(){} - void Init(IsysPdaf2WithCvOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200028(GraphConfiguration200028* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200028(); + static const uint32_t hashCode = 93548272; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200028 _graphConfiguration; -}; -class LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf2NoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol2InputsNoGmvNoTnrWithSapOuterNode _lbffDol2InputsNoGmvNoTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200028 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[31]; }; -class LbffBayerPdaf2WithTnrWithSapOuterNode : public OuterNode -{ + +class imageSubGraphTopology200029 : public GraphTopology { + public: - LbffBayerPdaf2WithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2WithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200029(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 33, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDol2InputsWithGmvNoTnrWithSapOuterNode* lbffDol2InputsWithGmvNoTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[33]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode : public OuterNode + +class StaticGraph200029 : public IStaticGraphConfig { public: - LbffBayerPdaf3NoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200029(GraphConfiguration200029* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200029(); + static const uint32_t hashCode = 3524836440; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200029 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol2InputsWithGmvNoTnrWithSapOuterNode _lbffDol2InputsWithGmvNoTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200029 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[33]; }; -class LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode : public OuterNode -{ + +class imageSubGraphTopology200030 : public GraphTopology { + public: - LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200030(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 36, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDol2InputsNoGmvWithTnrWithSapOuterNode* lbffDol2InputsNoGmvWithTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[36]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class IsysPdaf2OuterNode : public OuterNode + +class StaticGraph200030 : public IStaticGraphConfig { public: - IsysPdaf2OuterNode(): OuterNode(){} - void Init(IsysPdaf2OuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200030(GraphConfiguration200030* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200030(); + static const uint32_t hashCode = 3969246966; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200030 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol2InputsNoGmvWithTnrWithSapOuterNode _lbffDol2InputsNoGmvWithTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200030 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[36]; }; -class LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode : public OuterNode -{ + +class imageSubGraphTopology200031 : public GraphTopology { + public: - LbffBayerPdaf2NoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200031(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 38, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDol2InputsWithGmvWithTnrWithSapOuterNode* lbffDol2InputsWithGmvWithTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[38]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode : public OuterNode + +class StaticGraph200031 : public IStaticGraphConfig { public: - LbffBayerPdaf2WithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200031(GraphConfiguration200031* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200031(); + static const uint32_t hashCode = 3946358798; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200031 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol2InputsWithGmvWithTnrWithSapOuterNode _lbffDol2InputsWithGmvWithTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200031 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[38]; }; -class LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf2NoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200032 : public GraphTopology { -}; -class LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode : public OuterNode -{ public: - LbffBayerPdaf2WithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200032(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 21, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode* lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[21]; }; -class LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode : public OuterNode + +class StaticGraph200032 : public IStaticGraphConfig { public: - LbffBayerPdaf2WithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200032(GraphConfiguration200032* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200032(); + static const uint32_t hashCode = 3774286530; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200032 _graphConfiguration; -}; -class LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3NoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode _lbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200032 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[21]; }; -class LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3WithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200033 : public GraphTopology { -}; -class LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode : public OuterNode -{ public: - LbffBayerPdaf3NoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200033(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 23, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode* lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[23]; }; -class LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode : public OuterNode + +class StaticGraph200033 : public IStaticGraphConfig { public: - LbffBayerPdaf3WithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200033(GraphConfiguration200033* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200033(); + static const uint32_t hashCode = 1167337402; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200033 _graphConfiguration; -}; -class LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3WithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode _lbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200033 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[23]; }; -class IsysDolOuterNode : public OuterNode -{ -public: - IsysDolOuterNode(): OuterNode(){} - void Init(IsysDolOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200034 : public GraphTopology { -}; -class LbffDol2InputsNoGmvNoTnrNoSapOuterNode : public OuterNode -{ public: - LbffDol2InputsNoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200034(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 24, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode* lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[24]; }; -class LbffDol2InputsWithGmvNoTnrNoSapOuterNode : public OuterNode + +class StaticGraph200034 : public IStaticGraphConfig { public: - LbffDol2InputsWithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200034(GraphConfiguration200034* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200034(); + static const uint32_t hashCode = 2279440806; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200034 _graphConfiguration; -}; -class LbffDol2InputsNoGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffDol2InputsNoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode _lbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200034 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[24]; }; -class LbffDol2InputsWithGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffDol2InputsWithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200035 : public GraphTopology { -}; -class LbffDolSmoothOuterNode : public OuterNode -{ public: - LbffDolSmoothOuterNode(): OuterNode(){} - void Init(LbffDolSmoothOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200035(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 26, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysOuterNode* isysOuterNode = nullptr; + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode* lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[26]; }; -class LbffDol3InputsNoGmvNoTnrNoSapOuterNode : public OuterNode + +class StaticGraph200035 : public IStaticGraphConfig { public: - LbffDol3InputsNoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200035(GraphConfiguration200035* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200035(); + static const uint32_t hashCode = 749036350; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200035 _graphConfiguration; -}; -class LbffDol3InputsWithGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffDol3InputsWithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysOuterNode _isysOuterNode; + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode _lbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200035 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[26]; }; -class LbffDol3InputsNoGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffDol3InputsNoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200036 : public GraphTopology { -}; -class LbffDol3InputsWithGmvWithTnrNoSapOuterNode : public OuterNode -{ public: - LbffDol3InputsWithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200036(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 29, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode* lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[29]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffRgbIrNoGmvNoTnrNoSapOuterNode : public OuterNode + +class StaticGraph200036 : public IStaticGraphConfig { public: - LbffRgbIrNoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200036(GraphConfiguration200036* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200036(); + static const uint32_t hashCode = 4138369545; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200036 _graphConfiguration; -}; -class LbffRgbIrIrNoGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffRgbIrIrNoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode _lbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200036 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[29]; }; -class LbffRgbIrWithGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffRgbIrWithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200037 : public GraphTopology { -}; -class LbffRgbIrNoGmvWithTnrNoSapOuterNode : public OuterNode -{ public: - LbffRgbIrNoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200037(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 31, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode* lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[31]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffRgbIrIrNoGmvWithTnrNoSapOuterNode : public OuterNode + +class StaticGraph200037 : public IStaticGraphConfig { public: - LbffRgbIrIrNoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200037(GraphConfiguration200037* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200037(); + static const uint32_t hashCode = 494240265; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200037 _graphConfiguration; -}; -class LbffRgbIrWithGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffRgbIrWithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode _lbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200037 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[31]; }; -class LbffIrNoGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffIrNoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffIrNoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200038 : public GraphTopology { -}; -class LbffIrWithGmvNoTnrNoSapOuterNode : public OuterNode -{ public: - LbffIrWithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffIrWithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200038(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 34, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode* lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[34]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffIrNoGmvWithTnrNoSapOuterNode : public OuterNode + +class StaticGraph200038 : public IStaticGraphConfig { public: - LbffIrNoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffIrNoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200038(GraphConfiguration200038* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200038(); + static const uint32_t hashCode = 650937483; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200038 _graphConfiguration; -}; -class LbffIrWithGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffIrWithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffIrWithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode _lbffBayerPdaf3asPdaf2NoGmvWithTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200038 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[34]; }; -class LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200039 : public GraphTopology { -}; -class LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode : public OuterNode -{ public: - LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200039(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 36, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysWithCvOuterNode* isysWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode* lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[36]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode : public OuterNode + +class StaticGraph200039 : public IStaticGraphConfig { public: - LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200039(GraphConfiguration200039* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200039(); + static const uint32_t hashCode = 4055385467; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200039 _graphConfiguration; -}; -class LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysWithCvOuterNode _isysWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode _lbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200039 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[36]; }; -class LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200040 : public GraphTopology { -}; -class LbffBayerNoGmvNoTnrWithSapOuterNode : public OuterNode -{ public: - LbffBayerNoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200040(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 24, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsNoGmvNoTnrNoSapOuterNode* lbffDol3InputsNoGmvNoTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[24]; }; -class LbffBayerWithGmvNoTnrWithSapOuterNode : public OuterNode + +class StaticGraph200040 : public IStaticGraphConfig { public: - LbffBayerWithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200040(GraphConfiguration200040* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200040(); + static const uint32_t hashCode = 3498184540; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200040 _graphConfiguration; -}; -class LbffBayerNoGmvWithTnrWithOpacityOuterNode : public OuterNode -{ -public: - LbffBayerNoGmvWithTnrWithOpacityOuterNode(): OuterNode(){} - void Init(LbffBayerNoGmvWithTnrWithOpacityOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + LbffDol3InputsNoGmvNoTnrNoSapOuterNode _lbffDol3InputsNoGmvNoTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200040 _imageSubGraph; + // All graph links + + GraphLink _graphLinks[24]; }; -class LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf2NoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200041 : public GraphTopology { -}; -class LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode : public OuterNode -{ public: - LbffBayerPdaf2WithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200041(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 26, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsWithGmvNoTnrNoSapOuterNode* lbffDol3InputsWithGmvNoTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[26]; }; -class LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode : public OuterNode + +class StaticGraph200041 : public IStaticGraphConfig { public: - LbffBayerPdaf3NoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200041(GraphConfiguration200041* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200041(); + static const uint32_t hashCode = 39707076; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200041 _graphConfiguration; + + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + LbffDol3InputsWithGmvNoTnrNoSapOuterNode _lbffDol3InputsWithGmvNoTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200041 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[26]; }; -class LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3WithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200042 : public GraphTopology { -}; -class IsysDolWithCvOuterNode : public OuterNode -{ public: - IsysDolWithCvOuterNode(): OuterNode(){} - void Init(IsysDolWithCvOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200042(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 27, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsNoGmvWithTnrNoSapOuterNode* lbffDol3InputsNoGmvWithTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[27]; }; -class LbffDol2InputsNoGmvNoTnrWithSapOuterNode : public OuterNode + +class StaticGraph200042 : public IStaticGraphConfig { public: - LbffDol2InputsNoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200042(GraphConfiguration200042* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200042(); + static const uint32_t hashCode = 1858599960; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200042 _graphConfiguration; -}; -class LbffDol2InputsWithGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffDol2InputsWithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + LbffDol3InputsNoGmvWithTnrNoSapOuterNode _lbffDol3InputsNoGmvWithTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200042 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[27]; }; -class LbffDol2InputsNoGmvWithTnrWithSapOuterNode : public OuterNode -{ -public: - LbffDol2InputsNoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200043 : public GraphTopology { -}; -class LbffDol2InputsWithGmvWithTnrWithSapOuterNode : public OuterNode -{ public: - LbffDol2InputsWithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol2InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200043(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 29, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolOuterNode* isysDolOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsWithGmvWithTnrNoSapOuterNode* lbffDol3InputsWithGmvWithTnrNoSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[29]; }; -class LbffDol3InputsNoGmvNoTnrWithSapOuterNode : public OuterNode + +class StaticGraph200043 : public IStaticGraphConfig { public: - LbffDol3InputsNoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200043(GraphConfiguration200043* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200043(); + static const uint32_t hashCode = 2374557088; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200043 _graphConfiguration; -}; -class LbffDol3InputsWithGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffDol3InputsWithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolOuterNode _isysDolOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + LbffDol3InputsWithGmvWithTnrNoSapOuterNode _lbffDol3InputsWithGmvWithTnrNoSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200043 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[29]; }; -class LbffDol3InputsNoGmvWithTnrWithSapOuterNode : public OuterNode -{ -public: - LbffDol3InputsNoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200044 : public GraphTopology { -}; -class LbffDol3InputsWithGmvWithTnrWithSapOuterNode : public OuterNode -{ public: - LbffDol3InputsWithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffDol3InputsWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200044(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 33, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsNoGmvNoTnrWithSapOuterNode* lbffDol3InputsNoGmvNoTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[33]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffRgbIrNoGmvNoTnrWithSapOuterNode : public OuterNode + +class StaticGraph200044 : public IStaticGraphConfig { public: - LbffRgbIrNoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200044(GraphConfiguration200044* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200044(); + static const uint32_t hashCode = 1799386923; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200044 _graphConfiguration; -}; -class LbffRgbIrWithGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffRgbIrWithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol3InputsNoGmvNoTnrWithSapOuterNode _lbffDol3InputsNoGmvNoTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200044 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[33]; }; -class LbffRgbIrNoGmvWithTnrWithSapOuterNode : public OuterNode -{ -public: - LbffRgbIrNoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200045 : public GraphTopology { -}; -class LbffRgbIrWithGmvWithTnrWithSapOuterNode : public OuterNode -{ public: - LbffRgbIrWithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffRgbIrWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200045(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 35, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsWithGmvNoTnrWithSapOuterNode* lbffDol3InputsWithGmvNoTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[35]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffIrNoGmvNoTnrWithSapOuterNode : public OuterNode + +class StaticGraph200045 : public IStaticGraphConfig { public: - LbffIrNoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffIrNoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200045(GraphConfiguration200045* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200045(); + static const uint32_t hashCode = 2855375451; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200045 _graphConfiguration; -}; -class LbffIrWithGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffIrWithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffIrWithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol3InputsWithGmvNoTnrWithSapOuterNode _lbffDol3InputsWithGmvNoTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200045 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[35]; }; -class LbffIrNoGmvWithTnrWithSapOuterNode : public OuterNode -{ + +class imageSubGraphTopology200046 : public GraphTopology { + public: - LbffIrNoGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffIrNoGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200046(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 38, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsNoGmvWithTnrWithSapOuterNode* lbffDol3InputsNoGmvWithTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[38]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class LbffIrWithGmvWithTnrWithSapOuterNode : public OuterNode + +class StaticGraph200046 : public IStaticGraphConfig { public: - LbffIrWithGmvWithTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffIrWithGmvWithTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200046(GraphConfiguration200046* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200046(); + static const uint32_t hashCode = 2901032385; // autogenerated + +private: + // Configuration + GraphConfiguration200046 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol3InputsNoGmvWithTnrWithSapOuterNode _lbffDol3InputsNoGmvWithTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200046 _imageSubGraph; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + // All graph links + GraphLink _graphLinks[38]; }; -class LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode : public OuterNode -{ -public: - LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +class imageSubGraphTopology200047 : public GraphTopology { -}; -class LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode : public OuterNode -{ public: - LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNode(): OuterNode(){} - void Init(LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSapOuterNodeConfiguration* selectedGraphConfiguration); + imageSubGraphTopology200047(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 40, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDolSmoothOuterNode* lbffDolSmoothOuterNode = nullptr; + LbffDol3InputsWithGmvWithTnrWithSapOuterNode* lbffDol3InputsWithGmvWithTnrWithSapOuterNode = nullptr; + SwB2bOuterNode* swB2bOuterNode = nullptr; + SwRemosaicOuterNode* swRemosaicOuterNode = nullptr; + SwAinrOuterNode* swAinrOuterNode = nullptr; + SwGdcOuterNode* swGdcOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwImvOuterNode* swImvOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[40]; +private: + StaticGraphStatus updateSegmentAwareKernels(); }; -class WithCvOuterNode : public OuterNode + +class StaticGraph200047 : public IStaticGraphConfig { public: - WithCvOuterNode(): OuterNode(){} - void Init(WithCvOuterNodeConfiguration* selectedGraphConfiguration); + StaticGraph200047(GraphConfiguration200047* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph200047(); + static const uint32_t hashCode = 1122107393; // autogenerated - void setInnerNode(InnerNodeOptionsFlags nodeInnerOptions); - void configVanishStatus(VanishOption vanishStatus) override; +private: + // Configuration + GraphConfiguration200047 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + LbffDolSmoothOuterNode _lbffDolSmoothOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol3InputsWithGmvWithTnrWithSapOuterNode _lbffDol3InputsWithGmvWithTnrWithSapOuterNode; + SwB2bOuterNode _swB2bOuterNode; + SwRemosaicOuterNode _swRemosaicOuterNode; + SwAinrOuterNode _swAinrOuterNode; + SwGdcOuterNode _swGdcOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwImvOuterNode _swImvOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology200047 _imageSubGraph; + + // All graph links + GraphLink _graphLinks[40]; }; class imageSubGraphTopology100000 : public GraphTopology { @@ -3400,9 +7304,9 @@ class imageSubGraphTopology100000 : public GraphTopology { class StaticGraph100000 : public IStaticGraphConfig { public: - StaticGraph100000(GraphConfiguration100000* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100000(GraphConfiguration100000* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100000(); - static const uint32_t hashCode = 3606712278; // autogenerated + static const uint32_t hashCode = 1522444746; // autogenerated private: // Configuration @@ -3419,6 +7323,7 @@ class StaticGraph100000 : public IStaticGraphConfig imageSubGraphTopology100000 _imageSubGraph; // All graph links + GraphLink _graphLinks[9]; }; @@ -3438,9 +7343,9 @@ class imageSubGraphTopology100001 : public GraphTopology { class StaticGraph100001 : public IStaticGraphConfig { public: - StaticGraph100001(GraphConfiguration100001* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100001(GraphConfiguration100001* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100001(); - static const uint32_t hashCode = 2338207115; // autogenerated + static const uint32_t hashCode = 1105844649; // autogenerated private: // Configuration @@ -3458,6 +7363,7 @@ class StaticGraph100001 : public IStaticGraphConfig imageSubGraphTopology100001 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -3476,9 +7382,9 @@ class imageSubGraphTopology100002 : public GraphTopology { class StaticGraph100002 : public IStaticGraphConfig { public: - StaticGraph100002(GraphConfiguration100002* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100002(GraphConfiguration100002* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100002(); - static const uint32_t hashCode = 1611086794; // autogenerated + static const uint32_t hashCode = 1992788174; // autogenerated private: // Configuration @@ -3495,6 +7401,7 @@ class StaticGraph100002 : public IStaticGraphConfig imageSubGraphTopology100002 _imageSubGraph; // All graph links + GraphLink _graphLinks[12]; }; @@ -3514,9 +7421,9 @@ class imageSubGraphTopology100003 : public GraphTopology { class StaticGraph100003 : public IStaticGraphConfig { public: - StaticGraph100003(GraphConfiguration100003* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100003(GraphConfiguration100003* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100003(); - static const uint32_t hashCode = 3612337155; // autogenerated + static const uint32_t hashCode = 1767402465; // autogenerated private: // Configuration @@ -3534,6 +7441,7 @@ class StaticGraph100003 : public IStaticGraphConfig imageSubGraphTopology100003 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -3557,9 +7465,9 @@ class imageSubGraphTopology100137 : public GraphTopology { class StaticGraph100137 : public IStaticGraphConfig { public: - StaticGraph100137(GraphConfiguration100137* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100137(GraphConfiguration100137* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100137(); - static const uint32_t hashCode = 2669089181; // autogenerated + static const uint32_t hashCode = 45191375; // autogenerated private: // Configuration @@ -3579,6 +7487,7 @@ class StaticGraph100137 : public IStaticGraphConfig imageSubGraphTopology100137 _imageSubGraph; // All graph links + GraphLink _graphLinks[29]; }; @@ -3599,9 +7508,9 @@ class imageSubGraphTopology100079 : public GraphTopology { class StaticGraph100079 : public IStaticGraphConfig { public: - StaticGraph100079(GraphConfiguration100079* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100079(GraphConfiguration100079* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100079(); - static const uint32_t hashCode = 3292273240; // autogenerated + static const uint32_t hashCode = 773132404; // autogenerated private: // Configuration @@ -3620,6 +7529,7 @@ class StaticGraph100079 : public IStaticGraphConfig imageSubGraphTopology100079 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -3640,9 +7550,9 @@ class imageSubGraphTopology100080 : public GraphTopology { class StaticGraph100080 : public IStaticGraphConfig { public: - StaticGraph100080(GraphConfiguration100080* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100080(GraphConfiguration100080* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100080(); - static const uint32_t hashCode = 2771520890; // autogenerated + static const uint32_t hashCode = 2756497462; // autogenerated private: // Configuration @@ -3661,6 +7571,7 @@ class StaticGraph100080 : public IStaticGraphConfig imageSubGraphTopology100080 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -3684,9 +7595,9 @@ class imageSubGraphTopology100138 : public GraphTopology { class StaticGraph100138 : public IStaticGraphConfig { public: - StaticGraph100138(GraphConfiguration100138* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100138(GraphConfiguration100138* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100138(); - static const uint32_t hashCode = 2375460637; // autogenerated + static const uint32_t hashCode = 432961535; // autogenerated private: // Configuration @@ -3706,6 +7617,7 @@ class StaticGraph100138 : public IStaticGraphConfig imageSubGraphTopology100138 _imageSubGraph; // All graph links + GraphLink _graphLinks[27]; }; @@ -3729,9 +7641,9 @@ class imageSubGraphTopology100142 : public GraphTopology { class StaticGraph100142 : public IStaticGraphConfig { public: - StaticGraph100142(GraphConfiguration100142* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100142(GraphConfiguration100142* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100142(); - static const uint32_t hashCode = 1657505403; // autogenerated + static const uint32_t hashCode = 1906423777; // autogenerated private: // Configuration @@ -3751,6 +7663,7 @@ class StaticGraph100142 : public IStaticGraphConfig imageSubGraphTopology100142 _imageSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -3772,9 +7685,9 @@ class imageSubGraphTopology100162 : public GraphTopology { class StaticGraph100162 : public IStaticGraphConfig { public: - StaticGraph100162(GraphConfiguration100162* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100162(GraphConfiguration100162* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100162(); - static const uint32_t hashCode = 213265143; // autogenerated + static const uint32_t hashCode = 2206653037; // autogenerated private: // Configuration @@ -3792,6 +7705,7 @@ class StaticGraph100162 : public IStaticGraphConfig imageSubGraphTopology100162 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -3815,9 +7729,9 @@ class imageSubGraphTopology100143 : public GraphTopology { class StaticGraph100143 : public IStaticGraphConfig { public: - StaticGraph100143(GraphConfiguration100143* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100143(GraphConfiguration100143* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100143(); - static const uint32_t hashCode = 54244377; // autogenerated + static const uint32_t hashCode = 66198243; // autogenerated private: // Configuration @@ -3837,6 +7751,7 @@ class StaticGraph100143 : public IStaticGraphConfig imageSubGraphTopology100143 _imageSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -3860,9 +7775,9 @@ class imageSubGraphTopology100144 : public GraphTopology { class StaticGraph100144 : public IStaticGraphConfig { public: - StaticGraph100144(GraphConfiguration100144* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100144(GraphConfiguration100144* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100144(); - static const uint32_t hashCode = 208106449; // autogenerated + static const uint32_t hashCode = 3020442763; // autogenerated private: // Configuration @@ -3882,6 +7797,7 @@ class StaticGraph100144 : public IStaticGraphConfig imageSubGraphTopology100144 _imageSubGraph; // All graph links + GraphLink _graphLinks[29]; }; @@ -3902,9 +7818,9 @@ class imageSubGraphTopology100081 : public GraphTopology { class StaticGraph100081 : public IStaticGraphConfig { public: - StaticGraph100081(GraphConfiguration100081* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100081(GraphConfiguration100081* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100081(); - static const uint32_t hashCode = 2183122914; // autogenerated + static const uint32_t hashCode = 3051061038; // autogenerated private: // Configuration @@ -3923,6 +7839,7 @@ class StaticGraph100081 : public IStaticGraphConfig imageSubGraphTopology100081 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -3941,9 +7858,9 @@ class imageSubGraphTopology100004 : public GraphTopology { class StaticGraph100004 : public IStaticGraphConfig { public: - StaticGraph100004(GraphConfiguration100004* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100004(GraphConfiguration100004* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100004(); - static const uint32_t hashCode = 778765692; // autogenerated + static const uint32_t hashCode = 1094581504; // autogenerated private: // Configuration @@ -3960,6 +7877,7 @@ class StaticGraph100004 : public IStaticGraphConfig imageSubGraphTopology100004 _imageSubGraph; // All graph links + GraphLink _graphLinks[12]; }; @@ -3979,9 +7897,9 @@ class imageSubGraphTopology100005 : public GraphTopology { class StaticGraph100005 : public IStaticGraphConfig { public: - StaticGraph100005(GraphConfiguration100005* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100005(GraphConfiguration100005* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100005(); - static const uint32_t hashCode = 3302391405; // autogenerated + static const uint32_t hashCode = 1029296263; // autogenerated private: // Configuration @@ -3999,6 +7917,7 @@ class StaticGraph100005 : public IStaticGraphConfig imageSubGraphTopology100005 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -4017,9 +7936,9 @@ class imageSubGraphTopology100006 : public GraphTopology { class StaticGraph100006 : public IStaticGraphConfig { public: - StaticGraph100006(GraphConfiguration100006* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100006(GraphConfiguration100006* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100006(); - static const uint32_t hashCode = 3187600568; // autogenerated + static const uint32_t hashCode = 399719836; // autogenerated private: // Configuration @@ -4036,6 +7955,7 @@ class StaticGraph100006 : public IStaticGraphConfig imageSubGraphTopology100006 _imageSubGraph; // All graph links + GraphLink _graphLinks[15]; }; @@ -4056,9 +7976,9 @@ class imageSubGraphTopology100066 : public GraphTopology { class StaticGraph100066 : public IStaticGraphConfig { public: - StaticGraph100066(GraphConfiguration100066* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100066(GraphConfiguration100066* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100066(); - static const uint32_t hashCode = 1660201754; // autogenerated + static const uint32_t hashCode = 2605096182; // autogenerated private: // Configuration @@ -4077,6 +7997,7 @@ class StaticGraph100066 : public IStaticGraphConfig imageSubGraphTopology100066 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -4096,9 +8017,9 @@ class imageSubGraphTopology100007 : public GraphTopology { class StaticGraph100007 : public IStaticGraphConfig { public: - StaticGraph100007(GraphConfiguration100007* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100007(GraphConfiguration100007* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100007(); - static const uint32_t hashCode = 1629221853; // autogenerated + static const uint32_t hashCode = 3834807223; // autogenerated private: // Configuration @@ -4116,6 +8037,7 @@ class StaticGraph100007 : public IStaticGraphConfig imageSubGraphTopology100007 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -4137,9 +8059,9 @@ class imageSubGraphTopology100067 : public GraphTopology { class StaticGraph100067 : public IStaticGraphConfig { public: - StaticGraph100067(GraphConfiguration100067* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100067(GraphConfiguration100067* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100067(); - static const uint32_t hashCode = 2081862971; // autogenerated + static const uint32_t hashCode = 2210564785; // autogenerated private: // Configuration @@ -4159,6 +8081,7 @@ class StaticGraph100067 : public IStaticGraphConfig imageSubGraphTopology100067 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -4182,9 +8105,9 @@ class imageSubGraphTopology100139 : public GraphTopology { class StaticGraph100139 : public IStaticGraphConfig { public: - StaticGraph100139(GraphConfiguration100139* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100139(GraphConfiguration100139* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100139(); - static const uint32_t hashCode = 1996936075; // autogenerated + static const uint32_t hashCode = 1969300705; // autogenerated private: // Configuration @@ -4204,6 +8127,7 @@ class StaticGraph100139 : public IStaticGraphConfig imageSubGraphTopology100139 _imageSubGraph; // All graph links + GraphLink _graphLinks[32]; }; @@ -4225,9 +8149,9 @@ class imageSubGraphTopology100169 : public GraphTopology { class StaticGraph100169 : public IStaticGraphConfig { public: - StaticGraph100169(GraphConfiguration100169* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100169(GraphConfiguration100169* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100169(); - static const uint32_t hashCode = 213265143; // autogenerated + static const uint32_t hashCode = 2206653037; // autogenerated private: // Configuration @@ -4245,6 +8169,7 @@ class StaticGraph100169 : public IStaticGraphConfig imageSubGraphTopology100169 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -4263,9 +8188,9 @@ class imageSubGraphTopology100008 : public GraphTopology { class StaticGraph100008 : public IStaticGraphConfig { public: - StaticGraph100008(GraphConfiguration100008* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100008(GraphConfiguration100008* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100008(); - static const uint32_t hashCode = 683313206; // autogenerated + static const uint32_t hashCode = 3083944874; // autogenerated private: // Configuration @@ -4282,6 +8207,7 @@ class StaticGraph100008 : public IStaticGraphConfig imageSubGraphTopology100008 _imageSubGraph; // All graph links + GraphLink _graphLinks[10]; }; @@ -4301,9 +8227,9 @@ class imageSubGraphTopology100009 : public GraphTopology { class StaticGraph100009 : public IStaticGraphConfig { public: - StaticGraph100009(GraphConfiguration100009* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100009(GraphConfiguration100009* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100009(); - static const uint32_t hashCode = 587613087; // autogenerated + static const uint32_t hashCode = 2745120197; // autogenerated private: // Configuration @@ -4321,6 +8247,7 @@ class StaticGraph100009 : public IStaticGraphConfig imageSubGraphTopology100009 _imageSubGraph; // All graph links + GraphLink _graphLinks[15]; }; @@ -4339,9 +8266,9 @@ class imageSubGraphTopology100010 : public GraphTopology { class StaticGraph100010 : public IStaticGraphConfig { public: - StaticGraph100010(GraphConfiguration100010* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100010(GraphConfiguration100010* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100010(); - static const uint32_t hashCode = 2745339738; // autogenerated + static const uint32_t hashCode = 1015515006; // autogenerated private: // Configuration @@ -4358,6 +8285,7 @@ class StaticGraph100010 : public IStaticGraphConfig imageSubGraphTopology100010 _imageSubGraph; // All graph links + GraphLink _graphLinks[13]; }; @@ -4377,9 +8305,9 @@ class imageSubGraphTopology100011 : public GraphTopology { class StaticGraph100011 : public IStaticGraphConfig { public: - StaticGraph100011(GraphConfiguration100011* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100011(GraphConfiguration100011* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100011(); - static const uint32_t hashCode = 2589037367; // autogenerated + static const uint32_t hashCode = 1880667005; // autogenerated private: // Configuration @@ -4397,6 +8325,7 @@ class StaticGraph100011 : public IStaticGraphConfig imageSubGraphTopology100011 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -4420,9 +8349,9 @@ class imageSubGraphTopology100140 : public GraphTopology { class StaticGraph100140 : public IStaticGraphConfig { public: - StaticGraph100140(GraphConfiguration100140* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100140(GraphConfiguration100140* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100140(); - static const uint32_t hashCode = 540897273; // autogenerated + static const uint32_t hashCode = 2826678547; // autogenerated private: // Configuration @@ -4442,6 +8371,7 @@ class StaticGraph100140 : public IStaticGraphConfig imageSubGraphTopology100140 _imageSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -4462,9 +8392,9 @@ class imageSubGraphTopology100045 : public GraphTopology { class StaticGraph100045 : public IStaticGraphConfig { public: - StaticGraph100045(GraphConfiguration100045* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100045(GraphConfiguration100045* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100045(); - static const uint32_t hashCode = 2053336768; // autogenerated + static const uint32_t hashCode = 2339897452; // autogenerated private: // Configuration @@ -4483,6 +8413,7 @@ class StaticGraph100045 : public IStaticGraphConfig imageSubGraphTopology100045 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -4503,9 +8434,9 @@ class imageSubGraphTopology100012 : public GraphTopology { class StaticGraph100012 : public IStaticGraphConfig { public: - StaticGraph100012(GraphConfiguration100012* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100012(GraphConfiguration100012* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100012(); - static const uint32_t hashCode = 3638031552; // autogenerated + static const uint32_t hashCode = 215738356; // autogenerated private: // Configuration @@ -4524,6 +8455,7 @@ class StaticGraph100012 : public IStaticGraphConfig imageSubGraphTopology100012 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -4543,9 +8475,9 @@ class imageSubGraphTopology100013 : public GraphTopology { class StaticGraph100013 : public IStaticGraphConfig { public: - StaticGraph100013(GraphConfiguration100013* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100013(GraphConfiguration100013* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100013(); - static const uint32_t hashCode = 2391021659; // autogenerated + static const uint32_t hashCode = 3893270369; // autogenerated private: // Configuration @@ -4563,6 +8495,7 @@ class StaticGraph100013 : public IStaticGraphConfig imageSubGraphTopology100013 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -4583,9 +8516,9 @@ class imageSubGraphTopology100014 : public GraphTopology { class StaticGraph100014 : public IStaticGraphConfig { public: - StaticGraph100014(GraphConfiguration100014* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100014(GraphConfiguration100014* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100014(); - static const uint32_t hashCode = 2466130412; // autogenerated + static const uint32_t hashCode = 4055897344; // autogenerated private: // Configuration @@ -4604,6 +8537,7 @@ class StaticGraph100014 : public IStaticGraphConfig imageSubGraphTopology100014 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -4623,9 +8557,9 @@ class imageSubGraphTopology100015 : public GraphTopology { class StaticGraph100015 : public IStaticGraphConfig { public: - StaticGraph100015(GraphConfiguration100015* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100015(GraphConfiguration100015* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100015(); - static const uint32_t hashCode = 750648467; // autogenerated + static const uint32_t hashCode = 3271382345; // autogenerated private: // Configuration @@ -4643,6 +8577,7 @@ class StaticGraph100015 : public IStaticGraphConfig imageSubGraphTopology100015 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -4664,9 +8599,9 @@ class imageSubGraphTopology100016 : public GraphTopology { class StaticGraph100016 : public IStaticGraphConfig { public: - StaticGraph100016(GraphConfiguration100016* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100016(GraphConfiguration100016* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100016(); - static const uint32_t hashCode = 2273415613; // autogenerated + static const uint32_t hashCode = 45477583; // autogenerated private: // Configuration @@ -4686,6 +8621,7 @@ class StaticGraph100016 : public IStaticGraphConfig imageSubGraphTopology100016 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -4706,9 +8642,9 @@ class imageSubGraphTopology100017 : public GraphTopology { class StaticGraph100017 : public IStaticGraphConfig { public: - StaticGraph100017(GraphConfiguration100017* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100017(GraphConfiguration100017* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100017(); - static const uint32_t hashCode = 1810699938; // autogenerated + static const uint32_t hashCode = 953964422; // autogenerated private: // Configuration @@ -4727,6 +8663,7 @@ class StaticGraph100017 : public IStaticGraphConfig imageSubGraphTopology100017 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -4748,9 +8685,9 @@ class imageSubGraphTopology100018 : public GraphTopology { class StaticGraph100018 : public IStaticGraphConfig { public: - StaticGraph100018(GraphConfiguration100018* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100018(GraphConfiguration100018* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100018(); - static const uint32_t hashCode = 1659002573; // autogenerated + static const uint32_t hashCode = 3766431663; // autogenerated private: // Configuration @@ -4770,6 +8707,7 @@ class StaticGraph100018 : public IStaticGraphConfig imageSubGraphTopology100018 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -4790,9 +8728,9 @@ class imageSubGraphTopology100019 : public GraphTopology { class StaticGraph100019 : public IStaticGraphConfig { public: - StaticGraph100019(GraphConfiguration100019* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100019(GraphConfiguration100019* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100019(); - static const uint32_t hashCode = 881794694; // autogenerated + static const uint32_t hashCode = 2984534170; // autogenerated private: // Configuration @@ -4811,6 +8749,7 @@ class StaticGraph100019 : public IStaticGraphConfig imageSubGraphTopology100019 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -4855,9 +8794,9 @@ class image_irSubGraphTopology100020 : public GraphTopology { class StaticGraph100020 : public IStaticGraphConfig { public: - StaticGraph100020(GraphConfiguration100020* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100020(GraphConfiguration100020* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100020(); - static const uint32_t hashCode = 2978207183; // autogenerated + static const uint32_t hashCode = 4245298421; // autogenerated private: // Configuration @@ -4877,6 +8816,7 @@ class StaticGraph100020 : public IStaticGraphConfig image_irSubGraphTopology100020 _image_irSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -4923,9 +8863,9 @@ class image_irSubGraphTopology100021 : public GraphTopology { class StaticGraph100021 : public IStaticGraphConfig { public: - StaticGraph100021(GraphConfiguration100021* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100021(GraphConfiguration100021* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100021(); - static const uint32_t hashCode = 1451805066; // autogenerated + static const uint32_t hashCode = 1464818630; // autogenerated private: // Configuration @@ -4946,6 +8886,7 @@ class StaticGraph100021 : public IStaticGraphConfig image_irSubGraphTopology100021 _image_irSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -4990,9 +8931,9 @@ class image_irSubGraphTopology100022 : public GraphTopology { class StaticGraph100022 : public IStaticGraphConfig { public: - StaticGraph100022(GraphConfiguration100022* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100022(GraphConfiguration100022* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100022(); - static const uint32_t hashCode = 760998383; // autogenerated + static const uint32_t hashCode = 1167817829; // autogenerated private: // Configuration @@ -5012,6 +8953,7 @@ class StaticGraph100022 : public IStaticGraphConfig image_irSubGraphTopology100022 _image_irSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -5058,9 +9000,9 @@ class image_irSubGraphTopology100023 : public GraphTopology { class StaticGraph100023 : public IStaticGraphConfig { public: - StaticGraph100023(GraphConfiguration100023* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100023(GraphConfiguration100023* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100023(); - static const uint32_t hashCode = 3694669938; // autogenerated + static const uint32_t hashCode = 1474625774; // autogenerated private: // Configuration @@ -5081,6 +9023,7 @@ class StaticGraph100023 : public IStaticGraphConfig image_irSubGraphTopology100023 _image_irSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -5098,9 +9041,9 @@ class imageSubGraphTopology100024 : public GraphTopology { class StaticGraph100024 : public IStaticGraphConfig { public: - StaticGraph100024(GraphConfiguration100024* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100024(GraphConfiguration100024* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100024(); - static const uint32_t hashCode = 3866835831; // autogenerated + static const uint32_t hashCode = 3882192597; // autogenerated private: // Configuration @@ -5116,6 +9059,7 @@ class StaticGraph100024 : public IStaticGraphConfig imageSubGraphTopology100024 _imageSubGraph; // All graph links + GraphLink _graphLinks[8]; }; @@ -5134,9 +9078,9 @@ class imageSubGraphTopology100040 : public GraphTopology { class StaticGraph100040 : public IStaticGraphConfig { public: - StaticGraph100040(GraphConfiguration100040* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100040(GraphConfiguration100040* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100040(); - static const uint32_t hashCode = 651931886; // autogenerated + static const uint32_t hashCode = 3246908538; // autogenerated private: // Configuration @@ -5153,6 +9097,7 @@ class StaticGraph100040 : public IStaticGraphConfig imageSubGraphTopology100040 _imageSubGraph; // All graph links + GraphLink _graphLinks[13]; }; @@ -5171,9 +9116,9 @@ class imageSubGraphTopology100041 : public GraphTopology { class StaticGraph100041 : public IStaticGraphConfig { public: - StaticGraph100041(GraphConfiguration100041* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100041(GraphConfiguration100041* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100041(); - static const uint32_t hashCode = 3133264226; // autogenerated + static const uint32_t hashCode = 4081602974; // autogenerated private: // Configuration @@ -5190,6 +9135,7 @@ class StaticGraph100041 : public IStaticGraphConfig imageSubGraphTopology100041 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -5207,9 +9153,9 @@ class imageSubGraphTopology100042 : public GraphTopology { class StaticGraph100042 : public IStaticGraphConfig { public: - StaticGraph100042(GraphConfiguration100042* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100042(GraphConfiguration100042* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100042(); - static const uint32_t hashCode = 3093801215; // autogenerated + static const uint32_t hashCode = 887432477; // autogenerated private: // Configuration @@ -5225,6 +9171,7 @@ class StaticGraph100042 : public IStaticGraphConfig imageSubGraphTopology100042 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -5243,9 +9190,9 @@ class imageSubGraphTopology100027 : public GraphTopology { class StaticGraph100027 : public IStaticGraphConfig { public: - StaticGraph100027(GraphConfiguration100027* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100027(GraphConfiguration100027* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100027(); - static const uint32_t hashCode = 2271489986; // autogenerated + static const uint32_t hashCode = 2928001630; // autogenerated private: // Configuration @@ -5262,6 +9209,7 @@ class StaticGraph100027 : public IStaticGraphConfig imageSubGraphTopology100027 _imageSubGraph; // All graph links + GraphLink _graphLinks[9]; }; @@ -5281,9 +9229,9 @@ class imageSubGraphTopology100028 : public GraphTopology { class StaticGraph100028 : public IStaticGraphConfig { public: - StaticGraph100028(GraphConfiguration100028* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100028(GraphConfiguration100028* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100028(); - static const uint32_t hashCode = 3678909983; // autogenerated + static const uint32_t hashCode = 2011278349; // autogenerated private: // Configuration @@ -5301,6 +9249,7 @@ class StaticGraph100028 : public IStaticGraphConfig imageSubGraphTopology100028 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -5319,9 +9268,9 @@ class imageSubGraphTopology100029 : public GraphTopology { class StaticGraph100029 : public IStaticGraphConfig { public: - StaticGraph100029(GraphConfiguration100029* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100029(GraphConfiguration100029* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100029(); - static const uint32_t hashCode = 1855734806; // autogenerated + static const uint32_t hashCode = 922691010; // autogenerated private: // Configuration @@ -5338,6 +9287,7 @@ class StaticGraph100029 : public IStaticGraphConfig imageSubGraphTopology100029 _imageSubGraph; // All graph links + GraphLink _graphLinks[12]; }; @@ -5357,9 +9307,9 @@ class imageSubGraphTopology100030 : public GraphTopology { class StaticGraph100030 : public IStaticGraphConfig { public: - StaticGraph100030(GraphConfiguration100030* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100030(GraphConfiguration100030* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100030(); - static const uint32_t hashCode = 240659831; // autogenerated + static const uint32_t hashCode = 3057898757; // autogenerated private: // Configuration @@ -5377,6 +9327,7 @@ class StaticGraph100030 : public IStaticGraphConfig imageSubGraphTopology100030 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -5395,9 +9346,9 @@ class imageSubGraphTopology100031 : public GraphTopology { class StaticGraph100031 : public IStaticGraphConfig { public: - StaticGraph100031(GraphConfiguration100031* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100031(GraphConfiguration100031* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100031(); - static const uint32_t hashCode = 3217995042; // autogenerated + static const uint32_t hashCode = 3600854270; // autogenerated private: // Configuration @@ -5414,6 +9365,7 @@ class StaticGraph100031 : public IStaticGraphConfig imageSubGraphTopology100031 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -5433,9 +9385,9 @@ class imageSubGraphTopology100032 : public GraphTopology { class StaticGraph100032 : public IStaticGraphConfig { public: - StaticGraph100032(GraphConfiguration100032* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100032(GraphConfiguration100032* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100032(); - static const uint32_t hashCode = 540488663; // autogenerated + static const uint32_t hashCode = 2018298469; // autogenerated private: // Configuration @@ -5453,6 +9405,7 @@ class StaticGraph100032 : public IStaticGraphConfig imageSubGraphTopology100032 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -5471,9 +9424,9 @@ class imageSubGraphTopology100033 : public GraphTopology { class StaticGraph100033 : public IStaticGraphConfig { public: - StaticGraph100033(GraphConfiguration100033* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100033(GraphConfiguration100033* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100033(); - static const uint32_t hashCode = 1174038390; // autogenerated + static const uint32_t hashCode = 1273478754; // autogenerated private: // Configuration @@ -5490,6 +9443,7 @@ class StaticGraph100033 : public IStaticGraphConfig imageSubGraphTopology100033 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -5509,9 +9463,9 @@ class imageSubGraphTopology100034 : public GraphTopology { class StaticGraph100034 : public IStaticGraphConfig { public: - StaticGraph100034(GraphConfiguration100034* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100034(GraphConfiguration100034* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100034(); - static const uint32_t hashCode = 2445061071; // autogenerated + static const uint32_t hashCode = 1962191709; // autogenerated private: // Configuration @@ -5529,6 +9483,7 @@ class StaticGraph100034 : public IStaticGraphConfig imageSubGraphTopology100034 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -5552,9 +9507,9 @@ class imageSubGraphTopology100141 : public GraphTopology { class StaticGraph100141 : public IStaticGraphConfig { public: - StaticGraph100141(GraphConfiguration100141* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100141(GraphConfiguration100141* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100141(); - static const uint32_t hashCode = 3299058353; // autogenerated + static const uint32_t hashCode = 459279291; // autogenerated private: // Configuration @@ -5574,6 +9529,7 @@ class StaticGraph100141 : public IStaticGraphConfig imageSubGraphTopology100141 _imageSubGraph; // All graph links + GraphLink _graphLinks[31]; }; @@ -5595,9 +9551,9 @@ class imageSubGraphTopology100100 : public GraphTopology { class StaticGraph100100 : public IStaticGraphConfig { public: - StaticGraph100100(GraphConfiguration100100* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100100(GraphConfiguration100100* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100100(); - static const uint32_t hashCode = 838152803; // autogenerated + static const uint32_t hashCode = 3556363137; // autogenerated private: // Configuration @@ -5615,6 +9571,7 @@ class StaticGraph100100 : public IStaticGraphConfig imageSubGraphTopology100100 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -5637,9 +9594,9 @@ class imageSubGraphTopology100101 : public GraphTopology { class StaticGraph100101 : public IStaticGraphConfig { public: - StaticGraph100101(GraphConfiguration100101* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100101(GraphConfiguration100101* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100101(); - static const uint32_t hashCode = 3829251702; // autogenerated + static const uint32_t hashCode = 3566296298; // autogenerated private: // Configuration @@ -5658,6 +9615,7 @@ class StaticGraph100101 : public IStaticGraphConfig imageSubGraphTopology100101 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -5679,9 +9637,9 @@ class imageSubGraphTopology100102 : public GraphTopology { class StaticGraph100102 : public IStaticGraphConfig { public: - StaticGraph100102(GraphConfiguration100102* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100102(GraphConfiguration100102* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100102(); - static const uint32_t hashCode = 2571677489; // autogenerated + static const uint32_t hashCode = 2998053651; // autogenerated private: // Configuration @@ -5699,6 +9657,7 @@ class StaticGraph100102 : public IStaticGraphConfig imageSubGraphTopology100102 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -5720,9 +9679,9 @@ class imageSubGraphTopology100157 : public GraphTopology { class StaticGraph100157 : public IStaticGraphConfig { public: - StaticGraph100157(GraphConfiguration100157* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100157(GraphConfiguration100157* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100157(); - static const uint32_t hashCode = 3037509323; // autogenerated + static const uint32_t hashCode = 117824145; // autogenerated private: // Configuration @@ -5740,6 +9699,7 @@ class StaticGraph100157 : public IStaticGraphConfig imageSubGraphTopology100157 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -5762,9 +9722,9 @@ class imageSubGraphTopology100103 : public GraphTopology { class StaticGraph100103 : public IStaticGraphConfig { public: - StaticGraph100103(GraphConfiguration100103* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100103(GraphConfiguration100103* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100103(); - static const uint32_t hashCode = 2173467496; // autogenerated + static const uint32_t hashCode = 4074792460; // autogenerated private: // Configuration @@ -5783,9 +9743,56 @@ class StaticGraph100103 : public IStaticGraphConfig imageSubGraphTopology100103 _imageSubGraph; // All graph links + GraphLink _graphLinks[27]; }; +class imageSubGraphTopology101114 : public GraphTopology { + +public: + imageSubGraphTopology101114(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 25, sinkMappingConfiguration) {} + StaticGraphStatus configInnerNodes(SubGraphInnerNodeConfiguration& subGraphInnerNodeConfiguration) override; + + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + SwSegnetOuterNode* swSegnetOuterNode = nullptr; + LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode* lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode = nullptr; + SwNntmOuterNode* swNntmOuterNode = nullptr; + SwScalerOuterNode* swScalerOuterNode = nullptr; + GraphLink* subGraphLinks[25]; + +private: + StaticGraphStatus updateSegmentAwareKernels(); +}; + +class StaticGraph101114 : public IStaticGraphConfig +{ +public: + StaticGraph101114(GraphConfiguration101114* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph101114(); + static const uint32_t hashCode = 1694801375; // autogenerated + +private: + // Configuration + GraphConfiguration101114 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + SwSegnetOuterNode _swSegnetOuterNode; + LbffDol2InputsNoGmvWithTnrWithOpacityOuterNode _lbffDol2InputsNoGmvWithTnrWithOpacityOuterNode; + SwNntmOuterNode _swNntmOuterNode; + SwScalerOuterNode _swScalerOuterNode; + + /* + Topology + */ + // Sub Graphs definition + imageSubGraphTopology101114 _imageSubGraph; + + // All graph links + + GraphLink _graphLinks[25]; +}; + class imageSubGraphTopology100135 : public GraphTopology { public: @@ -5806,9 +9813,9 @@ class imageSubGraphTopology100135 : public GraphTopology { class StaticGraph100135 : public IStaticGraphConfig { public: - StaticGraph100135(GraphConfiguration100135* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100135(GraphConfiguration100135* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100135(); - static const uint32_t hashCode = 488378031; // autogenerated + static const uint32_t hashCode = 3029162029; // autogenerated private: // Configuration @@ -5828,6 +9835,7 @@ class StaticGraph100135 : public IStaticGraphConfig imageSubGraphTopology100135 _imageSubGraph; // All graph links + GraphLink _graphLinks[27]; }; @@ -5849,9 +9857,9 @@ class imageSubGraphTopology100104 : public GraphTopology { class StaticGraph100104 : public IStaticGraphConfig { public: - StaticGraph100104(GraphConfiguration100104* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100104(GraphConfiguration100104* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100104(); - static const uint32_t hashCode = 4158837589; // autogenerated + static const uint32_t hashCode = 1806917903; // autogenerated private: // Configuration @@ -5869,6 +9877,7 @@ class StaticGraph100104 : public IStaticGraphConfig imageSubGraphTopology100104 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -5891,9 +9900,9 @@ class imageSubGraphTopology100105 : public GraphTopology { class StaticGraph100105 : public IStaticGraphConfig { public: - StaticGraph100105(GraphConfiguration100105* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100105(GraphConfiguration100105* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100105(); - static const uint32_t hashCode = 3417791676; // autogenerated + static const uint32_t hashCode = 1551375760; // autogenerated private: // Configuration @@ -5912,6 +9921,7 @@ class StaticGraph100105 : public IStaticGraphConfig imageSubGraphTopology100105 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -5933,9 +9943,9 @@ class imageSubGraphTopology100106 : public GraphTopology { class StaticGraph100106 : public IStaticGraphConfig { public: - StaticGraph100106(GraphConfiguration100106* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100106(GraphConfiguration100106* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100106(); - static const uint32_t hashCode = 1840251255; // autogenerated + static const uint32_t hashCode = 597674829; // autogenerated private: // Configuration @@ -5953,6 +9963,7 @@ class StaticGraph100106 : public IStaticGraphConfig imageSubGraphTopology100106 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -5976,9 +9987,9 @@ class imageSubGraphTopology100166 : public GraphTopology { class StaticGraph100166 : public IStaticGraphConfig { public: - StaticGraph100166(GraphConfiguration100166* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100166(GraphConfiguration100166* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100166(); - static const uint32_t hashCode = 427712561; // autogenerated + static const uint32_t hashCode = 2536205451; // autogenerated private: // Configuration @@ -5998,6 +10009,7 @@ class StaticGraph100166 : public IStaticGraphConfig imageSubGraphTopology100166 _imageSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -6020,9 +10032,9 @@ class imageSubGraphTopology100107 : public GraphTopology { class StaticGraph100107 : public IStaticGraphConfig { public: - StaticGraph100107(GraphConfiguration100107* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100107(GraphConfiguration100107* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100107(); - static const uint32_t hashCode = 1568975954; // autogenerated + static const uint32_t hashCode = 1366707606; // autogenerated private: // Configuration @@ -6041,6 +10053,7 @@ class StaticGraph100107 : public IStaticGraphConfig imageSubGraphTopology100107 _imageSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -6065,9 +10078,9 @@ class imageSubGraphTopology100145 : public GraphTopology { class StaticGraph100145 : public IStaticGraphConfig { public: - StaticGraph100145(GraphConfiguration100145* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100145(GraphConfiguration100145* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100145(); - static const uint32_t hashCode = 1291774712; // autogenerated + static const uint32_t hashCode = 344075652; // autogenerated private: // Configuration @@ -6088,6 +10101,7 @@ class StaticGraph100145 : public IStaticGraphConfig imageSubGraphTopology100145 _imageSubGraph; // All graph links + GraphLink _graphLinks[33]; }; @@ -6109,9 +10123,9 @@ class imageSubGraphTopology100108 : public GraphTopology { class StaticGraph100108 : public IStaticGraphConfig { public: - StaticGraph100108(GraphConfiguration100108* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100108(GraphConfiguration100108* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100108(); - static const uint32_t hashCode = 4166248271; // autogenerated + static const uint32_t hashCode = 2133957557; // autogenerated private: // Configuration @@ -6129,6 +10143,7 @@ class StaticGraph100108 : public IStaticGraphConfig imageSubGraphTopology100108 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -6151,9 +10166,9 @@ class imageSubGraphTopology100109 : public GraphTopology { class StaticGraph100109 : public IStaticGraphConfig { public: - StaticGraph100109(GraphConfiguration100109* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100109(GraphConfiguration100109* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100109(); - static const uint32_t hashCode = 1567385454; // autogenerated + static const uint32_t hashCode = 2702714386; // autogenerated private: // Configuration @@ -6172,6 +10187,7 @@ class StaticGraph100109 : public IStaticGraphConfig imageSubGraphTopology100109 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -6193,9 +10209,9 @@ class imageSubGraphTopology100110 : public GraphTopology { class StaticGraph100110 : public IStaticGraphConfig { public: - StaticGraph100110(GraphConfiguration100110* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100110(GraphConfiguration100110* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100110(); - static const uint32_t hashCode = 2946032957; // autogenerated + static const uint32_t hashCode = 2511889479; // autogenerated private: // Configuration @@ -6213,6 +10229,7 @@ class StaticGraph100110 : public IStaticGraphConfig imageSubGraphTopology100110 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -6235,9 +10252,9 @@ class imageSubGraphTopology100111 : public GraphTopology { class StaticGraph100111 : public IStaticGraphConfig { public: - StaticGraph100111(GraphConfiguration100111* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100111(GraphConfiguration100111* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100111(); - static const uint32_t hashCode = 1260174368; // autogenerated + static const uint32_t hashCode = 2606404484; // autogenerated private: // Configuration @@ -6256,6 +10273,7 @@ class StaticGraph100111 : public IStaticGraphConfig imageSubGraphTopology100111 _imageSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -6279,9 +10297,9 @@ class imageSubGraphTopology100136 : public GraphTopology { class StaticGraph100136 : public IStaticGraphConfig { public: - StaticGraph100136(GraphConfiguration100136* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100136(GraphConfiguration100136* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100136(); - static const uint32_t hashCode = 1504411379; // autogenerated + static const uint32_t hashCode = 834725913; // autogenerated private: // Configuration @@ -6301,6 +10319,7 @@ class StaticGraph100136 : public IStaticGraphConfig imageSubGraphTopology100136 _imageSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -6324,9 +10343,9 @@ class imageSubGraphTopology100200 : public GraphTopology { class StaticGraph100200 : public IStaticGraphConfig { public: - StaticGraph100200(GraphConfiguration100200* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100200(GraphConfiguration100200* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100200(); - static const uint32_t hashCode = 1648156307; // autogenerated + static const uint32_t hashCode = 3630993513; // autogenerated private: // Configuration @@ -6346,6 +10365,7 @@ class StaticGraph100200 : public IStaticGraphConfig imageSubGraphTopology100200 _imageSubGraph; // All graph links + GraphLink _graphLinks[29]; }; @@ -6366,9 +10386,9 @@ class imageSubGraphTopology100201 : public GraphTopology { class StaticGraph100201 : public IStaticGraphConfig { public: - StaticGraph100201(GraphConfiguration100201* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100201(GraphConfiguration100201* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100201(); - static const uint32_t hashCode = 2402658320; // autogenerated + static const uint32_t hashCode = 2977685764; // autogenerated private: // Configuration @@ -6387,6 +10407,7 @@ class StaticGraph100201 : public IStaticGraphConfig imageSubGraphTopology100201 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -6408,9 +10429,9 @@ class imageSubGraphTopology100112 : public GraphTopology { class StaticGraph100112 : public IStaticGraphConfig { public: - StaticGraph100112(GraphConfiguration100112* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100112(GraphConfiguration100112* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100112(); - static const uint32_t hashCode = 117946035; // autogenerated + static const uint32_t hashCode = 1497638649; // autogenerated private: // Configuration @@ -6428,6 +10449,7 @@ class StaticGraph100112 : public IStaticGraphConfig imageSubGraphTopology100112 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -6450,9 +10472,9 @@ class imageSubGraphTopology100113 : public GraphTopology { class StaticGraph100113 : public IStaticGraphConfig { public: - StaticGraph100113(GraphConfiguration100113* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100113(GraphConfiguration100113* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100113(); - static const uint32_t hashCode = 2920275798; // autogenerated + static const uint32_t hashCode = 1545153954; // autogenerated private: // Configuration @@ -6471,6 +10493,7 @@ class StaticGraph100113 : public IStaticGraphConfig imageSubGraphTopology100113 _imageSubGraph; // All graph links + GraphLink _graphLinks[26]; }; @@ -6494,9 +10517,9 @@ class imageSubGraphTopology100114 : public GraphTopology { class StaticGraph100114 : public IStaticGraphConfig { public: - StaticGraph100114(GraphConfiguration100114* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100114(GraphConfiguration100114* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100114(); - static const uint32_t hashCode = 1068363007; // autogenerated + static const uint32_t hashCode = 274750405; // autogenerated private: // Configuration @@ -6516,6 +10539,7 @@ class StaticGraph100114 : public IStaticGraphConfig imageSubGraphTopology100114 _imageSubGraph; // All graph links + GraphLink _graphLinks[31]; }; @@ -6539,9 +10563,9 @@ class imageSubGraphTopology100146 : public GraphTopology { class StaticGraph100146 : public IStaticGraphConfig { public: - StaticGraph100146(GraphConfiguration100146* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100146(GraphConfiguration100146* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100146(); - static const uint32_t hashCode = 3287118253; // autogenerated + static const uint32_t hashCode = 2727273223; // autogenerated private: // Configuration @@ -6561,6 +10585,7 @@ class StaticGraph100146 : public IStaticGraphConfig imageSubGraphTopology100146 _imageSubGraph; // All graph links + GraphLink _graphLinks[31]; }; @@ -6583,9 +10608,9 @@ class imageSubGraphTopology100115 : public GraphTopology { class StaticGraph100115 : public IStaticGraphConfig { public: - StaticGraph100115(GraphConfiguration100115* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100115(GraphConfiguration100115* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100115(); - static const uint32_t hashCode = 860536840; // autogenerated + static const uint32_t hashCode = 1251250420; // autogenerated private: // Configuration @@ -6604,6 +10629,7 @@ class StaticGraph100115 : public IStaticGraphConfig imageSubGraphTopology100115 _imageSubGraph; // All graph links + GraphLink _graphLinks[31]; }; @@ -6626,9 +10652,9 @@ class imageSubGraphTopology100116 : public GraphTopology { class StaticGraph100116 : public IStaticGraphConfig { public: - StaticGraph100116(GraphConfiguration100116* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100116(GraphConfiguration100116* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100116(); - static const uint32_t hashCode = 2314648786; // autogenerated + static const uint32_t hashCode = 1189982662; // autogenerated private: // Configuration @@ -6647,6 +10673,7 @@ class StaticGraph100116 : public IStaticGraphConfig imageSubGraphTopology100116 _imageSubGraph; // All graph links + GraphLink _graphLinks[23]; }; @@ -6670,9 +10697,9 @@ class imageSubGraphTopology100117 : public GraphTopology { class StaticGraph100117 : public IStaticGraphConfig { public: - StaticGraph100117(GraphConfiguration100117* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100117(GraphConfiguration100117* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100117(); - static const uint32_t hashCode = 1743781943; // autogenerated + static const uint32_t hashCode = 2476175693; // autogenerated private: // Configuration @@ -6692,6 +10719,7 @@ class StaticGraph100117 : public IStaticGraphConfig imageSubGraphTopology100117 _imageSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -6714,9 +10742,9 @@ class imageSubGraphTopology100118 : public GraphTopology { class StaticGraph100118 : public IStaticGraphConfig { public: - StaticGraph100118(GraphConfiguration100118* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100118(GraphConfiguration100118* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100118(); - static const uint32_t hashCode = 498818412; // autogenerated + static const uint32_t hashCode = 2508084080; // autogenerated private: // Configuration @@ -6735,6 +10763,7 @@ class StaticGraph100118 : public IStaticGraphConfig imageSubGraphTopology100118 _imageSubGraph; // All graph links + GraphLink _graphLinks[28]; }; @@ -6758,9 +10787,9 @@ class imageSubGraphTopology100119 : public GraphTopology { class StaticGraph100119 : public IStaticGraphConfig { public: - StaticGraph100119(GraphConfiguration100119* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100119(GraphConfiguration100119* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100119(); - static const uint32_t hashCode = 2418089341; // autogenerated + static const uint32_t hashCode = 591912599; // autogenerated private: // Configuration @@ -6780,6 +10809,7 @@ class StaticGraph100119 : public IStaticGraphConfig imageSubGraphTopology100119 _imageSubGraph; // All graph links + GraphLink _graphLinks[33]; }; @@ -6833,9 +10863,9 @@ class image_irSubGraphTopology100120 : public GraphTopology { class StaticGraph100120 : public IStaticGraphConfig { public: - StaticGraph100120(GraphConfiguration100120* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100120(GraphConfiguration100120* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100120(); - static const uint32_t hashCode = 1176666366; // autogenerated + static const uint32_t hashCode = 204985626; // autogenerated private: // Configuration @@ -6856,6 +10886,7 @@ class StaticGraph100120 : public IStaticGraphConfig image_irSubGraphTopology100120 _image_irSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -6911,9 +10942,9 @@ class image_irSubGraphTopology100121 : public GraphTopology { class StaticGraph100121 : public IStaticGraphConfig { public: - StaticGraph100121(GraphConfiguration100121* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100121(GraphConfiguration100121* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100121(); - static const uint32_t hashCode = 4013750699; // autogenerated + static const uint32_t hashCode = 2675250681; // autogenerated private: // Configuration @@ -6935,6 +10966,7 @@ class StaticGraph100121 : public IStaticGraphConfig image_irSubGraphTopology100121 _image_irSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -6988,9 +11020,9 @@ class image_irSubGraphTopology100122 : public GraphTopology { class StaticGraph100122 : public IStaticGraphConfig { public: - StaticGraph100122(GraphConfiguration100122* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100122(GraphConfiguration100122* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100122(); - static const uint32_t hashCode = 3644848196; // autogenerated + static const uint32_t hashCode = 2950517008; // autogenerated private: // Configuration @@ -7011,6 +11043,7 @@ class StaticGraph100122 : public IStaticGraphConfig image_irSubGraphTopology100122 _image_irSubGraph; // All graph links + GraphLink _graphLinks[33]; }; @@ -7066,9 +11099,9 @@ class image_irSubGraphTopology100123 : public GraphTopology { class StaticGraph100123 : public IStaticGraphConfig { public: - StaticGraph100123(GraphConfiguration100123* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100123(GraphConfiguration100123* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100123(); - static const uint32_t hashCode = 3097585825; // autogenerated + static const uint32_t hashCode = 523833107; // autogenerated private: // Configuration @@ -7090,6 +11123,7 @@ class StaticGraph100123 : public IStaticGraphConfig image_irSubGraphTopology100123 _image_irSubGraph; // All graph links + GraphLink _graphLinks[38]; }; @@ -7111,9 +11145,9 @@ class imageSubGraphTopology100127 : public GraphTopology { class StaticGraph100127 : public IStaticGraphConfig { public: - StaticGraph100127(GraphConfiguration100127* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100127(GraphConfiguration100127* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100127(); - static const uint32_t hashCode = 3481438165; // autogenerated + static const uint32_t hashCode = 923306631; // autogenerated private: // Configuration @@ -7131,6 +11165,7 @@ class StaticGraph100127 : public IStaticGraphConfig imageSubGraphTopology100127 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -7153,9 +11188,9 @@ class imageSubGraphTopology100128 : public GraphTopology { class StaticGraph100128 : public IStaticGraphConfig { public: - StaticGraph100128(GraphConfiguration100128* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100128(GraphConfiguration100128* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100128(); - static const uint32_t hashCode = 171444556; // autogenerated + static const uint32_t hashCode = 3291442376; // autogenerated private: // Configuration @@ -7174,6 +11209,7 @@ class StaticGraph100128 : public IStaticGraphConfig imageSubGraphTopology100128 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -7195,9 +11231,9 @@ class imageSubGraphTopology100129 : public GraphTopology { class StaticGraph100129 : public IStaticGraphConfig { public: - StaticGraph100129(GraphConfiguration100129* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100129(GraphConfiguration100129* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100129(); - static const uint32_t hashCode = 4118357007; // autogenerated + static const uint32_t hashCode = 443369629; // autogenerated private: // Configuration @@ -7215,6 +11251,7 @@ class StaticGraph100129 : public IStaticGraphConfig imageSubGraphTopology100129 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -7237,9 +11274,9 @@ class imageSubGraphTopology100130 : public GraphTopology { class StaticGraph100130 : public IStaticGraphConfig { public: - StaticGraph100130(GraphConfiguration100130* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100130(GraphConfiguration100130* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100130(); - static const uint32_t hashCode = 1474763978; // autogenerated + static const uint32_t hashCode = 3111694518; // autogenerated private: // Configuration @@ -7258,6 +11295,7 @@ class StaticGraph100130 : public IStaticGraphConfig imageSubGraphTopology100130 _imageSubGraph; // All graph links + GraphLink _graphLinks[26]; }; @@ -7279,9 +11317,9 @@ class imageSubGraphTopology100131 : public GraphTopology { class StaticGraph100131 : public IStaticGraphConfig { public: - StaticGraph100131(GraphConfiguration100131* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100131(GraphConfiguration100131* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100131(); - static const uint32_t hashCode = 1776308551; // autogenerated + static const uint32_t hashCode = 3745450829; // autogenerated private: // Configuration @@ -7299,6 +11337,7 @@ class StaticGraph100131 : public IStaticGraphConfig imageSubGraphTopology100131 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -7321,9 +11360,9 @@ class imageSubGraphTopology100132 : public GraphTopology { class StaticGraph100132 : public IStaticGraphConfig { public: - StaticGraph100132(GraphConfiguration100132* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100132(GraphConfiguration100132* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100132(); - static const uint32_t hashCode = 1840026554; // autogenerated + static const uint32_t hashCode = 2780416462; // autogenerated private: // Configuration @@ -7342,6 +11381,7 @@ class StaticGraph100132 : public IStaticGraphConfig imageSubGraphTopology100132 _imageSubGraph; // All graph links + GraphLink _graphLinks[24]; }; @@ -7363,9 +11403,9 @@ class imageSubGraphTopology100133 : public GraphTopology { class StaticGraph100133 : public IStaticGraphConfig { public: - StaticGraph100133(GraphConfiguration100133* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100133(GraphConfiguration100133* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100133(); - static const uint32_t hashCode = 2403534341; // autogenerated + static const uint32_t hashCode = 986156287; // autogenerated private: // Configuration @@ -7383,6 +11423,7 @@ class StaticGraph100133 : public IStaticGraphConfig imageSubGraphTopology100133 _imageSubGraph; // All graph links + GraphLink _graphLinks[24]; }; @@ -7405,9 +11446,9 @@ class imageSubGraphTopology100134 : public GraphTopology { class StaticGraph100134 : public IStaticGraphConfig { public: - StaticGraph100134(GraphConfiguration100134* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100134(GraphConfiguration100134* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100134(); - static const uint32_t hashCode = 1585966716; // autogenerated + static const uint32_t hashCode = 1100112176; // autogenerated private: // Configuration @@ -7426,6 +11467,7 @@ class StaticGraph100134 : public IStaticGraphConfig imageSubGraphTopology100134 _imageSubGraph; // All graph links + GraphLink _graphLinks[29]; }; @@ -7444,9 +11486,9 @@ class imageSubGraphTopology100235 : public GraphTopology { class StaticGraph100235 : public IStaticGraphConfig { public: - StaticGraph100235(GraphConfiguration100235* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100235(GraphConfiguration100235* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100235(); - static const uint32_t hashCode = 702567898; // autogenerated + static const uint32_t hashCode = 2533625086; // autogenerated private: // Configuration @@ -7463,6 +11505,7 @@ class StaticGraph100235 : public IStaticGraphConfig imageSubGraphTopology100235 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -7482,9 +11525,9 @@ class imageSubGraphTopology100236 : public GraphTopology { class StaticGraph100236 : public IStaticGraphConfig { public: - StaticGraph100236(GraphConfiguration100236* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100236(GraphConfiguration100236* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100236(); - static const uint32_t hashCode = 1852907039; // autogenerated + static const uint32_t hashCode = 3706116901; // autogenerated private: // Configuration @@ -7502,6 +11545,7 @@ class StaticGraph100236 : public IStaticGraphConfig imageSubGraphTopology100236 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -7520,9 +11564,9 @@ class imageSubGraphTopology100202 : public GraphTopology { class StaticGraph100202 : public IStaticGraphConfig { public: - StaticGraph100202(GraphConfiguration100202* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100202(GraphConfiguration100202* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100202(); - static const uint32_t hashCode = 954605470; // autogenerated + static const uint32_t hashCode = 269812994; // autogenerated private: // Configuration @@ -7539,6 +11583,7 @@ class StaticGraph100202 : public IStaticGraphConfig imageSubGraphTopology100202 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -7558,9 +11603,9 @@ class imageSubGraphTopology100203 : public GraphTopology { class StaticGraph100203 : public IStaticGraphConfig { public: - StaticGraph100203(GraphConfiguration100203* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100203(GraphConfiguration100203* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100203(); - static const uint32_t hashCode = 396641319; // autogenerated + static const uint32_t hashCode = 2586179389; // autogenerated private: // Configuration @@ -7578,6 +11623,7 @@ class StaticGraph100203 : public IStaticGraphConfig imageSubGraphTopology100203 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -7598,9 +11644,9 @@ class imageSubGraphTopology100279 : public GraphTopology { class StaticGraph100279 : public IStaticGraphConfig { public: - StaticGraph100279(GraphConfiguration100279* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100279(GraphConfiguration100279* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100279(); - static const uint32_t hashCode = 4072647932; // autogenerated + static const uint32_t hashCode = 1755203480; // autogenerated private: // Configuration @@ -7619,6 +11665,7 @@ class StaticGraph100279 : public IStaticGraphConfig imageSubGraphTopology100279 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -7639,9 +11686,9 @@ class imageSubGraphTopology100280 : public GraphTopology { class StaticGraph100280 : public IStaticGraphConfig { public: - StaticGraph100280(GraphConfiguration100280* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100280(GraphConfiguration100280* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100280(); - static const uint32_t hashCode = 2654007374; // autogenerated + static const uint32_t hashCode = 467449978; // autogenerated private: // Configuration @@ -7660,6 +11707,7 @@ class StaticGraph100280 : public IStaticGraphConfig imageSubGraphTopology100280 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -7680,9 +11728,9 @@ class imageSubGraphTopology100281 : public GraphTopology { class StaticGraph100281 : public IStaticGraphConfig { public: - StaticGraph100281(GraphConfiguration100281* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100281(GraphConfiguration100281* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100281(); - static const uint32_t hashCode = 2879625110; // autogenerated + static const uint32_t hashCode = 7327794; // autogenerated private: // Configuration @@ -7701,6 +11749,7 @@ class StaticGraph100281 : public IStaticGraphConfig imageSubGraphTopology100281 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -7719,9 +11768,9 @@ class imageSubGraphTopology100204 : public GraphTopology { class StaticGraph100204 : public IStaticGraphConfig { public: - StaticGraph100204(GraphConfiguration100204* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100204(GraphConfiguration100204* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100204(); - static const uint32_t hashCode = 4076699760; // autogenerated + static const uint32_t hashCode = 997851588; // autogenerated private: // Configuration @@ -7738,6 +11787,7 @@ class StaticGraph100204 : public IStaticGraphConfig imageSubGraphTopology100204 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -7757,9 +11807,9 @@ class imageSubGraphTopology100205 : public GraphTopology { class StaticGraph100205 : public IStaticGraphConfig { public: - StaticGraph100205(GraphConfiguration100205* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100205(GraphConfiguration100205* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100205(); - static const uint32_t hashCode = 215744145; // autogenerated + static const uint32_t hashCode = 3755277027; // autogenerated private: // Configuration @@ -7777,6 +11827,7 @@ class StaticGraph100205 : public IStaticGraphConfig imageSubGraphTopology100205 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -7795,9 +11846,9 @@ class imageSubGraphTopology100206 : public GraphTopology { class StaticGraph100206 : public IStaticGraphConfig { public: - StaticGraph100206(GraphConfiguration100206* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100206(GraphConfiguration100206* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100206(); - static const uint32_t hashCode = 3387653020; // autogenerated + static const uint32_t hashCode = 3549933872; // autogenerated private: // Configuration @@ -7814,6 +11865,7 @@ class StaticGraph100206 : public IStaticGraphConfig imageSubGraphTopology100206 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -7834,9 +11886,9 @@ class imageSubGraphTopology100266 : public GraphTopology { class StaticGraph100266 : public IStaticGraphConfig { public: - StaticGraph100266(GraphConfiguration100266* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100266(GraphConfiguration100266* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100266(); - static const uint32_t hashCode = 667245294; // autogenerated + static const uint32_t hashCode = 534773418; // autogenerated private: // Configuration @@ -7855,6 +11907,7 @@ class StaticGraph100266 : public IStaticGraphConfig imageSubGraphTopology100266 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -7874,9 +11927,9 @@ class imageSubGraphTopology100207 : public GraphTopology { class StaticGraph100207 : public IStaticGraphConfig { public: - StaticGraph100207(GraphConfiguration100207* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100207(GraphConfiguration100207* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100207(); - static const uint32_t hashCode = 182148337; // autogenerated + static const uint32_t hashCode = 2439336771; // autogenerated private: // Configuration @@ -7894,6 +11947,7 @@ class StaticGraph100207 : public IStaticGraphConfig imageSubGraphTopology100207 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -7915,9 +11969,9 @@ class imageSubGraphTopology100267 : public GraphTopology { class StaticGraph100267 : public IStaticGraphConfig { public: - StaticGraph100267(GraphConfiguration100267* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100267(GraphConfiguration100267* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100267(); - static const uint32_t hashCode = 1621521343; // autogenerated + static const uint32_t hashCode = 432090845; // autogenerated private: // Configuration @@ -7937,6 +11991,7 @@ class StaticGraph100267 : public IStaticGraphConfig imageSubGraphTopology100267 _imageSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -7955,9 +12010,9 @@ class imageSubGraphTopology100208 : public GraphTopology { class StaticGraph100208 : public IStaticGraphConfig { public: - StaticGraph100208(GraphConfiguration100208* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100208(GraphConfiguration100208* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100208(); - static const uint32_t hashCode = 3872683874; // autogenerated + static const uint32_t hashCode = 3622930326; // autogenerated private: // Configuration @@ -7974,6 +12029,7 @@ class StaticGraph100208 : public IStaticGraphConfig imageSubGraphTopology100208 _imageSubGraph; // All graph links + GraphLink _graphLinks[12]; }; @@ -7993,9 +12049,9 @@ class imageSubGraphTopology100209 : public GraphTopology { class StaticGraph100209 : public IStaticGraphConfig { public: - StaticGraph100209(GraphConfiguration100209* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100209(GraphConfiguration100209* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100209(); - static const uint32_t hashCode = 2705560299; // autogenerated + static const uint32_t hashCode = 2679332857; // autogenerated private: // Configuration @@ -8013,6 +12069,7 @@ class StaticGraph100209 : public IStaticGraphConfig imageSubGraphTopology100209 _imageSubGraph; // All graph links + GraphLink _graphLinks[17]; }; @@ -8031,9 +12088,9 @@ class imageSubGraphTopology100210 : public GraphTopology { class StaticGraph100210 : public IStaticGraphConfig { public: - StaticGraph100210(GraphConfiguration100210* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100210(GraphConfiguration100210* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100210(); - static const uint32_t hashCode = 991444086; // autogenerated + static const uint32_t hashCode = 2711112138; // autogenerated private: // Configuration @@ -8050,6 +12107,7 @@ class StaticGraph100210 : public IStaticGraphConfig imageSubGraphTopology100210 _imageSubGraph; // All graph links + GraphLink _graphLinks[15]; }; @@ -8069,9 +12127,9 @@ class imageSubGraphTopology100211 : public GraphTopology { class StaticGraph100211 : public IStaticGraphConfig { public: - StaticGraph100211(GraphConfiguration100211* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100211(GraphConfiguration100211* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100211(); - static const uint32_t hashCode = 3602942323; // autogenerated + static const uint32_t hashCode = 1748768337; // autogenerated private: // Configuration @@ -8089,6 +12147,7 @@ class StaticGraph100211 : public IStaticGraphConfig imageSubGraphTopology100211 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -8109,9 +12168,9 @@ class imageSubGraphTopology100245 : public GraphTopology { class StaticGraph100245 : public IStaticGraphConfig { public: - StaticGraph100245(GraphConfiguration100245* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100245(GraphConfiguration100245* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100245(); - static const uint32_t hashCode = 3430717708; // autogenerated + static const uint32_t hashCode = 1036862344; // autogenerated private: // Configuration @@ -8130,6 +12189,7 @@ class StaticGraph100245 : public IStaticGraphConfig imageSubGraphTopology100245 _imageSubGraph; // All graph links + GraphLink _graphLinks[20]; }; @@ -8150,9 +12210,9 @@ class imageSubGraphTopology100212 : public GraphTopology { class StaticGraph100212 : public IStaticGraphConfig { public: - StaticGraph100212(GraphConfiguration100212* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100212(GraphConfiguration100212* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100212(); - static const uint32_t hashCode = 2479021628; // autogenerated + static const uint32_t hashCode = 4128543248; // autogenerated private: // Configuration @@ -8171,6 +12231,7 @@ class StaticGraph100212 : public IStaticGraphConfig imageSubGraphTopology100212 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -8190,9 +12251,9 @@ class imageSubGraphTopology100213 : public GraphTopology { class StaticGraph100213 : public IStaticGraphConfig { public: - StaticGraph100213(GraphConfiguration100213* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100213(GraphConfiguration100213* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100213(); - static const uint32_t hashCode = 2576159655; // autogenerated + static const uint32_t hashCode = 3028697525; // autogenerated private: // Configuration @@ -8210,6 +12271,7 @@ class StaticGraph100213 : public IStaticGraphConfig imageSubGraphTopology100213 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -8230,9 +12292,9 @@ class imageSubGraphTopology100214 : public GraphTopology { class StaticGraph100214 : public IStaticGraphConfig { public: - StaticGraph100214(GraphConfiguration100214* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100214(GraphConfiguration100214* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100214(); - static const uint32_t hashCode = 812297720; // autogenerated + static const uint32_t hashCode = 1088099756; // autogenerated private: // Configuration @@ -8251,6 +12313,7 @@ class StaticGraph100214 : public IStaticGraphConfig imageSubGraphTopology100214 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -8270,9 +12333,9 @@ class imageSubGraphTopology100215 : public GraphTopology { class StaticGraph100215 : public IStaticGraphConfig { public: - StaticGraph100215(GraphConfiguration100215* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100215(GraphConfiguration100215* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100215(); - static const uint32_t hashCode = 3594965103; // autogenerated + static const uint32_t hashCode = 3292651501; // autogenerated private: // Configuration @@ -8290,6 +12353,7 @@ class StaticGraph100215 : public IStaticGraphConfig imageSubGraphTopology100215 _imageSubGraph; // All graph links + GraphLink _graphLinks[22]; }; @@ -8311,9 +12375,9 @@ class imageSubGraphTopology100216 : public GraphTopology { class StaticGraph100216 : public IStaticGraphConfig { public: - StaticGraph100216(GraphConfiguration100216* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100216(GraphConfiguration100216* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100216(); - static const uint32_t hashCode = 479548697; // autogenerated + static const uint32_t hashCode = 2055501779; // autogenerated private: // Configuration @@ -8333,6 +12397,7 @@ class StaticGraph100216 : public IStaticGraphConfig imageSubGraphTopology100216 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -8353,9 +12418,9 @@ class imageSubGraphTopology100217 : public GraphTopology { class StaticGraph100217 : public IStaticGraphConfig { public: - StaticGraph100217(GraphConfiguration100217* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100217(GraphConfiguration100217* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100217(); - static const uint32_t hashCode = 3204564958; // autogenerated + static const uint32_t hashCode = 4013164018; // autogenerated private: // Configuration @@ -8374,6 +12439,7 @@ class StaticGraph100217 : public IStaticGraphConfig imageSubGraphTopology100217 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -8395,9 +12461,9 @@ class imageSubGraphTopology100218 : public GraphTopology { class StaticGraph100218 : public IStaticGraphConfig { public: - StaticGraph100218(GraphConfiguration100218* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100218(GraphConfiguration100218* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100218(); - static const uint32_t hashCode = 3238983801; // autogenerated + static const uint32_t hashCode = 3208020355; // autogenerated private: // Configuration @@ -8417,6 +12483,7 @@ class StaticGraph100218 : public IStaticGraphConfig imageSubGraphTopology100218 _imageSubGraph; // All graph links + GraphLink _graphLinks[24]; }; @@ -8437,9 +12504,9 @@ class imageSubGraphTopology100219 : public GraphTopology { class StaticGraph100219 : public IStaticGraphConfig { public: - StaticGraph100219(GraphConfiguration100219* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100219(GraphConfiguration100219* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100219(); - static const uint32_t hashCode = 403101266; // autogenerated + static const uint32_t hashCode = 1606204982; // autogenerated private: // Configuration @@ -8458,6 +12525,7 @@ class StaticGraph100219 : public IStaticGraphConfig imageSubGraphTopology100219 _imageSubGraph; // All graph links + GraphLink _graphLinks[24]; }; @@ -8502,9 +12570,9 @@ class image_irSubGraphTopology100220 : public GraphTopology { class StaticGraph100220 : public IStaticGraphConfig { public: - StaticGraph100220(GraphConfiguration100220* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100220(GraphConfiguration100220* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100220(); - static const uint32_t hashCode = 2538984555; // autogenerated + static const uint32_t hashCode = 3260527689; // autogenerated private: // Configuration @@ -8524,6 +12592,7 @@ class StaticGraph100220 : public IStaticGraphConfig image_irSubGraphTopology100220 _image_irSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -8570,9 +12639,9 @@ class image_irSubGraphTopology100221 : public GraphTopology { class StaticGraph100221 : public IStaticGraphConfig { public: - StaticGraph100221(GraphConfiguration100221* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100221(GraphConfiguration100221* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100221(); - static const uint32_t hashCode = 3410086038; // autogenerated + static const uint32_t hashCode = 2898871730; // autogenerated private: // Configuration @@ -8593,6 +12662,7 @@ class StaticGraph100221 : public IStaticGraphConfig image_irSubGraphTopology100221 _image_irSubGraph; // All graph links + GraphLink _graphLinks[24]; }; @@ -8637,9 +12707,9 @@ class image_irSubGraphTopology100222 : public GraphTopology { class StaticGraph100222 : public IStaticGraphConfig { public: - StaticGraph100222(GraphConfiguration100222* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100222(GraphConfiguration100222* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100222(); - static const uint32_t hashCode = 1760184939; // autogenerated + static const uint32_t hashCode = 654739193; // autogenerated private: // Configuration @@ -8659,6 +12729,7 @@ class StaticGraph100222 : public IStaticGraphConfig image_irSubGraphTopology100222 _image_irSubGraph; // All graph links + GraphLink _graphLinks[25]; }; @@ -8705,9 +12776,9 @@ class image_irSubGraphTopology100223 : public GraphTopology { class StaticGraph100223 : public IStaticGraphConfig { public: - StaticGraph100223(GraphConfiguration100223* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100223(GraphConfiguration100223* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100223(); - static const uint32_t hashCode = 272024670; // autogenerated + static const uint32_t hashCode = 3363320522; // autogenerated private: // Configuration @@ -8728,6 +12799,7 @@ class StaticGraph100223 : public IStaticGraphConfig image_irSubGraphTopology100223 _image_irSubGraph; // All graph links + GraphLink _graphLinks[30]; }; @@ -8745,9 +12817,9 @@ class imageSubGraphTopology100224 : public GraphTopology { class StaticGraph100224 : public IStaticGraphConfig { public: - StaticGraph100224(GraphConfiguration100224* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100224(GraphConfiguration100224* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100224(); - static const uint32_t hashCode = 820220814; // autogenerated + static const uint32_t hashCode = 1855472042; // autogenerated private: // Configuration @@ -8764,6 +12836,7 @@ class StaticGraph100224 : public IStaticGraphConfig imageSubGraphTopology100224 _imageSubGraph; // All graph links + GraphLink _graphLinks[10]; }; @@ -8782,9 +12855,9 @@ class imageSubGraphTopology100240 : public GraphTopology { class StaticGraph100240 : public IStaticGraphConfig { public: - StaticGraph100240(GraphConfiguration100240* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100240(GraphConfiguration100240* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100240(); - static const uint32_t hashCode = 4109893895; // autogenerated + static const uint32_t hashCode = 4169757189; // autogenerated private: // Configuration @@ -8802,6 +12875,7 @@ class StaticGraph100240 : public IStaticGraphConfig imageSubGraphTopology100240 _imageSubGraph; // All graph links + GraphLink _graphLinks[15]; }; @@ -8820,9 +12894,9 @@ class imageSubGraphTopology100241 : public GraphTopology { class StaticGraph100241 : public IStaticGraphConfig { public: - StaticGraph100241(GraphConfiguration100241* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100241(GraphConfiguration100241* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100241(); - static const uint32_t hashCode = 3862041231; // autogenerated + static const uint32_t hashCode = 4276738301; // autogenerated private: // Configuration @@ -8840,6 +12914,7 @@ class StaticGraph100241 : public IStaticGraphConfig imageSubGraphTopology100241 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -8857,9 +12932,9 @@ class imageSubGraphTopology100242 : public GraphTopology { class StaticGraph100242 : public IStaticGraphConfig { public: - StaticGraph100242(GraphConfiguration100242* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100242(GraphConfiguration100242* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100242(); - static const uint32_t hashCode = 454393922; // autogenerated + static const uint32_t hashCode = 3420854654; // autogenerated private: // Configuration @@ -8876,6 +12951,7 @@ class StaticGraph100242 : public IStaticGraphConfig imageSubGraphTopology100242 _imageSubGraph; // All graph links + GraphLink _graphLinks[13]; }; @@ -8894,9 +12970,9 @@ class imageSubGraphTopology100227 : public GraphTopology { class StaticGraph100227 : public IStaticGraphConfig { public: - StaticGraph100227(GraphConfiguration100227* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100227(GraphConfiguration100227* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100227(); - static const uint32_t hashCode = 4288743534; // autogenerated + static const uint32_t hashCode = 1362805226; // autogenerated private: // Configuration @@ -8913,6 +12989,7 @@ class StaticGraph100227 : public IStaticGraphConfig imageSubGraphTopology100227 _imageSubGraph; // All graph links + GraphLink _graphLinks[11]; }; @@ -8932,9 +13009,9 @@ class imageSubGraphTopology100228 : public GraphTopology { class StaticGraph100228 : public IStaticGraphConfig { public: - StaticGraph100228(GraphConfiguration100228* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100228(GraphConfiguration100228* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100228(); - static const uint32_t hashCode = 1881502475; // autogenerated + static const uint32_t hashCode = 3728741665; // autogenerated private: // Configuration @@ -8952,6 +13029,7 @@ class StaticGraph100228 : public IStaticGraphConfig imageSubGraphTopology100228 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -8970,9 +13048,9 @@ class imageSubGraphTopology100229 : public GraphTopology { class StaticGraph100229 : public IStaticGraphConfig { public: - StaticGraph100229(GraphConfiguration100229* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100229(GraphConfiguration100229* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100229(); - static const uint32_t hashCode = 3291744306; // autogenerated + static const uint32_t hashCode = 421618222; // autogenerated private: // Configuration @@ -8989,6 +13067,7 @@ class StaticGraph100229 : public IStaticGraphConfig imageSubGraphTopology100229 _imageSubGraph; // All graph links + GraphLink _graphLinks[14]; }; @@ -9008,9 +13087,9 @@ class imageSubGraphTopology100230 : public GraphTopology { class StaticGraph100230 : public IStaticGraphConfig { public: - StaticGraph100230(GraphConfiguration100230* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100230(GraphConfiguration100230* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100230(); - static const uint32_t hashCode = 2210821651; // autogenerated + static const uint32_t hashCode = 2638994777; // autogenerated private: // Configuration @@ -9028,6 +13107,7 @@ class StaticGraph100230 : public IStaticGraphConfig imageSubGraphTopology100230 _imageSubGraph; // All graph links + GraphLink _graphLinks[19]; }; @@ -9046,9 +13126,9 @@ class imageSubGraphTopology100231 : public GraphTopology { class StaticGraph100231 : public IStaticGraphConfig { public: - StaticGraph100231(GraphConfiguration100231* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100231(GraphConfiguration100231* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100231(); - static const uint32_t hashCode = 1952029534; // autogenerated + static const uint32_t hashCode = 2840555034; // autogenerated private: // Configuration @@ -9065,6 +13145,7 @@ class StaticGraph100231 : public IStaticGraphConfig imageSubGraphTopology100231 _imageSubGraph; // All graph links + GraphLink _graphLinks[13]; }; @@ -9084,9 +13165,9 @@ class imageSubGraphTopology100232 : public GraphTopology { class StaticGraph100232 : public IStaticGraphConfig { public: - StaticGraph100232(GraphConfiguration100232* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100232(GraphConfiguration100232* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100232(); - static const uint32_t hashCode = 615358259; // autogenerated + static const uint32_t hashCode = 642246825; // autogenerated private: // Configuration @@ -9104,6 +13185,7 @@ class StaticGraph100232 : public IStaticGraphConfig imageSubGraphTopology100232 _imageSubGraph; // All graph links + GraphLink _graphLinks[18]; }; @@ -9122,9 +13204,9 @@ class imageSubGraphTopology100233 : public GraphTopology { class StaticGraph100233 : public IStaticGraphConfig { public: - StaticGraph100233(GraphConfiguration100233* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100233(GraphConfiguration100233* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100233(); - static const uint32_t hashCode = 3070900770; // autogenerated + static const uint32_t hashCode = 3590707710; // autogenerated private: // Configuration @@ -9141,6 +13223,7 @@ class StaticGraph100233 : public IStaticGraphConfig imageSubGraphTopology100233 _imageSubGraph; // All graph links + GraphLink _graphLinks[16]; }; @@ -9160,9 +13243,9 @@ class imageSubGraphTopology100234 : public GraphTopology { class StaticGraph100234 : public IStaticGraphConfig { public: - StaticGraph100234(GraphConfiguration100234* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100234(GraphConfiguration100234* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100234(); - static const uint32_t hashCode = 3268155867; // autogenerated + static const uint32_t hashCode = 3104810881; // autogenerated private: // Configuration @@ -9180,6 +13263,7 @@ class StaticGraph100234 : public IStaticGraphConfig imageSubGraphTopology100234 _imageSubGraph; // All graph links + GraphLink _graphLinks[21]; }; @@ -9195,9 +13279,9 @@ class rawSubGraphTopology100026 : public GraphTopology { class StaticGraph100026 : public IStaticGraphConfig { public: - StaticGraph100026(GraphConfiguration100026* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100026(GraphConfiguration100026* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100026(); - static const uint32_t hashCode = 3757897009; // autogenerated + static const uint32_t hashCode = 3562265251; // autogenerated private: // Configuration @@ -9213,6 +13297,7 @@ class StaticGraph100026 : public IStaticGraphConfig rawSubGraphTopology100026 _rawSubGraph; // All graph links + GraphLink _graphLinks[2]; }; @@ -9228,9 +13313,9 @@ class rawSubGraphTopology100059 : public GraphTopology { class StaticGraph100059 : public IStaticGraphConfig { public: - StaticGraph100059(GraphConfiguration100059* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100059(GraphConfiguration100059* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100059(); - static const uint32_t hashCode = 1505863373; // autogenerated + static const uint32_t hashCode = 2170417703; // autogenerated private: // Configuration @@ -9246,6 +13331,7 @@ class StaticGraph100059 : public IStaticGraphConfig rawSubGraphTopology100059 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -9261,9 +13347,9 @@ class rawSubGraphTopology100035 : public GraphTopology { class StaticGraph100035 : public IStaticGraphConfig { public: - StaticGraph100035(GraphConfiguration100035* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100035(GraphConfiguration100035* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100035(); - static const uint32_t hashCode = 2039443279; // autogenerated + static const uint32_t hashCode = 1941820013; // autogenerated private: // Configuration @@ -9279,6 +13365,7 @@ class StaticGraph100035 : public IStaticGraphConfig rawSubGraphTopology100035 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -9294,9 +13381,9 @@ class rawSubGraphTopology100036 : public GraphTopology { class StaticGraph100036 : public IStaticGraphConfig { public: - StaticGraph100036(GraphConfiguration100036* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100036(GraphConfiguration100036* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100036(); - static const uint32_t hashCode = 2039443279; // autogenerated + static const uint32_t hashCode = 1941820013; // autogenerated private: // Configuration @@ -9312,6 +13399,7 @@ class StaticGraph100036 : public IStaticGraphConfig rawSubGraphTopology100036 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -9327,9 +13415,9 @@ class rawSubGraphTopology100037 : public GraphTopology { class StaticGraph100037 : public IStaticGraphConfig { public: - StaticGraph100037(GraphConfiguration100037* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100037(GraphConfiguration100037* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100037(); - static const uint32_t hashCode = 1505863373; // autogenerated + static const uint32_t hashCode = 2170417703; // autogenerated private: // Configuration @@ -9345,6 +13433,7 @@ class StaticGraph100037 : public IStaticGraphConfig rawSubGraphTopology100037 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -9360,9 +13449,9 @@ class rawSubGraphTopology100058 : public GraphTopology { class StaticGraph100058 : public IStaticGraphConfig { public: - StaticGraph100058(GraphConfiguration100058* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100058(GraphConfiguration100058* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100058(); - static const uint32_t hashCode = 1505863373; // autogenerated + static const uint32_t hashCode = 2170417703; // autogenerated private: // Configuration @@ -9378,6 +13467,7 @@ class StaticGraph100058 : public IStaticGraphConfig rawSubGraphTopology100058 _rawSubGraph; // All graph links + GraphLink _graphLinks[4]; }; @@ -9393,9 +13483,9 @@ class rawSubGraphTopology100038 : public GraphTopology { class StaticGraph100038 : public IStaticGraphConfig { public: - StaticGraph100038(GraphConfiguration100038* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100038(GraphConfiguration100038* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100038(); - static const uint32_t hashCode = 4265578715; // autogenerated + static const uint32_t hashCode = 88788097; // autogenerated private: // Configuration @@ -9411,6 +13501,41 @@ class StaticGraph100038 : public IStaticGraphConfig rawSubGraphTopology100038 _rawSubGraph; // All graph links + + GraphLink _graphLinks[6]; +}; + +class rawSubGraphTopology101138 : public GraphTopology { + +public: + rawSubGraphTopology101138(VirtualSinkMapping* sinkMappingConfiguration) : GraphTopology(subGraphLinks, 6, sinkMappingConfiguration) {} + IsysDolWithCvOuterNode* isysDolWithCvOuterNode = nullptr; + GraphLink* subGraphLinks[6]; + +}; + +class StaticGraph101138 : public IStaticGraphConfig +{ +public: + StaticGraph101138(GraphConfiguration101138* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); + ~StaticGraph101138(); + static const uint32_t hashCode = 88788097; // autogenerated + +private: + // Configuration + GraphConfiguration101138 _graphConfiguration; + + /* Outer Nodes */ + IsysDolWithCvOuterNode _isysDolWithCvOuterNode; + + /* + Topology + */ + // Sub Graphs definition + rawSubGraphTopology101138 _rawSubGraph; + + // All graph links + GraphLink _graphLinks[6]; }; @@ -9426,9 +13551,9 @@ class rawSubGraphTopology100039 : public GraphTopology { class StaticGraph100039 : public IStaticGraphConfig { public: - StaticGraph100039(GraphConfiguration100039* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, StaticGraphConfigurationInformation* configurationInformation); + StaticGraph100039(GraphConfiguration100039* selectedGraphConfiguration, VirtualSinkMapping* sinkMappingConfiguration, SensorMode* selectedSensorMode, int32_t selectedSettingsId, int32_t additonalFeaturesBit, StaticGraphConfigurationInformation* configurationInformation); ~StaticGraph100039(); - static const uint32_t hashCode = 4265578715; // autogenerated + static const uint32_t hashCode = 88788097; // autogenerated private: // Configuration @@ -9444,6 +13569,7 @@ class StaticGraph100039 : public IStaticGraphConfig rawSubGraphTopology100039 _rawSubGraph; // All graph links + GraphLink _graphLinks[6]; }; diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphBinaryAutogen.h b/modules/ipu_desc/ipu8/Ipu8StaticGraphBinaryAutogen.h index 603f958..bd087f9 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphBinaryAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphBinaryAutogen.h @@ -1,3 +1,4 @@ + /* * INTEL CONFIDENTIAL * Copyright (c) 2026 Intel Corporation @@ -68,6 +69,19 @@ enum class GraphConfigurationKeyAttributes : uint32_t LowPowerActive = 0x00000100, OpacityActive = 0x00000200, StillsModeCpHdr = 0x00000400, + B2bActive = 0x00000800, + WFov = 0x00001000, + NFov = 0x00002000, + DocScan = 0x00004000, + HighRes = 0x00008000, + AinrActive = 0x00010000, +}; + +enum class TuningModeKeyAttributes : uint32_t +{ + None = 0x00000000, + NormalLight = 0x00000001, + LowLight = 0x00000002, }; struct GraphConfigurationKey { @@ -111,6 +125,7 @@ struct SysToolVersion }; struct BinaryHeader { + uint32_t additonalFeaturesBit = 0; uint32_t sapAttributes = 0; uint32_t binaryCommonHashCode = 0; uint32_t numberOfResolutions = 0; diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphDataPreloadAutogen.h b/modules/ipu_desc/ipu8/Ipu8StaticGraphDataPreloadAutogen.h index cd0d43c..94b9423 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphDataPreloadAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphDataPreloadAutogen.h @@ -85,6 +85,7 @@ typedef struct SysToolVersion { typedef struct { + uint32_t additonalFeaturesBit; uint32_t sapAttributes; uint32_t binaryCommonHashCode; uint32_t numberOfResolutions; @@ -116,152 +117,202 @@ typedef struct DataRange }DataRange; -static int distinctGraphsCount = 142; +static int distinctGraphsCount = 192; static GraphHashCode hashCodeLookup[] = { - {0, 0x63F6EE7C}, - {100000, 0xD6FA0FD6}, - {100001, 0x8B5E358B}, - {100002, 0x60073BCA}, - {100003, 0xD74FE403}, - {100004, 0x2E6B057C}, - {100005, 0xC4D67E6D}, - {100006, 0xBDFEECB8}, - {100007, 0x611BF3DD}, - {100008, 0x28BA8836}, - {100009, 0x2306439F}, - {100010, 0xA3A28F5A}, - {100011, 0x9A519337}, - {100012, 0xD8D7F4C0}, - {100013, 0x8E84185B}, - {100014, 0x92FE29EC}, - {100015, 0x2CBDFC93}, - {100016, 0x878191BD}, - {100017, 0x6BED16A2}, - {100018, 0x62E25ECD}, - {100019, 0x348F1E86}, - {100020, 0xB183D5CF}, - {100021, 0x5688C98A}, - {100022, 0x2D5BE9EF}, - {100023, 0xDC383072}, - {100024, 0xE67B3B77}, - {100026, 0xDFFCF531}, - {100027, 0x87642FC2}, - {100028, 0xDB47B61F}, - {100029, 0x6E9C4416}, - {100030, 0xE582D77}, - {100031, 0xBFCEB522}, - {100032, 0x203733D7}, - {100033, 0x45FA6776}, - {100034, 0x91BCABCF}, - {100035, 0x798F6F4F}, - {100036, 0x798F6F4F}, - {100037, 0x59C1A6CD}, - {100038, 0xFE3F90DB}, - {100039, 0xFE3F90DB}, - {100040, 0x26DBB0EE}, - {100041, 0xBAC1D162}, - {100042, 0xB867A8FF}, - {100045, 0x7A636EC0}, - {100058, 0x59C1A6CD}, - {100059, 0x59C1A6CD}, - {100066, 0x62F4AB1A}, - {100067, 0x7C16B53B}, - {100079, 0xC43C1A58}, - {100080, 0xA5320D7A}, - {100081, 0x821FCFE2}, - {100100, 0x31F53263}, - {100101, 0xE43DBE76}, - {100102, 0x9948AF31}, - {100103, 0x818C7B68}, - {100104, 0xF7E2D355}, - {100105, 0xCBB75CBC}, - {100106, 0x6DB00177}, - {100107, 0x5D84AC52}, - {100108, 0xF853E74F}, - {100109, 0x5D6C676E}, - {100110, 0xAF98E53D}, - {100111, 0x4B1CBC20}, - {100112, 0x707B6B3}, - {100113, 0xAE0FDF56}, - {100114, 0x3FADECFF}, - {100115, 0x334AC008}, - {100116, 0x89F6BCD2}, - {100117, 0x67F00037}, - {100118, 0x1DBB5D6C}, - {100119, 0x90211D7D}, - {100120, 0x462280FE}, - {100121, 0xEF3CF9AB}, - {100122, 0xD93FF844}, - {100123, 0xB8A168A1}, - {100127, 0xCF8287D5}, - {100128, 0xA38094C}, - {100129, 0xF579240F}, - {100130, 0x57E71CCA}, - {100131, 0x69E05147}, - {100132, 0x6DAC93BA}, - {100133, 0x8F430605}, - {100134, 0x5E87EE7C}, - {100135, 0x1D1C0EAF}, - {100136, 0x59AB7EF3}, - {100137, 0x9F17119D}, - {100138, 0x8D96A71D}, - {100139, 0x7706D38B}, - {100140, 0x203D6FF9}, - {100141, 0xC4A3A2B1}, - {100142, 0x62CB867B}, - {100143, 0x33BB419}, - {100144, 0xC6773D1}, - {100145, 0x4CFEEAF8}, - {100146, 0xC3ED71AD}, - {100157, 0xB50CB6CB}, - {100162, 0xCB62AF7}, - {100166, 0x197E6031}, - {100169, 0xCB62AF7}, - {100200, 0x623CDE93}, - {100201, 0x8F35A810}, - {100202, 0x38E61F9E}, - {100203, 0x17A44427}, - {100204, 0xF2FD8070}, - {100205, 0xCDBFE91}, - {100206, 0xC9EB7B9C}, - {100207, 0xADB5CF1}, - {100208, 0xE6D47762}, - {100209, 0xA14392EB}, - {100210, 0x3B183C76}, - {100211, 0xD6C08973}, - {100212, 0x93C2DE3C}, - {100213, 0x998D13A7}, - {100214, 0x306AADF8}, - {100215, 0xD646D06F}, - {100216, 0x1C955519}, - {100217, 0xBF01C7DE}, - {100218, 0xC10EF879}, - {100219, 0x1806D652}, - {100220, 0x9755D46B}, - {100221, 0xCB41C896}, - {100222, 0x68EA4A6B}, - {100223, 0x1036C45E}, - {100224, 0x30E3938E}, - {100227, 0xFFA1086E}, - {100228, 0x7025730B}, - {100229, 0xC4340832}, - {100230, 0x83C67613}, - {100231, 0x74599B5E}, - {100232, 0x24AD9F33}, - {100233, 0xB70A3A22}, - {100234, 0xC2CC19DB}, - {100235, 0x29E055DA}, - {100236, 0x6E711E1F}, - {100240, 0xF4F80107}, - {100241, 0xE632128F}, - {100242, 0x1B158042}, - {100245, 0xCC7C990C}, - {100266, 0x27C55AEE}, - {100267, 0x60A673BF}, - {100279, 0xF2BFACFC}, - {100280, 0x9E30F04E}, - {100281, 0xABA39796} + {0, 0x80201706}, + {100000, 0x5ABEA9CA}, + {100001, 0x41E9D9A9}, + {100002, 0x76C788CE}, + {100003, 0x69586BE1}, + {100004, 0x413DFD00}, + {100005, 0x3D59D087}, + {100006, 0x17D33D9C}, + {100007, 0xE49283B7}, + {100008, 0xB7D143AA}, + {100009, 0xA39F35C5}, + {100010, 0x3C87877E}, + {100011, 0x7018B37D}, + {100012, 0xCDBE7F4}, + {100013, 0xE80E9761}, + {100014, 0xF1C01500}, + {100015, 0xC2FD5549}, + {100016, 0x2B5EECF}, + {100017, 0x38DC5786}, + {100018, 0xE07F2FAF}, + {100019, 0xB1E4609A}, + {100020, 0xFD0A1CF5}, + {100021, 0x574F5BC6}, + {100022, 0x459B7C65}, + {100023, 0x57E500EE}, + {100024, 0xE7658ED5}, + {100026, 0xD453DAA3}, + {100027, 0xAE85C25E}, + {100028, 0x77E1AC0D}, + {100029, 0x36FF25C2}, + {100030, 0xB643D505}, + {100031, 0xD6A0ACFE}, + {100032, 0x784CCA65}, + {100033, 0x4BE7BE62}, + {100034, 0x74F4AB5D}, + {100035, 0x73BDD26D}, + {100036, 0x73BDD26D}, + {100037, 0x815DF227}, + {100038, 0x54ACC81}, + {100039, 0x54ACC81}, + {100040, 0xC187E47A}, + {100041, 0xF348519E}, + {100042, 0x34E5251D}, + {100045, 0x8B78006C}, + {100058, 0x815DF227}, + {100059, 0x815DF227}, + {100066, 0x9B469CF6}, + {100067, 0x83C28AB1}, + {100079, 0x2E151074}, + {100080, 0xA44CD036}, + {100081, 0xB5DB7F2E}, + {100100, 0xD3F9CB81}, + {100101, 0xD4915CEA}, + {100102, 0xB2B2AB13}, + {100103, 0xF2E0660C}, + {100104, 0x6BB3610F}, + {100105, 0x5C781D90}, + {100106, 0x239FCB4D}, + {100107, 0x51764D96}, + {100108, 0x7F319BB5}, + {100109, 0xA1182612}, + {100110, 0x95B86447}, + {100111, 0x9B5A9384}, + {100112, 0x594426F9}, + {100113, 0x5C192DA2}, + {100114, 0x10605BC5}, + {100115, 0x4A9490F4}, + {100116, 0x46EDB1C6}, + {100117, 0x9397714D}, + {100118, 0x957E5370}, + {100119, 0x2347DE97}, + {100120, 0xC37D51A}, + {100121, 0x9F7515F9}, + {100122, 0xAFDD5110}, + {100123, 0x1F390F13}, + {100127, 0x37088A87}, + {100128, 0xC42F6CC8}, + {100129, 0x1A6D489D}, + {100130, 0xB978B0B6}, + {100131, 0xDF3F0B4D}, + {100132, 0xA5B9C9CE}, + {100133, 0x3AC78CFF}, + {100134, 0x41926130}, + {100135, 0xB48D582D}, + {100136, 0x31C0E819}, + {100137, 0x2B190CF}, + {100138, 0x19CE77FF}, + {100139, 0x756124E1}, + {100140, 0xA87BB113}, + {100141, 0x1B600BBB}, + {100142, 0x71A1B7E1}, + {100143, 0x3F21AE3}, + {100144, 0xB4084C8B}, + {100145, 0x14822D84}, + {100146, 0xA28EE307}, + {100157, 0x705DA91}, + {100162, 0x8386DA6D}, + {100166, 0x972B6C8B}, + {100169, 0x8386DA6D}, + {100200, 0xD86C9069}, + {100201, 0xB17BE104}, + {100202, 0x10150502}, + {100203, 0x9A25F73D}, + {100204, 0x3B7A01C4}, + {100205, 0xDFD4FAE3}, + {100206, 0xD397B130}, + {100207, 0x91655343}, + {100208, 0xD7F18796}, + {100209, 0x9FB35FF9}, + {100210, 0xA19849CA}, + {100211, 0x683C1651}, + {100212, 0xF6149210}, + {100213, 0xB48641B5}, + {100214, 0x40DB15AC}, + {100215, 0xC441DFED}, + {100216, 0x7A8477D3}, + {100217, 0xEF3405F2}, + {100218, 0xBF368183}, + {100219, 0x5FBCBE36}, + {100220, 0xC257B449}, + {100221, 0xACC945B2}, + {100222, 0x270686F9}, + {100223, 0xC87832CA}, + {100224, 0x6E9841AA}, + {100227, 0x513AC1EA}, + {100228, 0xDE401521}, + {100229, 0x1921622E}, + {100230, 0x9D4BDD59}, + {100231, 0xA94F6E1A}, + {100232, 0x2647E8A9}, + {100233, 0xD605D9FE}, + {100234, 0xB90FA781}, + {100235, 0x97040CFE}, + {100236, 0xDCE6DB25}, + {100240, 0xF8897205}, + {100241, 0xFEE9D8FD}, + {100242, 0xCBE6197E}, + {100245, 0x3DCD4388}, + {100266, 0x1FDFFEAA}, + {100267, 0x19C12EDD}, + {100279, 0x689E4798}, + {100280, 0x1BDCB87A}, + {100281, 0x6FD032}, + {101114, 0x65049DDF}, + {101138, 0x54ACC81}, + {200000, 0xF9EE5587}, + {200001, 0xC4030517}, + {200002, 0x29391027}, + {200003, 0xD77C3F77}, + {200004, 0xEDFB2088}, + {200005, 0xF0469B90}, + {200006, 0xF080775E}, + {200007, 0x8F5FA856}, + {200008, 0x87343DB4}, + {200009, 0xA2B6A13C}, + {200010, 0xAC7BE0D0}, + {200011, 0x1B2E91F8}, + {200012, 0x1031653B}, + {200013, 0x4F7BE9AB}, + {200014, 0x200F9FE9}, + {200015, 0xC8331769}, + {200016, 0x5CB1321E}, + {200017, 0xC22BFA16}, + {200018, 0x488561D2}, + {200019, 0xB5CB5C0A}, + {200020, 0xACEB6A71}, + {200021, 0xD959F8F1}, + {200022, 0xEB1EA803}, + {200023, 0xA0E81373}, + {200024, 0xE1809BA7}, + {200025, 0xEFF7AF7}, + {200026, 0xF0AC02D7}, + {200027, 0x8CA38067}, + {200028, 0x5936EF0}, + {200029, 0xD218BC58}, + {200030, 0xEC95E6F6}, + {200031, 0xEB38A80E}, + {200032, 0xE0F70AC2}, + {200033, 0x459427BA}, + {200034, 0x87DD81A6}, + {200035, 0x2CA5633E}, + {200036, 0xF6AA8209}, + {200037, 0x1D758209}, + {200038, 0x26CC848B}, + {200039, 0xF1B8457B}, + {200040, 0xD0820F5C}, + {200041, 0x25DE1C4}, + {200042, 0x6EC7FC18}, + {200043, 0x8D88DDA0}, + {200044, 0x6B40772B}, + {200045, 0xAA31925B}, + {200046, 0xACEA3DC1}, + {200047, 0x42E20001} }; static FrameFormatDesc formatsDB[] = { diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.cpp b/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.cpp index 5c3bd5b..b725743 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.cpp +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.cpp @@ -83,6 +83,11 @@ uint32_t StaticGraphReader::GetSAPAttribute() const return _binaryHeader.sapAttributes; } +uint32_t StaticGraphReader::GetGlobalAdditionalFeaturesBit() const +{ + return _binaryHeader.additonalFeaturesBit; +} + uint32_t StaticGraphReader::GetAdditionalFeaturesBit(const GraphConfigurationHeader* header) const { return header ? header->additonalFeaturesBit : 0; @@ -169,6 +174,438 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& // fetching the graph switch (selectedGraphConfigurationHeader->graphId) { + case 200000: + if (StaticGraph200000::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200000( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200001: + if (StaticGraph200001::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200001( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200002: + if (StaticGraph200002::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200002( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200003: + if (StaticGraph200003::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200003( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200004: + if (StaticGraph200004::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200004( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200005: + if (StaticGraph200005::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200005( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200006: + if (StaticGraph200006::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200006( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200007: + if (StaticGraph200007::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200007( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200008: + if (StaticGraph200008::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200008( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200009: + if (StaticGraph200009::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200009( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200010: + if (StaticGraph200010::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200010( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200011: + if (StaticGraph200011::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200011( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200012: + if (StaticGraph200012::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200012( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200013: + if (StaticGraph200013::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200013( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200014: + if (StaticGraph200014::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200014( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200015: + if (StaticGraph200015::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200015( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200016: + if (StaticGraph200016::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200016( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200017: + if (StaticGraph200017::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200017( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200018: + if (StaticGraph200018::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200018( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200019: + if (StaticGraph200019::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200019( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200020: + if (StaticGraph200020::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200020( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200021: + if (StaticGraph200021::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200021( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200022: + if (StaticGraph200022::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200022( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200023: + if (StaticGraph200023::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200023( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200024: + if (StaticGraph200024::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200024( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200025: + if (StaticGraph200025::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200025( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200026: + if (StaticGraph200026::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200026( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200027: + if (StaticGraph200027::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200027( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200028: + if (StaticGraph200028::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200028( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200029: + if (StaticGraph200029::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200029( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200030: + if (StaticGraph200030::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200030( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200031: + if (StaticGraph200031::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200031( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200032: + if (StaticGraph200032::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200032( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200033: + if (StaticGraph200033::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200033( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200034: + if (StaticGraph200034::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200034( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200035: + if (StaticGraph200035::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200035( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200036: + if (StaticGraph200036::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200036( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200037: + if (StaticGraph200037::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200037( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200038: + if (StaticGraph200038::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200038( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200039: + if (StaticGraph200039::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200039( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200040: + if (StaticGraph200040::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200040( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200041: + if (StaticGraph200041::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200041( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200042: + if (StaticGraph200042::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200042( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200043: + if (StaticGraph200043::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200043( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200044: + if (StaticGraph200044::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200044( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200045: + if (StaticGraph200045::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200045( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200046: + if (StaticGraph200046::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200046( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 200047: + if (StaticGraph200047::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph200047( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; case 100000: if (StaticGraph100000::hashCode != selectedGraphConfigurationHeader->graphHashCode) { @@ -176,7 +613,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100000( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100001: if (StaticGraph100001::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -185,7 +622,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100001( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100002: if (StaticGraph100002::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -194,7 +631,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100002( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100003: if (StaticGraph100003::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -203,7 +640,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100003( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100137: if (StaticGraph100137::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -212,7 +649,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100137( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100079: if (StaticGraph100079::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -221,7 +658,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100079( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100080: if (StaticGraph100080::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -230,7 +667,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100080( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100138: if (StaticGraph100138::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -239,7 +676,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100138( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100142: if (StaticGraph100142::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -248,7 +685,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100142( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100162: if (StaticGraph100162::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -257,7 +694,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100162( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100143: if (StaticGraph100143::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -266,7 +703,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100143( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100144: if (StaticGraph100144::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -275,7 +712,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100144( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100081: if (StaticGraph100081::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -284,7 +721,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100081( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100004: if (StaticGraph100004::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -293,7 +730,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100004( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100005: if (StaticGraph100005::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -302,7 +739,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100005( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100006: if (StaticGraph100006::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -311,7 +748,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100006( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100066: if (StaticGraph100066::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -320,7 +757,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100066( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100007: if (StaticGraph100007::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -329,7 +766,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100007( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100067: if (StaticGraph100067::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -338,7 +775,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100067( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100139: if (StaticGraph100139::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -347,7 +784,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100139( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100169: if (StaticGraph100169::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -356,7 +793,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100169( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100008: if (StaticGraph100008::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -365,7 +802,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100008( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100009: if (StaticGraph100009::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -374,7 +811,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100009( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100010: if (StaticGraph100010::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -383,7 +820,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100010( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100011: if (StaticGraph100011::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -392,7 +829,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100011( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100140: if (StaticGraph100140::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -401,7 +838,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100140( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100045: if (StaticGraph100045::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -410,7 +847,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100045( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100012: if (StaticGraph100012::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -419,7 +856,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100012( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100013: if (StaticGraph100013::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -428,7 +865,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100013( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100014: if (StaticGraph100014::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -437,7 +874,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100014( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100015: if (StaticGraph100015::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -446,7 +883,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100015( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100016: if (StaticGraph100016::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -455,7 +892,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100016( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100017: if (StaticGraph100017::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -464,7 +901,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100017( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100018: if (StaticGraph100018::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -473,7 +910,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100018( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100019: if (StaticGraph100019::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -482,7 +919,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100019( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100020: if (StaticGraph100020::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -491,7 +928,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100020( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100021: if (StaticGraph100021::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -500,7 +937,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100021( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100022: if (StaticGraph100022::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -509,7 +946,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100022( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100023: if (StaticGraph100023::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -518,7 +955,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100023( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100024: if (StaticGraph100024::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -527,7 +964,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100024( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100040: if (StaticGraph100040::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -536,7 +973,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100040( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100041: if (StaticGraph100041::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -545,7 +982,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100041( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100042: if (StaticGraph100042::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -554,7 +991,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100042( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100027: if (StaticGraph100027::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -563,7 +1000,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100027( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100028: if (StaticGraph100028::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -572,7 +1009,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100028( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100029: if (StaticGraph100029::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -581,7 +1018,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100029( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100030: if (StaticGraph100030::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -590,7 +1027,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100030( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100031: if (StaticGraph100031::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -599,7 +1036,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100031( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100032: if (StaticGraph100032::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -608,7 +1045,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100032( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100033: if (StaticGraph100033::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -617,7 +1054,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100033( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100034: if (StaticGraph100034::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -626,7 +1063,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100034( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100141: if (StaticGraph100141::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -635,7 +1072,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100141( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100100: if (StaticGraph100100::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -644,7 +1081,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100100( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100101: if (StaticGraph100101::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -653,7 +1090,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100101( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100102: if (StaticGraph100102::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -662,7 +1099,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100102( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100157: if (StaticGraph100157::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -671,7 +1108,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100157( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100103: if (StaticGraph100103::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -680,7 +1117,16 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100103( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 101114: + if (StaticGraph101114::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph101114( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100135: if (StaticGraph100135::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -689,7 +1135,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100135( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100104: if (StaticGraph100104::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -698,7 +1144,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100104( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100105: if (StaticGraph100105::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -707,7 +1153,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100105( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100106: if (StaticGraph100106::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -716,7 +1162,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100106( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100166: if (StaticGraph100166::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -725,7 +1171,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100166( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100107: if (StaticGraph100107::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -734,7 +1180,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100107( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100145: if (StaticGraph100145::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -743,7 +1189,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100145( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100108: if (StaticGraph100108::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -752,7 +1198,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100108( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100109: if (StaticGraph100109::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -761,7 +1207,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100109( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100110: if (StaticGraph100110::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -770,7 +1216,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100110( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100111: if (StaticGraph100111::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -779,7 +1225,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100111( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100136: if (StaticGraph100136::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -788,7 +1234,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100136( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100200: if (StaticGraph100200::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -797,7 +1243,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100200( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100201: if (StaticGraph100201::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -806,7 +1252,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100201( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100112: if (StaticGraph100112::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -815,7 +1261,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100112( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100113: if (StaticGraph100113::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -824,7 +1270,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100113( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100114: if (StaticGraph100114::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -833,7 +1279,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100114( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100146: if (StaticGraph100146::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -842,7 +1288,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100146( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100115: if (StaticGraph100115::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -851,7 +1297,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100115( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100116: if (StaticGraph100116::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -860,7 +1306,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100116( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100117: if (StaticGraph100117::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -869,7 +1315,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100117( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100118: if (StaticGraph100118::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -878,7 +1324,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100118( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100119: if (StaticGraph100119::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -887,7 +1333,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100119( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100120: if (StaticGraph100120::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -896,7 +1342,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100120( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100121: if (StaticGraph100121::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -905,7 +1351,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100121( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100122: if (StaticGraph100122::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -914,7 +1360,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100122( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100123: if (StaticGraph100123::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -923,7 +1369,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100123( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100127: if (StaticGraph100127::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -932,7 +1378,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100127( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100128: if (StaticGraph100128::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -941,7 +1387,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100128( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100129: if (StaticGraph100129::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -950,7 +1396,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100129( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100130: if (StaticGraph100130::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -959,7 +1405,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100130( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100131: if (StaticGraph100131::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -968,7 +1414,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100131( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100132: if (StaticGraph100132::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -977,7 +1423,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100132( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100133: if (StaticGraph100133::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -986,7 +1432,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100133( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100134: if (StaticGraph100134::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -995,7 +1441,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100134( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100235: if (StaticGraph100235::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1004,7 +1450,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100235( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100236: if (StaticGraph100236::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1013,7 +1459,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100236( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100202: if (StaticGraph100202::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1022,7 +1468,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100202( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100203: if (StaticGraph100203::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1031,7 +1477,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100203( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100279: if (StaticGraph100279::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1040,7 +1486,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100279( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100280: if (StaticGraph100280::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1049,7 +1495,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100280( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100281: if (StaticGraph100281::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1058,7 +1504,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100281( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100204: if (StaticGraph100204::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1067,7 +1513,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100204( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100205: if (StaticGraph100205::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1076,7 +1522,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100205( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100206: if (StaticGraph100206::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1085,7 +1531,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100206( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100266: if (StaticGraph100266::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1094,7 +1540,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100266( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100207: if (StaticGraph100207::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1103,7 +1549,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100207( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100267: if (StaticGraph100267::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1112,7 +1558,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100267( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100208: if (StaticGraph100208::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1121,7 +1567,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100208( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100209: if (StaticGraph100209::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1130,7 +1576,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100209( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100210: if (StaticGraph100210::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1139,7 +1585,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100210( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100211: if (StaticGraph100211::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1148,7 +1594,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100211( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100245: if (StaticGraph100245::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1157,7 +1603,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100245( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100212: if (StaticGraph100212::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1166,7 +1612,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100212( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100213: if (StaticGraph100213::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1175,7 +1621,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100213( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100214: if (StaticGraph100214::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1184,7 +1630,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100214( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100215: if (StaticGraph100215::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1193,7 +1639,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100215( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100216: if (StaticGraph100216::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1202,7 +1648,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100216( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100217: if (StaticGraph100217::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1211,7 +1657,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100217( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100218: if (StaticGraph100218::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1220,7 +1666,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100218( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100219: if (StaticGraph100219::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1229,7 +1675,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100219( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100220: if (StaticGraph100220::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1238,7 +1684,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100220( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100221: if (StaticGraph100221::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1247,7 +1693,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100221( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100222: if (StaticGraph100222::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1256,7 +1702,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100222( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100223: if (StaticGraph100223::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1265,7 +1711,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100223( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100224: if (StaticGraph100224::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1274,7 +1720,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100224( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100240: if (StaticGraph100240::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1283,7 +1729,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100240( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100241: if (StaticGraph100241::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1292,7 +1738,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100241( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100242: if (StaticGraph100242::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1301,7 +1747,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100242( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100227: if (StaticGraph100227::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1310,7 +1756,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100227( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100228: if (StaticGraph100228::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1319,7 +1765,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100228( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100229: if (StaticGraph100229::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1328,7 +1774,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100229( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100230: if (StaticGraph100230::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1337,7 +1783,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100230( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100231: if (StaticGraph100231::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1346,7 +1792,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100231( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100232: if (StaticGraph100232::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1355,7 +1801,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100232( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100233: if (StaticGraph100233::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1364,7 +1810,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100233( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100234: if (StaticGraph100234::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1373,7 +1819,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100234( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100026: if (StaticGraph100026::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1382,7 +1828,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100026( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100059: if (StaticGraph100059::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1391,7 +1837,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100059( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100035: if (StaticGraph100035::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1400,7 +1846,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100035( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100036: if (StaticGraph100036::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1409,7 +1855,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100036( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100037: if (StaticGraph100037::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1418,7 +1864,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100037( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100058: if (StaticGraph100058::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1427,7 +1873,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100058( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100038: if (StaticGraph100038::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1436,7 +1882,16 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100038( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); + break; + case 101138: + if (StaticGraph101138::hashCode != selectedGraphConfigurationHeader->graphHashCode) + { + STATIC_GRAPH_LOG("Graph %d hash code is not matching the settings. Binary should be re-created.", selectedGraphConfigurationHeader->graphId); + return StaticGraphStatus::SG_ERROR; + } + *graph = new StaticGraph101138( + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; case 100039: if (StaticGraph100039::hashCode != selectedGraphConfigurationHeader->graphHashCode) @@ -1445,7 +1900,7 @@ StaticGraphStatus StaticGraphReader::GetStaticGraphConfig(GraphConfigurationKey& return StaticGraphStatus::SG_ERROR; } *graph = new StaticGraph100039( - reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, configurationInformation); + reinterpret_cast(selectedConfigurationData), &selectedSinkMappingConfiguration, &_sensorModes[selectedGraphConfigurationHeader->sensorModeIndex], selectedGraphConfigurationHeader->settingId, selectedGraphConfigurationHeader->additonalFeaturesBit, configurationInformation); break; default: STATIC_GRAPH_LOG("Graph %d was not found", selectedGraphConfigurationHeader->graphId); diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.h b/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.h index 6ff2503..88b2904 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphReaderAutogen.h @@ -86,8 +86,9 @@ class StaticGraphReader GSFTimeStamp GetBinaryTimeStamp() const; SysToolVersion GetSysToolVersion() const; uint32_t GetSAPAttribute() const; + uint32_t GetGlobalAdditionalFeaturesBit() const; uint32_t GetAdditionalFeaturesBit(const GraphConfigurationHeader* header) const; - static const uint32_t staticGraphCommonHashCode = 1677127292; // autogenerated + static const uint32_t staticGraphCommonHashCode = 2149586694; // autogenerated private: void GetSinkMappingConfiguration(GraphConfigurationHeader* baseGraphConfigurationHeader, VirtualSinkMapping* baseSinkMappingConfiguration, GraphConfigurationHeader* selectedGraphConfigurationHeader, VirtualSinkMapping* selectedSinkMappingConfiguration); diff --git a/modules/ipu_desc/ipu8/Ipu8StaticGraphTypesAutogen.h b/modules/ipu_desc/ipu8/Ipu8StaticGraphTypesAutogen.h index e71ee14..c0afbf0 100644 --- a/modules/ipu_desc/ipu8/Ipu8StaticGraphTypesAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8StaticGraphTypesAutogen.h @@ -66,6 +66,10 @@ enum class NodeResourceId : uint8_t { SwGdc = 4, SwScaler = 5, SwNntm = 6, + SwB2b = 7, + SwImv = 8, + SwRemosaic = 9, + SwAinr = 10, }; enum class StaticGraphStatus : uint8_t @@ -98,11 +102,11 @@ enum class HwSink : uint8_t AwbSatOutSink, ImageMpSink, ImageDpSink, - GmvMatchOutSink, ProcessedMainSink, + ProcessedSecondarySink, + GmvMatchOutSink, CvOutputSink, SegnetSecondarySink, - ProcessedSecondarySink, PdafOutSink, AwbSveOutSink, IrAeOutSink, @@ -127,6 +131,19 @@ enum class SapAttributeValues { LongInputAttribute = 2, ShortInputAttribute = 4, }; + +enum class AdditonalFeaturesBitValues { + None = 0, + NntmEnableBit = 1, + GdcEnableBit = 2, + B2bEnableBit = 4, + RemosaicEnableBit = 8, + ImvEnableBit = 16, + CasBeforUpscaleBit = 32, + FullLtmEnableBit = 64, + AinrEnableBit = 128, +}; + #pragma pack(push, 4) #ifndef STATIC_GRAPH_USE_IA_LEGACY_TYPES @@ -212,7 +229,13 @@ struct StaticGraphLinkConfiguration { uint32_t bufferSize = 0; uint8_t streamingMode = 0; }; - +struct StaticGraphSwProcessingLinkDefinition { + uint8_t src = 0; + uint8_t dest = 0; + uint8_t srcTerminalId = 0; + uint8_t destTerminalId = 0; + uint8_t type = 0; +}; struct VirtualSinkMapping { uint8_t preview = 0; uint8_t video = 0; @@ -331,11 +354,11 @@ enum class GraphElementType : uint8_t { AwbSatOut, ImageMp, ImageDp, - GmvMatchOut, ProcessedMain, + ProcessedSecondary, + GmvMatchOut, CvOutput, SegnetSecondary, - ProcessedSecondary, PdafOut, AwbSveOut, IrAeOut, @@ -348,85 +371,175 @@ enum class GraphElementType : uint8_t { RawIsysDolLong, RawIsysPdaf, // Outer Nodes + Isys, + LbffBayerNoGmvNoTnrNoSap, - LbffBayerWithGmvNoTnrNoSap, + + SwB2b, + + SwRemosaic, + + SwAinr, + SwGdc, + + SwNntm, + + SwImv, + + SwScaler, + + LbffBayerWithGmvNoTnrNoSap, + LbffBayerNoGmvWithTnrNoSap, + LbffBayerWithGmvWithTnrNoSap, + IsysWithCv, + SwSegnet, - LbffBayerWithGmvWithTnrWithSap, - SwScaler, - SwNntm, + + LbffBayerNoGmvNoTnrWithSap, + + LbffBayerWithGmvNoTnrWithSap, + LbffBayerNoGmvWithTnrWithSap, - IsysPdaf2WithCv, - LbffBayerPdaf2NoGmvWithTnrWithSap, - LbffBayerPdaf2WithTnrWithSap, - LbffBayerPdaf3NoGmvWithTnrWithSap, - LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap, + + LbffBayerWithGmvWithTnrWithSap, + IsysPdaf2, + LbffBayerPdaf2NoGmvNoTnrNoSap, + LbffBayerPdaf2WithGmvNoTnrNoSap, + LbffBayerPdaf2NoGmvWithTnrNoSap, + LbffBayerPdaf2WithGmvWithTnrNoSap, + + IsysPdaf2WithCv, + + LbffBayerPdaf2NoGmvNoTnrWithSap, + + LbffBayerPdaf2WithGmvNoTnrWithSap, + + LbffBayerPdaf2NoGmvWithTnrWithSap, + LbffBayerPdaf2WithGmvWithTnrWithSap, + LbffBayerPdaf3NoGmvNoTnrNoSap, + LbffBayerPdaf3WithGmvNoTnrNoSap, + LbffBayerPdaf3NoGmvWithTnrNoSap, + LbffBayerPdaf3WithGmvWithTnrNoSap, + + LbffBayerPdaf3NoGmvNoTnrWithSap, + + LbffBayerPdaf3WithGmvNoTnrWithSap, + + LbffBayerPdaf3NoGmvWithTnrWithSap, + LbffBayerPdaf3WithGmvWithTnrWithSap, + IsysDol, + LbffDol2InputsNoGmvNoTnrNoSap, + LbffDol2InputsWithGmvNoTnrNoSap, + LbffDol2InputsNoGmvWithTnrNoSap, + LbffDol2InputsWithGmvWithTnrNoSap, + + IsysDolWithCv, + + LbffDol2InputsNoGmvNoTnrWithSap, + + LbffDol2InputsWithGmvNoTnrWithSap, + + LbffDol2InputsNoGmvWithTnrWithSap, + + LbffDol2InputsWithGmvWithTnrWithSap, + + LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap, + + LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap, + + LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap, + + LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap, + + LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap, + + LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap, + + LbffBayerPdaf3asPdaf2NoGmvWithTnrWithSap, + + LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap, + LbffDolSmooth, + LbffDol3InputsNoGmvNoTnrNoSap, + LbffDol3InputsWithGmvNoTnrNoSap, + LbffDol3InputsNoGmvWithTnrNoSap, + LbffDol3InputsWithGmvWithTnrNoSap, + + LbffDol3InputsNoGmvNoTnrWithSap, + + LbffDol3InputsWithGmvNoTnrWithSap, + + LbffDol3InputsNoGmvWithTnrWithSap, + + LbffDol3InputsWithGmvWithTnrWithSap, + + LbffBayerPdaf2WithTnrWithSap, + LbffRgbIrNoGmvNoTnrNoSap, + LbffRgbIrIrNoGmvNoTnrNoSap, + LbffRgbIrWithGmvNoTnrNoSap, + LbffRgbIrNoGmvWithTnrNoSap, + LbffRgbIrIrNoGmvWithTnrNoSap, + LbffRgbIrWithGmvWithTnrNoSap, + LbffIrNoGmvNoTnrNoSap, + LbffIrWithGmvNoTnrNoSap, + LbffIrNoGmvWithTnrNoSap, + LbffIrWithGmvWithTnrNoSap, - LbffBayerPdaf3asPdaf2NoGmvNoTnrNoSap, - LbffBayerPdaf3asPdaf2WithGmvNoTnrNoSap, - LbffBayerPdaf3asPdaf2NoGmvWithTnrNoSap, - LbffBayerPdaf3asPdaf2WithGmvWithTnrNoSap, - LbffBayerPdaf3asPdaf2WithGmvWithTnrWithSap, - LbffBayerNoGmvNoTnrWithSap, - LbffBayerWithGmvNoTnrWithSap, + LbffBayerNoGmvWithTnrWithOpacity, - LbffBayerPdaf2NoGmvNoTnrWithSap, - LbffBayerPdaf2WithGmvNoTnrWithSap, - LbffBayerPdaf3NoGmvNoTnrWithSap, - LbffBayerPdaf3WithGmvNoTnrWithSap, - IsysDolWithCv, - LbffDol2InputsNoGmvNoTnrWithSap, - LbffDol2InputsWithGmvNoTnrWithSap, - LbffDol2InputsNoGmvWithTnrWithSap, - LbffDol2InputsWithGmvWithTnrWithSap, - LbffDol3InputsNoGmvNoTnrWithSap, - LbffDol3InputsWithGmvNoTnrWithSap, - LbffDol3InputsNoGmvWithTnrWithSap, - LbffDol3InputsWithGmvWithTnrWithSap, + + LbffDol2InputsNoGmvWithTnrWithOpacity, + LbffRgbIrNoGmvNoTnrWithSap, + LbffRgbIrWithGmvNoTnrWithSap, + LbffRgbIrNoGmvWithTnrWithSap, + LbffRgbIrWithGmvWithTnrWithSap, + LbffIrNoGmvNoTnrWithSap, + LbffIrWithGmvNoTnrWithSap, + LbffIrNoGmvWithTnrWithSap, + LbffIrWithGmvWithTnrWithSap, - LbffBayerPdaf3asPdaf2NoGmvNoTnrWithSap, - LbffBayerPdaf3asPdaf2WithGmvNoTnrWithSap, + WithCv, }; diff --git a/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.cpp b/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.cpp index ad3fb90..4b31ccc 100644 --- a/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.cpp +++ b/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.cpp @@ -560,7 +560,7 @@ TerminalDescriptor SW_NNTMTerminalDesc[] = PAC_BUFFER_TYPE_NONE, TERMINAL_BUFFER_TYPE_DATA, TERMINAL_DIR_IN, - 46539, // nntm_1_0 + 8034, // nntm_1_2 }, { SW_NNTM_TERMINAL_CONNECT_OUTPUT_1, @@ -582,9 +582,110 @@ TerminalDescriptor SW_NNTMTerminalDesc[] = }, }; +TerminalDescriptor SW_B2BTerminalDesc[] = +{ + { + SW_B2B_TERMINAL_CONNECT_INPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_INPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_IN, + 17306, // b2b + }, + { + SW_B2B_TERMINAL_CONNECT_OUTPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_OUTPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_OUT, + 17306, // b2b + }, +}; + +TerminalDescriptor SW_IMVTerminalDesc[] = +{ + { + SW_IMV_TERMINAL_CONNECT_INPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_INPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_IN, + 23692, // imv + }, + { + SW_IMV_TERMINAL_CONNECT_OUTPUT_1, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_OUTPUT_1", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_OUT, + 0, // + }, + { + SW_IMV_TERMINAL_CONNECT_OUTPUT_2, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_OUTPUT_2", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_OUT, + 19706, // sw_scaler + }, +}; + +TerminalDescriptor SW_REMOSAICTerminalDesc[] = +{ + { + SW_REMOSAIC_TERMINAL_CONNECT_INPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_INPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_IN, + 8198, // remosaic_1_0 + }, + { + SW_REMOSAIC_TERMINAL_CONNECT_OUTPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_OUTPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_OUT, + 8198, // remosaic_1_0 + }, +}; + +TerminalDescriptor SW_AINRTerminalDesc[] = +{ + { + SW_AINR_TERMINAL_CONNECT_INPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_INPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_IN, + 0, // ainr + }, + { + SW_AINR_TERMINAL_CONNECT_OUTPUT, + TERMINAL_TYPE_CONNECT, + "TERMINAL_CONNECT_OUTPUT", + PAC_BUFFER_TYPE_NONE, + TERMINAL_BUFFER_TYPE_DATA, + TERMINAL_DIR_OUT, + 0, // ainr + }, +}; + int CountOfSW_ISYSTerminalDesc = sizeof(SW_ISYSTerminalDesc) / sizeof(SW_ISYSTerminalDesc[0]); int CountOfLBFFTerminalDesc = sizeof(LBFFTerminalDesc) / sizeof(LBFFTerminalDesc[0]); int CountOfSW_SEGNETTerminalDesc = sizeof(SW_SEGNETTerminalDesc) / sizeof(SW_SEGNETTerminalDesc[0]); int CountOfSW_GDCTerminalDesc = sizeof(SW_GDCTerminalDesc) / sizeof(SW_GDCTerminalDesc[0]); int CountOfSW_SCALERTerminalDesc = sizeof(SW_SCALERTerminalDesc) / sizeof(SW_SCALERTerminalDesc[0]); int CountOfSW_NNTMTerminalDesc = sizeof(SW_NNTMTerminalDesc) / sizeof(SW_NNTMTerminalDesc[0]); +int CountOfSW_B2BTerminalDesc = sizeof(SW_B2BTerminalDesc) / sizeof(SW_B2BTerminalDesc[0]); +int CountOfSW_IMVTerminalDesc = sizeof(SW_IMVTerminalDesc) / sizeof(SW_IMVTerminalDesc[0]); +int CountOfSW_REMOSAICTerminalDesc = sizeof(SW_REMOSAICTerminalDesc) / sizeof(SW_REMOSAICTerminalDesc[0]); +int CountOfSW_AINRTerminalDesc = sizeof(SW_AINRTerminalDesc) / sizeof(SW_AINRTerminalDesc[0]); diff --git a/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.h b/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.h index e7d6688..8d98f0e 100644 --- a/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.h +++ b/modules/ipu_desc/ipu8/Ipu8TerminalDescriptorAutogen.h @@ -157,12 +157,41 @@ enum SW_NNTMTerminalID SW_NNTM_TERMINAL_CONNECT_OUTPUT_2, }; +enum SW_B2BTerminalID +{ + SW_B2B_TERMINAL_CONNECT_INPUT, + SW_B2B_TERMINAL_CONNECT_OUTPUT, +}; + +enum SW_IMVTerminalID +{ + SW_IMV_TERMINAL_CONNECT_INPUT, + SW_IMV_TERMINAL_CONNECT_OUTPUT_1, + SW_IMV_TERMINAL_CONNECT_OUTPUT_2, +}; + +enum SW_REMOSAICTerminalID +{ + SW_REMOSAIC_TERMINAL_CONNECT_INPUT, + SW_REMOSAIC_TERMINAL_CONNECT_OUTPUT, +}; + +enum SW_AINRTerminalID +{ + SW_AINR_TERMINAL_CONNECT_INPUT, + SW_AINR_TERMINAL_CONNECT_OUTPUT, +}; + extern TerminalDescriptor SW_ISYSTerminalDesc[]; extern TerminalDescriptor LBFFTerminalDesc[]; extern TerminalDescriptor SW_SEGNETTerminalDesc[]; extern TerminalDescriptor SW_GDCTerminalDesc[]; extern TerminalDescriptor SW_SCALERTerminalDesc[]; extern TerminalDescriptor SW_NNTMTerminalDesc[]; +extern TerminalDescriptor SW_B2BTerminalDesc[]; +extern TerminalDescriptor SW_IMVTerminalDesc[]; +extern TerminalDescriptor SW_REMOSAICTerminalDesc[]; +extern TerminalDescriptor SW_AINRTerminalDesc[]; extern int CountOfSW_ISYSTerminalDesc; extern int CountOfLBFFTerminalDesc; @@ -170,3 +199,7 @@ extern int CountOfSW_SEGNETTerminalDesc; extern int CountOfSW_GDCTerminalDesc; extern int CountOfSW_SCALERTerminalDesc; extern int CountOfSW_NNTMTerminalDesc; +extern int CountOfSW_B2BTerminalDesc; +extern int CountOfSW_IMVTerminalDesc; +extern int CountOfSW_REMOSAICTerminalDesc; +extern int CountOfSW_AINRTerminalDesc;