mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-20 08:52:51 +00:00
Reuse buffer objects when possible.
glBufferData() recreates anyway.
This commit is contained in:
parent
4971206e92
commit
5f521bcfb0
@ -506,6 +506,11 @@ GLuint TransformDrawEngine::AllocateBuffer() {
|
||||
return buf;
|
||||
}
|
||||
|
||||
void TransformDrawEngine::FreeBuffer(GLuint buf) {
|
||||
// We can reuse buffers by setting new data on them.
|
||||
bufferNameCache_.push_back(buf);
|
||||
}
|
||||
|
||||
void TransformDrawEngine::DoFlush() {
|
||||
gpuStats.numFlushes++;
|
||||
gpuStats.numTrackedVertexArrays = (int)vai_.size();
|
||||
@ -574,11 +579,11 @@ void TransformDrawEngine::DoFlush() {
|
||||
if (newHash != vai->hash) {
|
||||
vai->status = VertexArrayInfo::VAI_UNRELIABLE;
|
||||
if (vai->vbo) {
|
||||
glDeleteBuffers(1, &vai->vbo);
|
||||
FreeBuffer(vai->vbo);
|
||||
vai->vbo = 0;
|
||||
}
|
||||
if (vai->ebo) {
|
||||
glDeleteBuffers(1, &vai->ebo);
|
||||
FreeBuffer(vai->ebo);
|
||||
vai->ebo = 0;
|
||||
}
|
||||
DecodeVerts();
|
||||
|
@ -176,6 +176,7 @@ private:
|
||||
void ApplyDrawState(int prim);
|
||||
bool IsReallyAClear(int numVerts) const;
|
||||
GLuint AllocateBuffer();
|
||||
void FreeBuffer(GLuint buf);
|
||||
|
||||
// Preprocessing for spline/bezier
|
||||
u32 NormalizeVertices(u8 *outPtr, u8 *bufPtr, const u8 *inPtr, int lowerBound, int upperBound, u32 vertType);
|
||||
|
Loading…
x
Reference in New Issue
Block a user