diff options
| author | Keith Whitwell <keithw@vmware.com> | 2009-02-24 11:58:58 +0000 | 
|---|---|---|
| committer | Keith Whitwell <keithw@vmware.com> | 2009-02-24 12:14:50 +0000 | 
| commit | 93d101f0c3b2b7b6909d6f98a0d04b978b4ae29a (patch) | |
| tree | 6645a64722b18e6461a9ef876fc7f1066c749cfa /src | |
| parent | 693fac8ae2e5812265222b1335695bd33b90bd8a (diff) | |
mesa/st: support l8 as well as i8 in bitmap code
Also don't send the partial program fragment down to hardware -- the
program will never be used in that form.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/state_tracker/st_cb_bitmap.c | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 66d7cbf8e6..f55a5e713f 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -142,6 +142,10 @@ make_bitmap_fragment_program(GLcontext *ctx, GLuint samplerIndex)     /* KIL if -tmp0 < 0 # texel=0 -> keep / texel=0 -> discard */     p->Instructions[ic].Opcode = OPCODE_KIL;     p->Instructions[ic].SrcReg[0].File = PROGRAM_TEMPORARY; + +   if (ctx->st->bitmap.tex_format == PIPE_FORMAT_L8_UNORM) +      p->Instructions[ic].SrcReg[0].Swizzle = SWIZZLE_XXXX; +     p->Instructions[ic].SrcReg[0].Index = 0;     p->Instructions[ic].SrcReg[0].NegateBase = NEGATE_XYZW;     ic++; @@ -157,7 +161,11 @@ make_bitmap_fragment_program(GLcontext *ctx, GLuint samplerIndex)     stfp = (struct st_fragment_program *) p;     stfp->Base.UsesKill = GL_TRUE; -   st_translate_fragment_program(ctx->st, stfp, NULL); + +   /* No need to send this incomplete program down to hardware: +    * +    * st_translate_fragment_program(ctx->st, stfp, NULL); +    */     return stfp;  } @@ -786,6 +794,10 @@ st_init_bitmap(struct st_context *st)                                     PIPE_TEXTURE_USAGE_SAMPLER, 0)) {        st->bitmap.tex_format = PIPE_FORMAT_I8_UNORM;     } +   else if (screen->is_format_supported(screen, PIPE_FORMAT_L8_UNORM, PIPE_TEXTURE_2D,  +                                        PIPE_TEXTURE_USAGE_SAMPLER, 0)) { +      st->bitmap.tex_format = PIPE_FORMAT_L8_UNORM; +   }     else {        /* XXX support more formats */        assert(0); | 
