aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Weissflog <floooh@gmail.com>2025-01-12 15:47:29 +0100
committerGitHub <noreply@github.com>2025-01-12 15:47:29 +0100
commit02728b7e2a7bc72df3efa68b8da4c895c93d6c58 (patch)
tree433677212b43fe7b99767f59cf9c07784704fe76
parent3b0cf412d04ebf91954f15f91060947d411d0914 (diff)
parent05a7340ee7e1c686225c6c0421b4cedcb1a142ff (diff)
Merge pull request #1185 from floooh/issue1184_glsl_warning
sokol_gfx.h gl: better warnings on 'x not found in shader'
-rw-r--r--sokol_gfx.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/sokol_gfx.h b/sokol_gfx.h
index b701e35e..fcd30216 100644
--- a/sokol_gfx.h
+++ b/sokol_gfx.h
@@ -3685,8 +3685,9 @@ typedef struct sg_frame_stats {
_SG_LOGITEM_XMACRO(GL_ARRAY_TEXTURES_NOT_SUPPORTED, "array textures not supported (gl)") \
_SG_LOGITEM_XMACRO(GL_SHADER_COMPILATION_FAILED, "shader compilation failed (gl)") \
_SG_LOGITEM_XMACRO(GL_SHADER_LINKING_FAILED, "shader linking failed (gl)") \
- _SG_LOGITEM_XMACRO(GL_VERTEX_ATTRIBUTE_NOT_FOUND_IN_SHADER, "vertex attribute not found in shader (gl)") \
- _SG_LOGITEM_XMACRO(GL_IMAGE_SAMPLER_NAME_NOT_FOUND_IN_SHADER, "image-sampler name not found in shader (gl)") \
+ _SG_LOGITEM_XMACRO(GL_VERTEX_ATTRIBUTE_NOT_FOUND_IN_SHADER, "vertex attribute not found in shader; NOTE: may be caused by GL driver's GLSL compiler removing unused globals") \
+ _SG_LOGITEM_XMACRO(GL_UNIFORMBLOCK_NAME_NOT_FOUND_IN_SHADER, "uniform block name not found in shader; NOTE: may be caused by GL driver's GLSL compiler removing unused globals") \
+ _SG_LOGITEM_XMACRO(GL_IMAGE_SAMPLER_NAME_NOT_FOUND_IN_SHADER, "image-sampler name not found in shader; NOTE: may be caused by GL driver's GLSL compiler removing unused globals") \
_SG_LOGITEM_XMACRO(GL_FRAMEBUFFER_STATUS_UNDEFINED, "framebuffer completeness check failed with GL_FRAMEBUFFER_UNDEFINED (gl)") \
_SG_LOGITEM_XMACRO(GL_FRAMEBUFFER_STATUS_INCOMPLETE_ATTACHMENT, "framebuffer completeness check failed with GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT (gl)") \
_SG_LOGITEM_XMACRO(GL_FRAMEBUFFER_STATUS_INCOMPLETE_MISSING_ATTACHMENT, "framebuffer completeness check failed with GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT (gl)") \
@@ -8768,6 +8769,10 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_shader(_sg_shader_t* shd, const s
u->offset = (uint16_t) cur_uniform_offset;
SOKOL_ASSERT(u_desc->glsl_name);
u->gl_loc = glGetUniformLocation(gl_prog, u_desc->glsl_name);
+ if (u->gl_loc == -1) {
+ _SG_WARN(GL_UNIFORMBLOCK_NAME_NOT_FOUND_IN_SHADER);
+ _SG_LOGMSG(GL_UNIFORMBLOCK_NAME_NOT_FOUND_IN_SHADER, u_desc->glsl_name);
+ }
cur_uniform_offset += u_size;
ub->num_uniforms++;
}
@@ -8806,7 +8811,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_shader(_sg_shader_t* shd, const s
shd->gl.tex_slot[img_smp_index] = (int8_t)gl_tex_slot++;
} else {
shd->gl.tex_slot[img_smp_index] = -1;
- _SG_ERROR(GL_IMAGE_SAMPLER_NAME_NOT_FOUND_IN_SHADER);
+ _SG_WARN(GL_IMAGE_SAMPLER_NAME_NOT_FOUND_IN_SHADER);
_SG_LOGMSG(GL_IMAGE_SAMPLER_NAME_NOT_FOUND_IN_SHADER, img_smp_desc->glsl_name);
}
}