Fall back to software rasterization if r300_translate_fragment_shader() fails.

Aborting immediately is a bad idea with AIGLX.
This commit is contained in:
Michel Dänzer 2007-02-03 17:32:02 +01:00
parent beffa17bb9
commit cf4ccd5020
2 changed files with 11 additions and 1 deletions

View file

@ -385,8 +385,18 @@ GLboolean r300_run_vb_render(GLcontext *ctx,
int r300Fallback(GLcontext *ctx)
{
r300ContextPtr r300 = R300_CONTEXT(ctx);
struct r300_fragment_program *rp =
(struct r300_fragment_program *)
(char *)ctx->FragmentProgram._Current;
int i;
if (rp) {
if (!rp->translated)
r300_translate_fragment_shader(rp);
FALLBACK_IF(!rp->translated);
}
/* We do not do SELECT or FEEDBACK (yet ?)
* Is it worth doing them ?
*/

View file

@ -1823,7 +1823,7 @@ void r300SetupPixelShader(r300ContextPtr rmesa)
r300_translate_fragment_shader(rp);
if (!rp->translated) {
fprintf(stderr, "%s: No valid fragment shader, exiting\n", __func__);
exit(-1);
return;
}
#define OUTPUT_FIELD(st, reg, field) \