[Mesa-dev] [PATCH 2/3] hud: try L8 texture for font if I8 format isn't supported

Marek Olšák maraeo at gmail.com
Mon Apr 1 17:18:53 PDT 2013


Have you checked the font is rendered correctly? The font should be
transparent and the blend function reads the alpha channel to determine the
transparency, so A8 would be a better option. If that isn't an option
either, the fragment shader should do .xxxx swizzling.

Marek


On Tue, Apr 2, 2013 at 12:46 AM, Brian Paul <brian.e.paul at gmail.com> wrote:

> From: Brian Paul <brianp at vmware.com>
>
> ---
>  src/gallium/auxiliary/hud/font.c |   17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/auxiliary/hud/font.c
> b/src/gallium/auxiliary/hud/font.c
> index 5c4a4d0..6747874 100644
> --- a/src/gallium/auxiliary/hud/font.c
> +++ b/src/gallium/auxiliary/hud/font.c
> @@ -377,17 +377,26 @@ util_font_create_fixed_8x13(struct pipe_context
> *pipe,
>     struct pipe_resource tex_templ, *tex;
>     struct pipe_transfer *transfer = NULL;
>     char *map;
> +   enum pipe_format tex_format;
>     int i;
>
> -   if (!screen->is_format_supported(screen, PIPE_FORMAT_I8_UNORM,
> -                                    PIPE_TEXTURE_RECT, 0,
> -                                    PIPE_BIND_SAMPLER_VIEW)) {
> +   if (screen->is_format_supported(screen, PIPE_FORMAT_I8_UNORM,
> +                                   PIPE_TEXTURE_RECT, 0,
> +                                   PIPE_BIND_SAMPLER_VIEW)) {
> +      tex_format = PIPE_FORMAT_I8_UNORM;
> +   }
> +   else if (screen->is_format_supported(screen, PIPE_FORMAT_L8_UNORM,
> +                                   PIPE_TEXTURE_RECT, 0,
> +                                   PIPE_BIND_SAMPLER_VIEW)) {
> +      tex_format = PIPE_FORMAT_L8_UNORM;
> +   }
> +   else {
>        return FALSE;
>     }
>
>     memset(&tex_templ, 0, sizeof(tex_templ));
>     tex_templ.target = PIPE_TEXTURE_RECT;
> -   tex_templ.format = PIPE_FORMAT_I8_UNORM;
> +   tex_templ.format = tex_format;
>     tex_templ.width0 = 128;
>     tex_templ.height0 = 256;
>     tex_templ.depth0 = 1;
> --
> 1.7.9.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130402/606db10d/attachment-0001.html>


More information about the mesa-dev mailing list