mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-20 10:54:59 -07:00
switch singular frame scopes to stack of frame scopes; always ensure scopes are closed before breaks in frames.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user