mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
fix vbuffer pstats reporting
This commit is contained in:
parent
0edc10b609
commit
7a305f825f
@ -47,8 +47,8 @@ PStatCollector GraphicsStateGuardian::_total_texusage_pcollector("Texture usage"
|
||||
PStatCollector GraphicsStateGuardian::_active_texusage_pcollector("Texture usage:Active");
|
||||
PStatCollector GraphicsStateGuardian::_total_geom_pcollector("Prepared Geoms");
|
||||
PStatCollector GraphicsStateGuardian::_active_geom_pcollector("Prepared Geoms:Active");
|
||||
PStatCollector GraphicsStateGuardian::_total_buffers_pcollector("Vertex Buffers");
|
||||
PStatCollector GraphicsStateGuardian::_active_buffers_pcollector("Vertex Buffers:Active");
|
||||
PStatCollector GraphicsStateGuardian::_total_buffers_pcollector("Vertex buffers");
|
||||
PStatCollector GraphicsStateGuardian::_active_buffers_pcollector("Vertex buffers:Active");
|
||||
PStatCollector GraphicsStateGuardian::_total_geom_node_pcollector("Prepared GeomNodes");
|
||||
PStatCollector GraphicsStateGuardian::_active_geom_node_pcollector("Prepared GeomNodes:Active");
|
||||
PStatCollector GraphicsStateGuardian::_total_texmem_pcollector("Texture memory");
|
||||
@ -1443,6 +1443,7 @@ init_frame_pstats() {
|
||||
if (PStatClient::is_connected()) {
|
||||
_current_textures.clear();
|
||||
_current_geoms.clear();
|
||||
_current_datas.clear();
|
||||
_active_texusage_pcollector.clear_level();
|
||||
_active_geom_pcollector.clear_level();
|
||||
_active_geom_node_pcollector.clear_level();
|
||||
@ -1506,11 +1507,13 @@ add_to_geom_record(GeomContext *gc) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void GraphicsStateGuardian::
|
||||
add_to_data_record(DataContext *dc) {
|
||||
if (PStatClient::is_connected()) {
|
||||
if (dc != (DataContext *)NULL && _current_datas.insert(dc).second) {
|
||||
int delta = dc->get_data()->get_num_bytes() - dc->get_num_bytes();
|
||||
_total_buffers_pcollector.add_level(delta);
|
||||
_active_buffers_pcollector.add_level(dc->get_data()->get_num_bytes());
|
||||
if (dc != (DataContext *)NULL) {
|
||||
int delta = dc->get_data()->get_num_bytes() - dc->get_num_bytes();
|
||||
_total_buffers_pcollector.add_level(delta);
|
||||
if (PStatClient::is_connected()) {
|
||||
if (_current_datas.insert(dc).second) {
|
||||
_active_buffers_pcollector.add_level(dc->get_data()->get_num_bytes());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2357,12 +2357,14 @@ prepare_data(qpGeomVertexArrayData *data) {
|
||||
CLP(DataContext) *gdc = new CLP(DataContext)(data);
|
||||
_glGenBuffers(1, &gdc->_index);
|
||||
|
||||
add_to_data_record(gdc);
|
||||
/*
|
||||
_glBindBuffer(GL_ARRAY_BUFFER, gdc->_index);
|
||||
_glBufferData(GL_ARRAY_BUFFER, gdc->get_data()->get_num_bytes(),
|
||||
gdc->get_data()->get_data(),
|
||||
get_usage(gdc->get_data()->get_usage_hint()));
|
||||
add_to_data_record(gdc);
|
||||
gdc->mark_loaded();
|
||||
*/
|
||||
|
||||
report_my_gl_errors();
|
||||
return gdc;
|
||||
@ -2383,9 +2385,9 @@ apply_data(DataContext *dc) {
|
||||
|
||||
CLP(DataContext) *gdc = DCAST(CLP(DataContext), dc);
|
||||
|
||||
add_to_data_record(gdc);
|
||||
_glBindBuffer(GL_ARRAY_BUFFER, gdc->_index);
|
||||
|
||||
add_to_data_record(gdc);
|
||||
if (gdc->was_modified()) {
|
||||
if (GLCAT.is_debug()) {
|
||||
GLCAT.debug()
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "mutexHolder.h"
|
||||
|
||||
PStatCollector PreparedGraphicsObjects::_total_texusage_pcollector("Texture usage");
|
||||
PStatCollector PreparedGraphicsObjects::_total_buffers_pcollector("Vertex Buffers");
|
||||
PStatCollector PreparedGraphicsObjects::_total_buffers_pcollector("Vertex buffers");
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function: PreparedGraphicsObjects::Constructor
|
||||
@ -512,7 +512,10 @@ prepare_data_now(qpGeomVertexArrayData *data, GraphicsStateGuardianBase *gsg) {
|
||||
bool prepared = _prepared_datas.insert(dc).second;
|
||||
nassertr(prepared, dc);
|
||||
|
||||
_total_buffers_pcollector.add_level(dc->get_num_bytes());
|
||||
// The size has already been counted by
|
||||
// GraphicsStateGuardian::add_to_data_record(); we don't need to
|
||||
// count it again here.
|
||||
//_total_buffers_pcollector.add_level(dc->get_num_bytes());
|
||||
}
|
||||
|
||||
return dc;
|
||||
|
@ -551,10 +551,8 @@ stop(int collector_index, int thread_index, float as_of) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void PStatClient::
|
||||
clear_level(int collector_index, int thread_index) {
|
||||
if (_collectors[collector_index].is_active()) {
|
||||
_collectors[collector_index]._per_thread[thread_index]._has_level = false;
|
||||
_collectors[collector_index]._per_thread[thread_index]._level = 0.0;
|
||||
}
|
||||
_collectors[collector_index]._per_thread[thread_index]._has_level = false;
|
||||
_collectors[collector_index]._per_thread[thread_index]._level = 0.0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
@ -568,11 +566,13 @@ clear_level(int collector_index, int thread_index) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void PStatClient::
|
||||
set_level(int collector_index, int thread_index, float level) {
|
||||
if (client_is_connected() && _collectors[collector_index].is_active()) {
|
||||
level *= get_collector_def(collector_index)->_factor;
|
||||
_collectors[collector_index]._per_thread[thread_index]._has_level = true;
|
||||
_collectors[collector_index]._per_thread[thread_index]._level = level;
|
||||
}
|
||||
// We don't want to condition this on whether the client is already
|
||||
// connected or the collector is already active, since we might
|
||||
// connect the client later, and we will want to have an accurate
|
||||
// value at that time.
|
||||
level *= get_collector_def(collector_index)->_factor;
|
||||
_collectors[collector_index]._per_thread[thread_index]._has_level = true;
|
||||
_collectors[collector_index]._per_thread[thread_index]._level = level;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
@ -588,11 +588,9 @@ set_level(int collector_index, int thread_index, float level) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void PStatClient::
|
||||
add_level(int collector_index, int thread_index, float increment) {
|
||||
if (client_is_connected() && _collectors[collector_index].is_active()) {
|
||||
increment *= get_collector_def(collector_index)->_factor;
|
||||
_collectors[collector_index]._per_thread[thread_index]._has_level = true;
|
||||
_collectors[collector_index]._per_thread[thread_index]._level += increment;
|
||||
}
|
||||
increment *= get_collector_def(collector_index)->_factor;
|
||||
_collectors[collector_index]._per_thread[thread_index]._has_level = true;
|
||||
_collectors[collector_index]._per_thread[thread_index]._level += increment;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
@ -153,6 +153,8 @@ static LevelCollectorProperties level_properties[] = {
|
||||
{ 1, "Prepared Geoms:Active", { 0.5, 1.0, 0.8 } },
|
||||
{ 1, "Prepared GeomNodes", { 1.0, 0.0, 0.5 }, "", 500 },
|
||||
{ 1, "Prepared GeomNodes:Active", { 0.5, 1.0, 0.8 } },
|
||||
{ 1, "Vertex buffers:Active", { 1.0, 0.0, 0.5 } },
|
||||
{ 1, "Vertex buffers", { 0.0, 0.0, 1.0 }, "MB", 12, 1048576 },
|
||||
{ 1, "Vertices", { 0.5, 0.2, 0.0 }, "K", 10, 1000 },
|
||||
{ 1, "Vertices:Other", { 0.2, 0.2, 0.2 } },
|
||||
{ 1, "Vertices:Triangles", { 0.8, 0.8, 0.8 } },
|
||||
|
Loading…
x
Reference in New Issue
Block a user