add new statistics for gpu buffer streaming
This commit is contained in:
parent
6a5e7d7be4
commit
a51d6a6ddd
|
@ -55,6 +55,9 @@ char *Statistics::ToString(char *ptr)
|
||||||
ptr+=sprintf(ptr,"CP loads (DL): %i\n",stats.thisFrame.numCPLoadsInDL);
|
ptr+=sprintf(ptr,"CP loads (DL): %i\n",stats.thisFrame.numCPLoadsInDL);
|
||||||
ptr+=sprintf(ptr,"BP loads: %i\n",stats.thisFrame.numBPLoads);
|
ptr+=sprintf(ptr,"BP loads: %i\n",stats.thisFrame.numBPLoads);
|
||||||
ptr+=sprintf(ptr,"BP loads (DL): %i\n",stats.thisFrame.numBPLoadsInDL);
|
ptr+=sprintf(ptr,"BP loads (DL): %i\n",stats.thisFrame.numBPLoadsInDL);
|
||||||
|
ptr+=sprintf(ptr,"Vertex streamed: %i kB\n",stats.thisFrame.bytesVertexStreamed/1024);
|
||||||
|
ptr+=sprintf(ptr,"Index streamed: %i kB\n",stats.thisFrame.bytesIndexStreamed/1024);
|
||||||
|
ptr+=sprintf(ptr,"Uniform streamed: %i kB\n",stats.thisFrame.bytesUniformStreamed/1024);
|
||||||
ptr+=sprintf(ptr,"Vertex Loaders: %i\n",stats.numVertexLoaders);
|
ptr+=sprintf(ptr,"Vertex Loaders: %i\n",stats.numVertexLoaders);
|
||||||
|
|
||||||
std::string text1;
|
std::string text1;
|
||||||
|
|
|
@ -60,6 +60,10 @@ struct Statistics
|
||||||
int numBufferSplits;
|
int numBufferSplits;
|
||||||
|
|
||||||
int numDListsCalled;
|
int numDListsCalled;
|
||||||
|
|
||||||
|
int bytesVertexStreamed;
|
||||||
|
int bytesIndexStreamed;
|
||||||
|
int bytesUniformStreamed;
|
||||||
};
|
};
|
||||||
ThisFrame thisFrame;
|
ThisFrame thisFrame;
|
||||||
void ResetFrame();
|
void ResetFrame();
|
||||||
|
|
|
@ -345,6 +345,8 @@ ID3D11Buffer* &PixelShaderCache::GetConstantBuffer()
|
||||||
memcpy(map.pData, psconstants, sizeof(psconstants));
|
memcpy(map.pData, psconstants, sizeof(psconstants));
|
||||||
D3D::context->Unmap(pscbuf, 0);
|
D3D::context->Unmap(pscbuf, 0);
|
||||||
pscbufchanged = false;
|
pscbufchanged = false;
|
||||||
|
|
||||||
|
ADDSTAT(stats.thisFrame.bytesUniformStreamed, sizeof(psconstants));
|
||||||
}
|
}
|
||||||
return pscbuf;
|
return pscbuf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,6 +128,9 @@ void VertexManager::PrepareDrawBuffers()
|
||||||
memcpy((u16*)map.pData + m_point_draw_index, GetPointIndexBuffer(), sizeof(u16) * IndexGenerator::GetPointindexLen());
|
memcpy((u16*)map.pData + m_point_draw_index, GetPointIndexBuffer(), sizeof(u16) * IndexGenerator::GetPointindexLen());
|
||||||
D3D::context->Unmap(m_index_buffers[m_current_index_buffer], 0);
|
D3D::context->Unmap(m_index_buffers[m_current_index_buffer], 0);
|
||||||
m_index_buffer_cursor += iCount;
|
m_index_buffer_cursor += iCount;
|
||||||
|
|
||||||
|
ADDSTAT(stats.thisFrame.bytesVertexStreamed, vSize);
|
||||||
|
ADDSTAT(stats.thisFrame.bytesIndexStreamed, iCount*sizeof(u16));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const float LINE_PT_TEX_OFFSETS[8] = {
|
static const float LINE_PT_TEX_OFFSETS[8] = {
|
||||||
|
|
|
@ -50,6 +50,8 @@ ID3D11Buffer* &VertexShaderCache::GetConstantBuffer()
|
||||||
memcpy(map.pData, vsconstants, sizeof(vsconstants));
|
memcpy(map.pData, vsconstants, sizeof(vsconstants));
|
||||||
D3D::context->Unmap(vscbuf, 0);
|
D3D::context->Unmap(vscbuf, 0);
|
||||||
vscbufchanged = false;
|
vscbufchanged = false;
|
||||||
|
|
||||||
|
ADDSTAT(stats.thisFrame.bytesUniformStreamed, sizeof(vsconstants));
|
||||||
}
|
}
|
||||||
return vscbuf;
|
return vscbuf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,6 +197,8 @@ void VertexManager::PrepareDrawBuffers(u32 stride)
|
||||||
D3D::SetIndices(m_index_buffers[m_current_index_buffer]);
|
D3D::SetIndices(m_index_buffers[m_current_index_buffer]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ADDSTAT(stats.thisFrame.bytesVertexStreamed, datasize);
|
||||||
|
ADDSTAT(stats.thisFrame.bytesIndexStreamed, IndexDataSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VertexManager::DrawVertexBuffer(int stride)
|
void VertexManager::DrawVertexBuffer(int stride)
|
||||||
|
|
|
@ -171,6 +171,8 @@ void ProgramShaderCache::UploadConstants()
|
||||||
glBindBufferRange(GL_UNIFORM_BUFFER, 1, s_buffer->getBuffer(), offset, s_ps_data_size);
|
glBindBufferRange(GL_UNIFORM_BUFFER, 1, s_buffer->getBuffer(), offset, s_ps_data_size);
|
||||||
glBindBufferRange(GL_UNIFORM_BUFFER, 2, s_buffer->getBuffer(), offset + s_vs_data_offset, s_vs_data_size);
|
glBindBufferRange(GL_UNIFORM_BUFFER, 2, s_buffer->getBuffer(), offset + s_vs_data_offset, s_vs_data_size);
|
||||||
s_ubo_dirty = false;
|
s_ubo_dirty = false;
|
||||||
|
|
||||||
|
ADDSTAT(stats.thisFrame.bytesUniformStreamed, s_ubo_buffer_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,9 @@ void VertexManager::PrepareDrawBuffers(u32 stride)
|
||||||
{
|
{
|
||||||
s_offset[2] = s_indexBuffer->Upload((u8*)GetPointIndexBuffer(), point_index_size * sizeof(u16));
|
s_offset[2] = s_indexBuffer->Upload((u8*)GetPointIndexBuffer(), point_index_size * sizeof(u16));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ADDSTAT(stats.thisFrame.bytesVertexStreamed, vertex_data_size);
|
||||||
|
ADDSTAT(stats.thisFrame.bytesIndexStreamed, index_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VertexManager::Draw(u32 stride)
|
void VertexManager::Draw(u32 stride)
|
||||||
|
|
Loading…
Reference in New Issue