[Huawei P8 ROMs, Kernels, Recoveries, & Other Devel] Kostyan_nsk:
Well, instead of decompiling oem hwcomposer, I've maid output of structure's values after copy_from_user and before copy_to_user functions in kernel and got something like this:

<6>[ 10.992508] [157.0 surfaceflinger]k3_fb_ioctl: K3FB_OVERLAY_GET
<6>[ 10.992526] [157.0 surfaceflinger] src_rect.x = 0
<6>[ 10.992531] [157.0 surfaceflinger] src_rect.y = 0
<6>[ 10.992537] [157.0 surfaceflinger] src_rect.w = 0
<6>[ 10.992543] [157.0 surfaceflinger] src_rect.h = 0
<6>[ 10.992549] [157.0 surfaceflinger] dst_rect.x = 0
<6>[ 10.992555] [157.0 surfaceflinger] dst_rect.y = 0
<6>[ 10.992561] [157.0 surfaceflinger] dst_rect.w = 0
<6>[ 10.992566] [157.0 surfaceflinger] dst_rect.h = 0
<6>[ 10.992572] [157.0 surfaceflinger] id = 1
<6>[ 10.992578] [157.0 surfaceflinger] is_pipe_used = 0
<6>[ 10.992583] [157.0 surfaceflinger] rotation = 0
<6>[ 10.992588] [157.0 surfaceflinger] dither = 0
<6>[ 10.992593] [157.0 surfaceflinger] hd_enable = 0
<6>[ 10.992598] [157.0 surfaceflinger] cfg_disable = 0
<6>[ 10.992603] [157.0 surfaceflinger] is_overlay_compose = 0
<6>[ 10.992609] [157.0 surfaceflinger] need_unset = 0
<6>[ 10.992613] [157.0 surfaceflinger] overlay_num = 0
<6>[ 10.992618] [157.0 surfaceflinger] clip_right = 0
<6>[ 10.992624] [157.0 surfaceflinger] clip_bottom = 0
<6>[ 10.992629] [157.0 surfaceflinger] clip_right_partial = 0
<6>[ 10.992634] [157.0 surfaceflinger] clip_bottom_partial = 0
<6>[ 10.992645] [157.0 surfaceflinger]
<6>[ 10.992656] [157.0 surfaceflinger] src_rect.x = 0
<6>[ 10.992661] [157.0 surfaceflinger] src_rect.y = 0
<6>[ 10.992666] [157.0 surfaceflinger] src_rect.w = 0
<6>[ 10.992670] [157.0 surfaceflinger] src_rect.h = 0
<6>[ 10.992675] [157.0 surfaceflinger] dst_rect.x = 0
<6>[ 10.992680] [157.0 surfaceflinger] dst_rect.y = 0
<6>[ 10.992684] [157.0 surfaceflinger] dst_rect.w = 0
<6>[ 10.992689] [157.0 surfaceflinger] dst_rect.h = 0
<6>[ 10.992693] [157.0 surfaceflinger] id = 0
<6>[ 10.992698] [157.0 surfaceflinger] is_pipe_used = 0
<6>[ 10.992703] [157.0 surfaceflinger] rotation = 0
<6>[ 10.992707] [157.0 surfaceflinger] dither = 0
<6>[ 10.992712] [157.0 surfaceflinger] hd_enable = 0
<6>[ 10.992716] [157.0 surfaceflinger] cfg_disable = 0
<6>[ 10.992721] [157.0 surfaceflinger] is_overlay_compose = 0
<6>[ 10.992726] [157.0 surfaceflinger] need_unset = 1
<6>[ 10.992731] [157.0 surfaceflinger] overlay_num = 0
<6>[ 10.992735] [157.0 surfaceflinger] clip_right = 0
<6>[ 10.992740] [157.0 surfaceflinger] clip_bottom = 0
<6>[ 10.992744] [157.0 surfaceflinger] clip_right_partial = 0
<6>[ 10.992749] [157.0 surfaceflinger] clip_bottom_partial = 0
<6>[ 10.993626] [157.0 surfaceflinger]k3_fb_ioctl: K3FB_OVERLAY_SET
<6>[ 10.993641] [157.0 surfaceflinger] src_rect.x = 0
<6>[ 10.993645] [157.0 surfaceflinger] src_rect.y = 0
<6>[ 10.993650] [157.0 surfaceflinger] src_rect.w = 720
<6>[ 10.993655] [157.0 surfaceflinger] src_rect.h = 1280
<6>[ 10.993660] [157.0 surfaceflinger] dst_rect.x = 0
<6>[ 10.993664] [157.0 surfaceflinger] dst_rect.y = 0
<6>[ 10.993669] [157.0 surfaceflinger] dst_rect.w = 720
<6>[ 10.993673] [157.0 surfaceflinger] dst_rect.h = 1280
<6>[ 10.993678] [157.0 surfaceflinger] id = 1
<6>[ 10.993683] [157.0 surfaceflinger] is_pipe_used = 0
<6>[ 10.993687] [157.0 surfaceflinger] rotation = 0
<6>[ 10.993692] [157.0 surfaceflinger] dither = 0
<6>[ 10.993696] [157.0 surfaceflinger] hd_enable = 0
<6>[ 10.993701] [157.0 surfaceflinger] cfg_disable = 0
<6>[ 10.993706] [157.0 surfaceflinger] is_overlay_compose = 1
<6>[ 10.993710] [157.0 surfaceflinger] need_unset = 1
<6>[ 10.993715] [157.0 surfaceflinger] overlay_num = 0
<6>[ 10.993720] [157.0 surfaceflinger] clip_right = 0
<6>[ 10.993724] [157.0 surfaceflinger] clip_bottom = 0
<6>[ 10.993729] [157.0 surfaceflinger] clip_right_partial = 0
<6>[ 10.993734] [157.0 surfaceflinger] clip_bottom_partial = 0
<6>[ 10.993749] [157.0 surfaceflinger]k3_fb_ioctl: K3FB_OVERLAY_PLAY
<6>[ 10.993768] [157.0 surfaceflinger] id = 1
<6>[ 10.993772] [157.0 surfaceflinger] is_graphic = 1
<6>[ 10.993777] [157.0 surfaceflinger] src.type = 0
<6>[ 10.993781] [157.0 surfaceflinger] src.phy_addr = 1813024768
<6>[ 10.993786] [157.0 surfaceflinger] src.actual_width = 720
<6>[ 10.993791] [157.0 surfaceflinger] src.actual_height = 1280
<6>[ 10.993796] [157.0 surfaceflinger] src.format = 3
<6>[ 10.993800] [157.0 surfaceflinger] src.s3d_format = 255
<6>[ 10.993805] [157.0 surfaceflinger] src.stride = 2880
<6>[ 10.993810] [157.0 surfaceflinger] src.width = 720
<6>[ 10.993815] [157.0 surfaceflinger] src.height = 1280
<6>[ 10.993819] [157.0 surfaceflinger] src.is_video = 1074710643
<6>[ 10.993824] [157.0 surfaceflinger] src.compose_mode = 2
<6>[ 10.993829] [157.0 surfaceflinger] src.bgr_fmt = 1
<6>[ 10.993833] [157.0 surfaceflinger] src.blending = 16711941
<6>[ 10.993838] [157.0 surfaceflinger] src.acquire_fence = 1074019840
<6>[ 10.993843] [157.0 surfaceflinger] src.release_fence = 4294967295
<6>[ 10.993848] [157.0 surfaceflinger] src.buff_slot = 4294967295
<6>[ 10.993907] [157.0 surfaceflinger] id = 1
<6>[ 10.993912] [157.0 surfaceflinger] is_graphic = 1
<6>[ 10.993916] [157.0 surfaceflinger] src.type = 0
<6>[ 10.993921] [157.0 surfaceflinger] src.phy_addr = 1813024768
<6>[ 10.993926] [157.0 surfaceflinger] src.actual_width = 720
<6>[ 10.993931] [157.0 surfaceflinger] src.actual_height = 1280
<6>[ 10.993936] [157.0 surfaceflinger] src.format = 3
<6>[ 10.993940] [157.0 surfaceflinger] src.s3d_format = 255
<6>[ 10.993945] [157.0 surfaceflinger] src.stride = 2880
<6>[ 10.993950] [157.0 surfaceflinger] src.width = 720
<6>[ 10.993954] [157.0 surfaceflinger] src.height = 1280
<6>[ 10.993959] [157.0 surfaceflinger] src.is_video = 1074710643
<6>[ 10.993964] [157.0 surfaceflinger] src.compose_mode = 2
<6>[ 10.993969] [157.0 surfaceflinger] src.bgr_fmt = 1
<6>[ 10.993973] [157.0 surfaceflinger] src.blending = 16711941
<6>[ 10.993978] [157.0 surfaceflinger] src.acquire_fence = 1074019840
<6>[ 10.993983] [157.0 surfaceflinger] src.release_fence = 43
<6>[ 10.993988] [157.0 surfaceflinger] src.buff_slot = 4294967295
<6>[ 11.025682] [157.0 surfaceflinger]k3_fb_ioctl: K3FB_OVERLAY_UNSET
<6>[ 11.025694] [157.0 surfaceflinger] id = 1

So I've got ioctl sequence and actual values from stock hwcomposer. All you have to do after that is just fill-in structures in the same way. ;)

Anyway, it's not trivial, but at least in this case you can find in source code how one or the other value is used and what it means.