@@ -99,15 +99,13 @@ R_InitRingbuffer
9999============
100100*/
101101static 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*/
146146static 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