Only check shader compilation status in debug or with DEBUG_GLSL defined. invalidate range on bindbufferrange since we don't care about what is in the range. Both give a performance boost for me.
This commit is contained in:
parent
3a52b37c3b
commit
4fadb65259
|
@ -133,7 +133,7 @@ bool PixelShaderCache::CompilePixelShader(FRAGMENTSHADER& ps, const char* pstrpr
|
||||||
|
|
||||||
glShaderSource(result, 1, &pstrprogram, NULL);
|
glShaderSource(result, 1, &pstrprogram, NULL);
|
||||||
glCompileShader(result);
|
glCompileShader(result);
|
||||||
|
#if defined(_DEBUG) || defined(DEBUGFAST) || defined(DEBUG_GLSL)
|
||||||
GLsizei length = 0;
|
GLsizei length = 0;
|
||||||
glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
|
glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
|
||||||
if (length > 1)
|
if (length > 1)
|
||||||
|
@ -161,7 +161,7 @@ bool PixelShaderCache::CompilePixelShader(FRAGMENTSHADER& ps, const char* pstrpr
|
||||||
glDeleteShader(result);
|
glDeleteShader(result);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
(void)GL_REPORT_ERROR();
|
(void)GL_REPORT_ERROR();
|
||||||
ps.glprogid = result;
|
ps.glprogid = result;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -200,7 +200,7 @@ void ProgramShaderCache::UploadConstants()
|
||||||
glBufferData(GL_UNIFORM_BUFFER, UBO_LENGTH, NULL, GL_STREAM_DRAW);
|
glBufferData(GL_UNIFORM_BUFFER, UBO_LENGTH, NULL, GL_STREAM_DRAW);
|
||||||
s_ubo_iterator = 0;
|
s_ubo_iterator = 0;
|
||||||
}
|
}
|
||||||
void *ubo = glMapBufferRange(GL_UNIFORM_BUFFER, s_ubo_iterator, s_ubo_buffer_size, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT);
|
void *ubo = glMapBufferRange(GL_UNIFORM_BUFFER, s_ubo_iterator, s_ubo_buffer_size, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT | GL_MAP_INVALIDATE_RANGE_BIT);
|
||||||
memcpy(ubo, s_ubo_buffer, s_ubo_buffer_size);
|
memcpy(ubo, s_ubo_buffer, s_ubo_buffer_size);
|
||||||
glUnmapBuffer(GL_UNIFORM_BUFFER);
|
glUnmapBuffer(GL_UNIFORM_BUFFER);
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ bool VertexShaderCache::CompileVertexShader(VERTEXSHADER& vs, const char* pstrpr
|
||||||
|
|
||||||
glShaderSource(result, 1, &pstrprogram, NULL);
|
glShaderSource(result, 1, &pstrprogram, NULL);
|
||||||
glCompileShader(result);
|
glCompileShader(result);
|
||||||
|
#if defined(_DEBUG) || defined(DEBUGFAST) || defined(DEBUG_GLSL)
|
||||||
GLsizei length = 0;
|
GLsizei length = 0;
|
||||||
glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
|
glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
|
||||||
if (length > 1)
|
if (length > 1)
|
||||||
|
@ -147,6 +147,7 @@ bool VertexShaderCache::CompileVertexShader(VERTEXSHADER& vs, const char* pstrpr
|
||||||
glDeleteShader(result);
|
glDeleteShader(result);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
(void)GL_REPORT_ERROR();
|
(void)GL_REPORT_ERROR();
|
||||||
vs.glprogid = result;
|
vs.glprogid = result;
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue