mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 08:15:18 -04:00
pstats: Fix off-by-one error in frame number counting
The frame number for CPU frames was one ahead of the real one, which did show up correctly for GPU frames
This commit is contained in:
parent
5032d41f43
commit
9784d46e95
@ -414,8 +414,9 @@ client_main_tick() {
|
|||||||
for (vector_int::const_iterator vi = indices.begin();
|
for (vector_int::const_iterator vi = indices.begin();
|
||||||
vi != indices.end();
|
vi != indices.end();
|
||||||
++vi) {
|
++vi) {
|
||||||
int frame_number = clock->get_frame_count(get_thread_object(*vi));
|
InternalThread *thread = get_thread_ptr(*vi);
|
||||||
_impl->new_frame(*vi, frame_number);
|
_impl->new_frame(*vi, thread->_frame_number);
|
||||||
|
thread->_frame_number = clock->get_frame_count(get_thread_object(*vi));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -678,12 +679,17 @@ do_make_thread(Thread *thread) {
|
|||||||
int index = (*vi);
|
int index = (*vi);
|
||||||
nassertr(index >= 0 && index < get_num_threads(), PStatThread());
|
nassertr(index >= 0 && index < get_num_threads(), PStatThread());
|
||||||
ThreadPointer *threads = _threads.load(std::memory_order_relaxed);
|
ThreadPointer *threads = _threads.load(std::memory_order_relaxed);
|
||||||
if (threads[index]->_thread.was_deleted() &&
|
InternalThread *pthread = threads[index];
|
||||||
threads[index]->_sync_name == thread->get_sync_name()) {
|
if (pthread->_thread.was_deleted() &&
|
||||||
|
pthread->_sync_name == thread->get_sync_name()) {
|
||||||
// Yes, re-use this one.
|
// Yes, re-use this one.
|
||||||
threads[index]->_thread = thread;
|
pthread->_thread = thread;
|
||||||
thread->set_pstats_index(index);
|
thread->set_pstats_index(index);
|
||||||
thread->set_pstats_callback(this);
|
thread->set_pstats_callback(this);
|
||||||
|
if (pthread->_sync_name == "Main") {
|
||||||
|
ClockObject *clock = ClockObject::get_global_clock();
|
||||||
|
pthread->_frame_number = clock->get_frame_count(thread);
|
||||||
|
}
|
||||||
return PStatThread(this, index);
|
return PStatThread(this, index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -695,6 +701,10 @@ do_make_thread(Thread *thread) {
|
|||||||
thread->set_pstats_callback(this);
|
thread->set_pstats_callback(this);
|
||||||
|
|
||||||
InternalThread *pthread = new InternalThread(thread);
|
InternalThread *pthread = new InternalThread(thread);
|
||||||
|
if (pthread->_sync_name == "Main") {
|
||||||
|
ClockObject *clock = ClockObject::get_global_clock();
|
||||||
|
pthread->_frame_number = clock->get_frame_count(thread);
|
||||||
|
}
|
||||||
add_thread(pthread);
|
add_thread(pthread);
|
||||||
|
|
||||||
return PStatThread(this, new_index);
|
return PStatThread(this, new_index);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user