Hi Sylvain,
Thanks for the help!
I recompiled and reinstalled gr-fosphor with your modifications, but the
output of the error is exactly the same. Maybe I need to enable debugging
somewhere else as well?
Regards,
Csaba
Sylvain Munaut <tnt(a)246tnt.com> ezt írta (időpont: 2021. jan. 19., K, 9:18):
Hi,
[!] gl_cmap shader compilation failed
(cmap_simple.glsl)
[w] Color map shader 'simple' failed to load, will use fallback
[!] gl_cmap shader compilation failed (cmap_bicubic.glsl)
[w] Color map shader 'bicubic' failed to load, will use fallback
[!] gl_cmap shader compilation failed (cmap_fallback.glsl)
[!] Color map shader 'fallback' failed, aborting
gr::log :ERROR: qt_sink_c0 - Failed to initialize fosphor
:/
In theory it's supposed to print the compile log from the driver
(which ideally would show why it failed), but apparently the driver
didn't return any logs so that mean I have no clue whatsoever why it
would have failed
Try to add some more debugging to the GL calls preceding the error :
--- a/lib/fosphor/gl_cmap.c
+++ b/lib/fosphor/gl_cmap.c
@@ -60,6 +60,15 @@ struct fosphor_gl_cmap_ctx {
/* Helpers / Internal API
*/
/*
--------------------------------------------------------------------------
*/
+static void
+gl_check(const char *s)
+{
+ GLenum x;
+ if ((x = glGetError()) != GL_NO_ERROR) {
+ fprintf(stderr, "[!] GL Error %d at %s\n", x, s);
+ }
+}
+
static int
gl_cmap_init_shader(struct gl_cmap_shader *shader, const char *name)
{
@@ -73,11 +82,15 @@ gl_cmap_init_shader(struct gl_cmap_shader *shader,
const char *name)
/* Allocate shader */
shader->prog = glCreateProgram();
+ gl_check("glCreateProgram");
shader->shader = glCreateShader(GL_FRAGMENT_SHADER);
+ gl_check("glCreateShader");
/* Compile / Link / Attach */
glShaderSource(shader->shader, 1, (const char **)&shader_src,
NULL);
+ gl_check("glShaderSource");
glCompileShader(shader->shader);
+ gl_check("glCompileShader");
/* Check success and compile log */
glGetShaderiv(shader->shader, GL_COMPILE_STATUS, &orv);
The app is running, but the render area of the
spectrum is completely
blank.
I am on your "gr3.8" branch. OpenCL is exactly the same as on Ubuntu
18.04 (I need the older 340 Nvidia driver on my old NVS 4200M, if you
remember), GLFW is the latest master. Everything compiles just fine, only
at runtime this issue presents itself.
This is unrelated to OpenCL.
Theses shaders are purely OpenGL stuff.
Cheers,
Sylvain