Further analyst shows that it's not necessary to modify the depth to linear part. Instead, a non-oblique matrix need to provide when a oblique clipping perspective matrix is in use.
Change the goal to:
[x] Fix the oblique clipping in Ocean
[x] Refactor the near_far_q, extract the duplicated code to one place
Current depth buffer linearization is fast but can't process oblique clipping perspective matrix. Need to have a general version of it.