[Mesa-dev] [Bug 30787] New: Invalid asm shader does not generate draw-time error when used with GLSL shader
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Oct 11 21:38:10 PDT 2010
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 at lists.freedesktop.org
ReportedBy: idr at 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.
More information about the mesa-dev
mailing list