On Thu, 19 Jan 2012 17:53:12 -0800, "Ian Romanick" <[email protected]> wrote: > From: Ian Romanick <[email protected]> > > This is a hack to work around drivers such as i965 that: > > - Set _MaintainTexEnvProgram to generate GLSL IR for > fixed-function fragment processing. > - Don't call _mesa_ir_link_shader to generate Mesa IR from the > GLSL IR. > - May use swrast to handle glDrawPixels. > > Since _mesa_ir_link_shader is never called, there is no Mesa IR to > execute. Instead do regular fixed-function processing. > > NOTE: This is a candidate for the 8.0 branch. > > Signed-off-by: Ian Romanick <[email protected]> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44749 > --- > src/mesa/swrast/s_span.c | 21 +++++++++++++++++++-- > 1 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c > index e899303..439b0e9 100644 > --- a/src/mesa/swrast/s_span.c > +++ b/src/mesa/swrast/s_span.c > @@ -50,6 +50,7 @@ > #include "s_stencil.h" > #include "s_texcombine.h" > > +#include <stdbool.h> > > /** > * Set default fragment attributes for the span using the > @@ -968,7 +969,23 @@ convert_color_type(SWspan *span, GLenum newType, GLuint > output) > static inline void > shade_texture_span(struct gl_context *ctx, SWspan *span) > { > - if (ctx->FragmentProgram._Current || > + /* This is a hack to work around drivers such as i965 that: > + * > + * - Set _MaintainTexEnvProgram to generate GLSL IR for > + * fixed-function fragment processing. > + * - Don't call _mesa_ir_link_shader to generate Mesa IR from > + * the GLSL IR. > + * - May use swrast to handle glDrawPixels. > + * > + * Since _mesa_ir_link_shader is never called, there is no Mesa IR > + * to execute. Instead do regular fixed-function processing. > + */ > + const bool use_fragment_program = > + ctx->FragmentProgram._Current > + && (ctx->FragmentProgram._Current != > ctx->FragmentProgram._TexEnvProgram > + || ctx->FragmentProgram._Current->Base.NumInstructions != 0);
We used to have a hack like this in the driver just to reduce the performance penalty. I think you could just drop the NumInstructions check to duplicate that.
pgpvQXGqOADHn.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
