Allow deactivating GPU timers, disable Draw:Primitive:Draw collectors

This commit is contained in:
rdb 2015-05-03 20:47:29 +02:00
parent cc9abf0bae
commit c292d3bc65
2 changed files with 13 additions and 10 deletions

View File

@ -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);
}
}

View File

@ -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";