Skip to content

Commit e5022d3

Browse files
committed
Some Ringbuffer cleanup
1 parent 60986dc commit e5022d3

1 file changed

Lines changed: 11 additions & 13 deletions

File tree

src/engine/renderer/tr_vbo.cpp

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,13 @@ R_InitRingbuffer
9999
============
100100
*/
101101
static void R_InitRingbuffer( GLenum target, GLsizei elementSize,
102-
GLsizei segmentElements, glRingbuffer_t *rb ) {
102+
GLsizei segmentElements, glRingbuffer_t *rb ) {
103103
GLsizei totalSize = elementSize * segmentElements * DYN_BUFFER_SEGMENTS;
104104

105105
glBufferStorage( target, totalSize, nullptr,
106-
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT );
106+
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT );
107107
rb->baseAddr = glMapBufferRange( target, 0, totalSize,
108-
GL_MAP_WRITE_BIT |
109-
GL_MAP_PERSISTENT_BIT |
110-
GL_MAP_FLUSH_EXPLICIT_BIT );
108+
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_FLUSH_EXPLICIT_BIT );
111109
rb->elementSize = elementSize;
112110
rb->segmentElements = segmentElements;
113111
rb->activeSegment = 0;
@@ -125,13 +123,15 @@ static GLsizei R_RotateRingbuffer( glRingbuffer_t *rb ) {
125123
rb->syncs[ rb->activeSegment ] = glFenceSync( GL_SYNC_GPU_COMMANDS_COMPLETE, 0 );
126124

127125
rb->activeSegment++;
128-
if( rb->activeSegment >= DYN_BUFFER_SEGMENTS )
126+
if ( rb->activeSegment >= DYN_BUFFER_SEGMENTS ) {
129127
rb->activeSegment = 0;
128+
}
130129

131-
// wait until next segment is ready in 1 sec intervals
132-
while( glClientWaitSync( rb->syncs[ rb->activeSegment ], GL_SYNC_FLUSH_COMMANDS_BIT,
133-
10000000 ) == GL_TIMEOUT_EXPIRED ) {
134-
Log::Warn("long wait for GL buffer" );
130+
// wait until next segment is ready in 10ms intervals
131+
const GLuint64 TIMEOUT = 10000000;
132+
while( glClientWaitSync( rb->syncs[ rb->activeSegment ], GL_SYNC_FLUSH_COMMANDS_BIT, TIMEOUT )
133+
== GL_TIMEOUT_EXPIRED ) {
134+
Log::Warn( "Long wait for dynamic GL buffer: active segment: %i, timeout: %uns", rb->activeSegment, TIMEOUT );
135135
};
136136
glDeleteSync( rb->syncs[ rb->activeSegment ] );
137137

@@ -144,12 +144,10 @@ R_ShutdownRingbuffer
144144
============
145145
*/
146146
static void R_ShutdownRingbuffer( GLenum target, glRingbuffer_t *rb ) {
147-
int i;
148-
149147
glUnmapBuffer( target );
150148
rb->baseAddr = nullptr;
151149

152-
for( i = 0; i < DYN_BUFFER_SEGMENTS; i++ ) {
150+
for( int i = 0; i < DYN_BUFFER_SEGMENTS; i++ ) {
153151
if( i == rb->activeSegment )
154152
continue;
155153

0 commit comments

Comments
 (0)