https://bugs.freedesktop.org/show_bug.cgi?id=30787
Summary: Invalid asm shader does not generate draw-time error when used with GLSL shader Product: Mesa Version: 7.9 Platform: All OS/Version: All Status: NEW Severity: normal Priority: medium Component: Mesa core AssignedTo: mesa-dev@lists.freedesktop.org ReportedBy: i...@freedesktop.org When a GLSL shader provides some stages (e.g., only vertex processing) and an *invalid* assembly shader provides the rest (e.g., only fragment processing), the expected draw-time error is not generated. This is caused by the following code from _mesa_valid_to_render. Note that if there is a GLSL shader active, the validity of the assembly shaders is not verified. if (ctx->Shader.CurrentProgram) { /* using shaders */ if (!ctx->Shader.CurrentProgram->LinkStatus) { _mesa_error(ctx, GL_INVALID_OPERATION, "%s(shader not linked)", where); return GL_FALSE; } #if 0 /* not normally enabled */ { char errMsg[100]; if (!_mesa_validate_shader_program(ctx, ctx->Shader.CurrentProgram, errMsg)) { _mesa_warning(ctx, "Shader program %u is invalid: %s", ctx->Shader.CurrentProgram->Name, errMsg); } } #endif } else { if (ctx->VertexProgram.Enabled && !ctx->VertexProgram._Enabled) { _mesa_error(ctx, GL_INVALID_OPERATION, "%s(vertex program not valid)", where); return GL_FALSE; } if (ctx->FragmentProgram.Enabled && !ctx->FragmentProgram._Enabled) { _mesa_error(ctx, GL_INVALID_OPERATION, "%s(fragment program not valid)", where); return GL_FALSE; } } This bug is exercised by the piglit tests glsl-invalid-asm-01 and glsl-invalid-asm-02. Both of these tests pass on NVIDIA's closed-source Linux driver but fail on Mesa. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev