render3d: scratch the frame uses is made with the state, not on first use

Render3dState's cam_planes, gpu_u_tmp, q_scratch, ov_nine_buf, the caster test's four points,
ter_bw, ter_scr and water_saved default to their buffers (as ludic.anim's clip state does), so the
lazy starts in cam_planes_update, gpu_tmp, terrain_height_smooth, ter_scratch, the water pass and
gvk_startup_state go. q_euler makes its views of q_scratch once (guarded on the view now). Compiled.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-28 16:30:17 +03:00
parent cd71da9330
commit deb7c0d0c0
7 changed files with 13 additions and 22 deletions

View file

@ -25,7 +25,6 @@ function water_reflection_pass(render3d_st: mut Render3dState) -> void {
# this reflection is composited into is smaller than the drawable, and a reflection
# rendered at the window's size would be paying for pixels the water never samples
render3d_st.water_refl = target_new(render3d_st, render3d_st.post_w / render3d_st.water_refl_div, render3d_st.post_h / render3d_st.water_refl_div, GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, true, GL_LINEAR)
render3d_st.water_saved = floats(16 * 4 + 3)
render3d_st.water_saved_vp = view(render3d_st.water_saved, 16, 16)
render3d_st.water_saved_ivp = view(render3d_st.water_saved, 32, 16)
}