diff options
| -rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 3a6011c784..1bcc16dd6d 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -850,9 +850,15 @@ generate_variant(struct llvmpipe_context *lp,        lp_debug_fs_variant(variant);     } -   generate_fragment(lp, shader, variant, RAST_WHOLE);     generate_fragment(lp, shader, variant, RAST_EDGE_TEST); +   if (variant->opaque) { +      /* Specialized shader, which doesn't need to read the color buffer. */ +      generate_fragment(lp, shader, variant, RAST_WHOLE); +   } else { +      variant->jit_function[RAST_WHOLE] = variant->jit_function[RAST_EDGE_TEST]; +   } +     return variant;  } | 
