STRUCT MALI_C55_PARAMS_MESH_SHADING_SELECTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct mali_c55_params_mesh_shading_selection(9) πŸ’…

okay bestie, this is the Kernel API Manual page for the header that gets shortened to struct mali...ng_selection(9) β€” the full-name serve is right below, and yes, it’s giving mesh shading realness. 🫢


πŸŽ€ NAME πŸŽ€

struct mali_c55_params_mesh_shading_selection β€” Mesh table selection. That’s the whole title, and it’s iconic. ✨

✨ SYNOPSIS ✨

       struct mali_c55_params_mesh_shading_selection {
           struct v4l2_isp_params_block_header header;
           __u8 mesh_alpha_bank_r;
           __u8 mesh_alpha_bank_g;
           __u8 mesh_alpha_bank_b;
           __u8 mesh_alpha_r;
           __u8 mesh_alpha_g;
           __u8 mesh_alpha_b;
           __u16 mesh_strength;
        };

🧚 Members 🧚

  • header β€” the Mali-C55 parameters block header. The structural moment, literally.
  • mesh_alpha_bank_r β€” Red mesh table select (c:type:enum mali_c55_params_mesh_alpha_bank).
  • mesh_alpha_bank_g β€” Green mesh table select (c:type:enum mali_c55_params_mesh_alpha_bank).
  • mesh_alpha_bank_b β€” Blue mesh table select (c:type:enum mali_c55_params_mesh_alpha_bank).
  • mesh_alpha_r β€” Blend coefficient for R [0..255].
  • mesh_alpha_g β€” Blend coefficient for G [0..255].
  • mesh_alpha_b β€” Blend coefficient for B [0..255].
  • mesh_strength β€” Mesh strength in Q4.12 format [0..4096].

πŸ’– Description πŸ’–

Okay so the module computes the final correction coefficients by blending the ones from two light source tables. Those tables are selected independently for each colour channel by the mesh_alpha_bank_r/g/b fields. Obsessed with the per-channel independence, honestly. 🌈

For each node, the final blended coefficients are calculated with this equation:

Final coefficient = (a * LS :sub:`b` + (256 - a) * LS :sub:`a` / 256

Where a is the mesh_alpha_r/g/b value, and LS :sub:`a` and LS :sub:`b` are the node cofficients for the two tables selected by the mesh_alpha_bank_r/g/b value. (Yes, β€œcofficients” is exactly what the page says β€” we keep the lore. πŸ’€)

The scale of the applied correction may also be controlled by tuning the mesh_strength member. It’s a modifier to the final coefficients, and it can be used to globally reduce the gains applied. slay that global gain reduction. πŸ”₯

Also: header.type should be set to MALI_C55_PARAM_MESH_SHADING_SELECTION from :c:type:`mali_c55_param_block_type` for this block. Don’t forget the type, bestie β€” it’s the entry ticket. 🎟️

🌈 SEE ALSO 🌈

Kernel file: ./include/uapi/linux/media/arm/mali-c55-config.h β€” that’s the source file, and then the whole referenced squad:

  • struct mali_c55_ae_1024bin_hist(9)
  • struct mali_c55_ae_5bin_hist(9)
  • struct mali_c55_awb_average_ratios(9)
  • struct mali_c55_af_statistics(9)
  • struct mali_c55_stats_buffer(9)
  • enum mali_c55_param_block_type(9)
  • struct mali_c55_params_sensor_off_preshading(9)
  • enum mali_c55_aexp_hist_tap_points(9)
  • enum mali_c55_aexp_skip_x(9)
  • enum mali_c55_aexp_skip_y(9)
  • enum mali_c55_aexp_row_column_offset(9)
  • enum mali_c55_aexp_hist_plane_mode(9)
  • struct mali_c55_params_aexp_hist(9)
  • struct mali_c55_params_aexp_weights(9)
  • struct mali_c55_params_digital_gain(9)
  • enum mali_c55_awb_stats_mode(9)
  • struct mali_c55_params_awb_gains(9)
  • enum mali_c55_params_awb_tap_points(9)
  • struct mali_c55_params_awb_config(9)
  • struct mali_c55_params_mesh_shading_config(9)
  • struct mali_c55_params_ccm(9)
  • struct mali_c55_params_gamma(9)
  • MALI_C55_PARAMS_MAX_SIZE(9)

footer source/version: ./include/uapi/linux/media/arm β€’ struct mali...ng_selection(9) β€’ October 2026 β€” bye bestie, mwah. πŸ’…πŸ’–

πŸ“¦ where this page comes from