diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 297b77b5..7a01d3c6 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -1722,16 +1722,15 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 range_n->vaddr_range = vaddr_range; range_n->zero_terminated = zero_terminated; range_n->id = id; - ins_atomic_u64_inc_eval(&range_n->working_count); node_needs_stream = 1; } else { node_needs_stream = (range_n->mem_gen < mem_gen); - if(node_needs_stream) - { - ins_atomic_u64_inc_eval(&range_n->working_count); - } + } + if(node_needs_stream) + { + ins_atomic_u64_inc_eval(&range_n->working_count); } node_working_count = &range_n->working_count; break; diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 0c639e56..cca020a7 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -11262,15 +11262,12 @@ rd_frame(void) } ////////////////////////////// - //- rjf: open frame scopes + //- rjf: push frame scopes // - if(rd_state->frame_depth == 1) - { - if(rd_state->frame_di_scope) { di_scope_close(rd_state->frame_di_scope); } - if(rd_state->frame_ctrl_scope) { ctrl_scope_close(rd_state->frame_ctrl_scope); } - rd_state->frame_di_scope = di_scope_open(); - rd_state->frame_ctrl_scope = ctrl_scope_open(); - } + DI_Scope *frame_di_scope_restore = rd_state->frame_di_scope; + CTRL_Scope *frame_ctrl_scope_restore = rd_state->frame_ctrl_scope; + rd_state->frame_di_scope = di_scope_open(); + rd_state->frame_ctrl_scope = ctrl_scope_open(); ////////////////////////////// //- rjf: calculate avg length in us of last many frames @@ -16749,6 +16746,14 @@ rd_frame(void) rd_state->num_frames_requested -= 1; } + ////////////////////////////// + //- rjf: close frame scopes + // + di_scope_close(rd_state->frame_di_scope); + ctrl_scope_close(rd_state->frame_ctrl_scope); + rd_state->frame_di_scope = frame_di_scope_restore; + rd_state->frame_ctrl_scope = frame_ctrl_scope_restore; + ////////////////////////////// //- rjf: submit rendering to all windows //