From c292d3bc65b3ab7899911ad9ce5ab464aeb391b3 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 3 May 2015 20:47:29 +0200 Subject: [PATCH] Allow deactivating GPU timers, disable Draw:Primitive:Draw collectors --- panda/src/display/pStatGPUTimer.I | 6 +++--- .../src/glstuff/glGraphicsStateGuardian_src.cxx | 17 ++++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/panda/src/display/pStatGPUTimer.I b/panda/src/display/pStatGPUTimer.I index 27f4938917..4493f4ab9b 100644 --- a/panda/src/display/pStatGPUTimer.I +++ b/panda/src/display/pStatGPUTimer.I @@ -25,7 +25,7 @@ PStatGPUTimer(GraphicsStateGuardian *gsg, PStatCollector &collector) : PStatTimer(collector), _gsg(gsg) { - if (gsg->get_timer_queries_active()) { + if (gsg->get_timer_queries_active() && collector.is_active()) { gsg->issue_timer_query(collector.get_index()); //cerr << "issuing " << collector << " active " << collector.is_active() << "\n"; } @@ -41,7 +41,7 @@ PStatGPUTimer(GraphicsStateGuardian *gsg, PStatCollector &collector, Thread *cur PStatTimer(collector, current_thread), _gsg(gsg) { - if (gsg->get_timer_queries_active()) { + if (gsg->get_timer_queries_active() && collector.is_active()) { gsg->issue_timer_query(collector.get_index()); } } @@ -53,7 +53,7 @@ PStatGPUTimer(GraphicsStateGuardian *gsg, PStatCollector &collector, Thread *cur //////////////////////////////////////////////////////////////////// INLINE PStatGPUTimer:: ~PStatGPUTimer() { - if (_gsg->get_timer_queries_active()) { + if (_gsg->get_timer_queries_active() && _collector.is_active()) { _gsg->issue_timer_query(_collector.get_index() | 0x8000); } } diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index d24448189f..37dff91eea 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -3772,7 +3772,7 @@ disable_standard_vertex_arrays() { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { @@ -3839,7 +3839,7 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); report_my_gl_errors(); @@ -3966,7 +3966,8 @@ draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_trifans(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + #ifndef NDEBUG if (GLCAT.is_spam()) { GLCAT.spam() << "draw_trifans: " << *(reader->get_object()) << "\n"; @@ -4046,7 +4047,7 @@ draw_trifans(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_patches(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { @@ -4122,7 +4123,8 @@ draw_patches(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + #ifndef NDEBUG if (GLCAT.is_spam()) { GLCAT.spam() << "draw_lines: " << *(reader->get_object()) << "\n"; @@ -4186,7 +4188,7 @@ draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_linestrips(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); report_my_gl_errors(); @@ -4310,7 +4312,8 @@ draw_linestrips(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_points(const GeomPrimitivePipelineReader *reader, bool force) { - PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + //PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + #ifndef NDEBUG if (GLCAT.is_spam()) { GLCAT.spam() << "draw_points: " << *(reader->get_object()) << "\n";