if (span->array->mask[i]) {
init_machine(ctx, &ctx->ATIFragmentShader.Machine,
ctx->ATIFragmentShader.Current, span, i);
-
- if (execute_shader(ctx, shader, ~0,
+ /* can't really happen... */
+ if (!execute_shader(ctx, shader, ~0,
&ctx->ATIFragmentShader.Machine, span, i)) {
span->array->mask[i] = GL_FALSE;
+ span->writeAll = GL_FALSE;
}
{
const GLbitfield origArrayMask = span->arrayMask;
const GLboolean deferredTexture = !(ctx->Color.AlphaEnabled ||
ctx->FragmentProgram._Active ||
- ctx->ATIFragmentShader._Enabled ||
ctx->ShaderObjects.CurrentProgram);
ASSERT(span->primitive == GL_POINT || span->primitive == GL_LINE ||
_swrast_texture_span( ctx, span );
/* Do the alpha test */
- if (!_swrast_alpha_test(ctx, span)) {
- span->arrayMask = origArrayMask;
- return;
+ if (ctx->Color.AlphaEnabled) {
+ if (!_swrast_alpha_test(ctx, span)) {
+ span->arrayMask = origArrayMask;
+ return;
+ }
}
}