|
|
|
@ -140,13 +140,16 @@ OGLAssemblyProgram CompileProgram(std::string_view code, GLenum target) {
|
|
|
|
|
glGenProgramsARB(1, &program.handle);
|
|
|
|
|
glNamedProgramStringEXT(program.handle, target, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
|
|
|
static_cast<GLsizei>(code.size()), code.data());
|
|
|
|
|
if (!Settings::values.renderer_debug) {
|
|
|
|
|
return program;
|
|
|
|
|
}
|
|
|
|
|
const auto err = reinterpret_cast<const char*>(glGetString(GL_PROGRAM_ERROR_STRING_NV));
|
|
|
|
|
if (err && *err) {
|
|
|
|
|
LOG_CRITICAL(Render_OpenGL, "{}", err);
|
|
|
|
|
LOG_INFO(Render_OpenGL, "{}", code);
|
|
|
|
|
if (Settings::values.renderer_debug) {
|
|
|
|
|
const auto err = reinterpret_cast<const char*>(glGetString(GL_PROGRAM_ERROR_STRING_NV));
|
|
|
|
|
if (err && *err) {
|
|
|
|
|
if (std::strstr(err, "error")) {
|
|
|
|
|
LOG_CRITICAL(Render_OpenGL, "\n{}", err);
|
|
|
|
|
LOG_INFO(Render_OpenGL, "\n{}", code);
|
|
|
|
|
} else {
|
|
|
|
|
LOG_WARNING(Render_OpenGL, "\n{}", err);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return program;
|
|
|
|
|
}
|
|
|
|
|