Merge branch 'r3d/prime-fix2' into lang/leaks2
This commit is contained in:
commit
fc0f3d3790
2 changed files with 9 additions and 1 deletions
|
|
@ -1012,8 +1012,8 @@ function gvk_frame_cb(render3d_st: mut Render3dState) -> pointer {
|
|||
# the frame in flight uses the other half of the ring and the other pool, unless it has this slot
|
||||
if render3d_st.gvk_frame_pending and (render3d_st.gvk_frame_pending_no & 1) == (render3d_st.gvk_frame_no & 1) { gvk_frame_wait(render3d_st) }
|
||||
gvk_frame_reset(render3d_st)
|
||||
gvk_prime_submit(render3d_st)
|
||||
render3d_st.gvk_cb = gvk_once_begin(render3d_st)
|
||||
gvk_prime_flush(render3d_st, render3d_st.gvk_cb)
|
||||
}
|
||||
return render3d_st.gvk_cb
|
||||
}
|
||||
|
|
|
|||
|
|
@ -775,6 +775,14 @@ function gvk_prime(render3d_st: mut Render3dState, b: int, buf: long) -> void {
|
|||
render3d_st.gvk_prime_h[render3d_st.gvk_prime_n] = buf
|
||||
render3d_st.gvk_prime_n += 1
|
||||
}
|
||||
# In a command buffer of their own, submitted and waited for at once: recorded into the frame's, a
|
||||
# buffer released later in that frame (a guest loading its models) was destroyed before the copy ran.
|
||||
function gvk_prime_submit(render3d_st: mut Render3dState) -> void {
|
||||
if render3d_st.gvk_prime_n == 0 { return }
|
||||
let cb = gvk_once_begin(render3d_st)
|
||||
gvk_prime_flush(render3d_st, cb)
|
||||
gvk_once_end(render3d_st, cb)
|
||||
}
|
||||
function gvk_prime_flush(render3d_st: mut Render3dState, cb: pointer) -> void {
|
||||
if render3d_st.gvk_prime_n == 0 { return }
|
||||
if render3d_st.gvk_prime_dst == 0 and not gvk_prime_target(render3d_st) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue