mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-27 07:03:36 -04:00
display: PStats collector reorganisation
Remove *:do_frame (which adds another stack frame with very little value), remove unused App:Delete collector, merge Flip Begin/End collectors
This commit is contained in:
parent
161ac4c2f7
commit
65cd882cb2
@ -71,7 +71,6 @@ PStatCollector GraphicsEngine::_wait_pcollector("Wait:Thread sync");
|
||||
PStatCollector GraphicsEngine::_cycle_pcollector("App:Cycle");
|
||||
//PStatCollector GraphicsEngine::_app_pcollector("App:Show code:General");
|
||||
PStatCollector GraphicsEngine::_render_frame_pcollector("App:render_frame");
|
||||
PStatCollector GraphicsEngine::_do_frame_pcollector("*:do_frame");
|
||||
PStatCollector GraphicsEngine::_yield_pcollector("App:Yield");
|
||||
PStatCollector GraphicsEngine::_cull_pcollector("Cull");
|
||||
PStatCollector GraphicsEngine::_cull_setup_pcollector("Cull:Setup");
|
||||
@ -79,15 +78,12 @@ PStatCollector GraphicsEngine::_cull_sort_pcollector("Cull:Sort");
|
||||
PStatCollector GraphicsEngine::_draw_pcollector("Draw");
|
||||
PStatCollector GraphicsEngine::_sync_pcollector("Draw:Sync");
|
||||
PStatCollector GraphicsEngine::_flip_pcollector("Wait:Flip");
|
||||
PStatCollector GraphicsEngine::_flip_begin_pcollector("Wait:Flip:Begin");
|
||||
PStatCollector GraphicsEngine::_flip_end_pcollector("Wait:Flip:End");
|
||||
PStatCollector GraphicsEngine::_transform_states_pcollector("TransformStates");
|
||||
PStatCollector GraphicsEngine::_transform_states_unused_pcollector("TransformStates:Unused");
|
||||
PStatCollector GraphicsEngine::_render_states_pcollector("RenderStates");
|
||||
PStatCollector GraphicsEngine::_render_states_unused_pcollector("RenderStates:Unused");
|
||||
PStatCollector GraphicsEngine::_cyclers_pcollector("PipelineCyclers");
|
||||
PStatCollector GraphicsEngine::_dirty_cyclers_pcollector("PipelineCyclers:Dirty");
|
||||
PStatCollector GraphicsEngine::_delete_pcollector("App:Delete");
|
||||
|
||||
|
||||
PStatCollector GraphicsEngine::_sw_sprites_pcollector("SW Sprites");
|
||||
@ -799,10 +795,7 @@ render_frame() {
|
||||
|
||||
// Now it's time to do any drawing from the main frame--after all of the
|
||||
// App code has executed, but before we begin the next frame.
|
||||
{
|
||||
PStatTimer timer(_do_frame_pcollector, current_thread);
|
||||
_app.do_frame(this, current_thread);
|
||||
}
|
||||
_app.do_frame(this, current_thread);
|
||||
|
||||
// Grab each thread's mutex again after all windows have flipped, and wait
|
||||
// for the thread to finish.
|
||||
@ -1416,14 +1409,9 @@ cull_and_draw_together(GraphicsEngine::Windows wlist,
|
||||
GraphicsOutput *win = wlist[wi];
|
||||
if (win->is_active() && win->get_gsg()->is_active()) {
|
||||
if (win->flip_ready()) {
|
||||
{
|
||||
PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
}
|
||||
{
|
||||
PStatTimer timer(GraphicsEngine::_flip_end_pcollector, current_thread);
|
||||
win->end_flip();
|
||||
}
|
||||
PStatTimer timer(_flip_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
win->end_flip();
|
||||
}
|
||||
|
||||
if (win->begin_frame(GraphicsOutput::FM_render, current_thread)) {
|
||||
@ -1446,14 +1434,9 @@ cull_and_draw_together(GraphicsEngine::Windows wlist,
|
||||
|
||||
if (_auto_flip) {
|
||||
if (win->flip_ready()) {
|
||||
{
|
||||
PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
}
|
||||
{
|
||||
PStatTimer timer(GraphicsEngine::_flip_end_pcollector, current_thread);
|
||||
win->end_flip();
|
||||
}
|
||||
PStatTimer timer(_flip_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
win->end_flip();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1691,6 +1674,8 @@ cull_to_bins(GraphicsOutput *win, GraphicsStateGuardian *gsg,
|
||||
*/
|
||||
void GraphicsEngine::
|
||||
draw_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) {
|
||||
PStatTimer timer(_draw_pcollector, current_thread);
|
||||
|
||||
nassertv(wlist.verify_list());
|
||||
|
||||
size_t wlist_size = wlist.size();
|
||||
@ -1702,16 +1687,9 @@ draw_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) {
|
||||
|
||||
GraphicsOutput *host = win->get_host();
|
||||
if (host->flip_ready()) {
|
||||
{
|
||||
// We can't use a PStatGPUTimer before begin_frame, so when using
|
||||
// GPU timing, it is advisable to set auto-flip to #t.
|
||||
PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread);
|
||||
host->begin_flip();
|
||||
}
|
||||
{
|
||||
PStatTimer timer(GraphicsEngine::_flip_end_pcollector, current_thread);
|
||||
host->end_flip();
|
||||
}
|
||||
PStatTimer timer(_flip_pcollector, current_thread);
|
||||
host->begin_flip();
|
||||
host->end_flip();
|
||||
}
|
||||
|
||||
if (win->begin_frame(GraphicsOutput::FM_render, current_thread)) {
|
||||
@ -1749,16 +1727,9 @@ draw_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) {
|
||||
#endif
|
||||
|
||||
if (win->flip_ready()) {
|
||||
{
|
||||
// begin_flip doesn't do anything interesting, let's not waste
|
||||
// two timer queries on that.
|
||||
PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
}
|
||||
{
|
||||
PStatGPUTimer timer(gsg, GraphicsEngine::_flip_end_pcollector, current_thread);
|
||||
win->end_flip();
|
||||
}
|
||||
PStatGPUTimer timer(gsg, _flip_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
win->end_flip();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1820,6 +1791,8 @@ flip_windows(const GraphicsEngine::Windows &wlist, Thread *current_thread) {
|
||||
size_t warray_count = 0;
|
||||
GraphicsOutput **warray = (GraphicsOutput **)alloca(warray_size);
|
||||
|
||||
PStatTimer timer(_flip_pcollector, current_thread);
|
||||
|
||||
size_t i;
|
||||
for (i = 0; i < num_windows; ++i) {
|
||||
GraphicsOutput *win = wlist[i];
|
||||
@ -1828,14 +1801,12 @@ flip_windows(const GraphicsEngine::Windows &wlist, Thread *current_thread) {
|
||||
warray[warray_count] = win;
|
||||
++warray_count;
|
||||
|
||||
PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread);
|
||||
win->begin_flip();
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < warray_count; ++i) {
|
||||
GraphicsOutput *win = warray[i];
|
||||
PStatTimer timer(GraphicsEngine::_flip_end_pcollector, current_thread);
|
||||
win->end_flip();
|
||||
}
|
||||
}
|
||||
@ -1851,7 +1822,7 @@ ready_flip_windows(const GraphicsEngine::Windows &wlist, Thread *current_thread)
|
||||
for (wi = wlist.begin(); wi != wlist.end(); ++wi) {
|
||||
GraphicsOutput *win = (*wi);
|
||||
if (win->flip_ready()) {
|
||||
PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread);
|
||||
PStatTimer timer(_flip_pcollector, current_thread);
|
||||
win->ready_flip();
|
||||
}
|
||||
}
|
||||
@ -2756,11 +2727,8 @@ thread_main() {
|
||||
break;
|
||||
|
||||
case TS_do_frame:
|
||||
{
|
||||
PStatTimer timer(_engine->_do_frame_pcollector, current_thread);
|
||||
do_pending(_engine, current_thread);
|
||||
do_frame(_engine, current_thread);
|
||||
}
|
||||
do_pending(_engine, current_thread);
|
||||
do_frame(_engine, current_thread);
|
||||
break;
|
||||
|
||||
case TS_do_flip:
|
||||
|
@ -360,7 +360,6 @@ private:
|
||||
static PStatCollector _cycle_pcollector;
|
||||
//static PStatCollector _app_pcollector;
|
||||
static PStatCollector _render_frame_pcollector;
|
||||
static PStatCollector _do_frame_pcollector;
|
||||
static PStatCollector _yield_pcollector;
|
||||
static PStatCollector _cull_pcollector;
|
||||
static PStatCollector _cull_setup_pcollector;
|
||||
@ -368,15 +367,12 @@ private:
|
||||
static PStatCollector _draw_pcollector;
|
||||
static PStatCollector _sync_pcollector;
|
||||
static PStatCollector _flip_pcollector;
|
||||
static PStatCollector _flip_begin_pcollector;
|
||||
static PStatCollector _flip_end_pcollector;
|
||||
static PStatCollector _transform_states_pcollector;
|
||||
static PStatCollector _transform_states_unused_pcollector;
|
||||
static PStatCollector _render_states_pcollector;
|
||||
static PStatCollector _render_states_unused_pcollector;
|
||||
static PStatCollector _cyclers_pcollector;
|
||||
static PStatCollector _dirty_cyclers_pcollector;
|
||||
static PStatCollector _delete_pcollector;
|
||||
|
||||
static PStatCollector _sw_sprites_pcollector;
|
||||
static PStatCollector _vertex_data_small_pcollector;
|
||||
|
Loading…
x
Reference in New Issue
Block a user