[Mesa-dev] [PATCH] r600g: Implement BPTC texture support

Marek Olšák maraeo at gmail.com
Wed Aug 13 04:45:27 PDT 2014


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Aug 13, 2014 at 1:02 PM, Glenn Kennard <glenn.kennard at gmail.com> wrote:
> Requires Evergreen/Cayman
>
> Signed-off-by: Glenn Kennard <glenn.kennard at gmail.com>
> ---
>  docs/GL3.txt                                 |  2 +-
>  docs/relnotes/10.3.html                      |  2 +-
>  src/gallium/drivers/r600/r600_state_common.c | 24 ++++++++++++++++++++++++
>  3 files changed, 26 insertions(+), 2 deletions(-)
>
> diff --git a/docs/GL3.txt b/docs/GL3.txt
> index 75ac69a..6f97f3d 100644
> --- a/docs/GL3.txt
> +++ b/docs/GL3.txt
> @@ -131,7 +131,7 @@ GL 4.1, GLSL 4.10:
>
>  GL 4.2, GLSL 4.20:
>
> -  GL_ARB_texture_compression_bptc                      DONE (i965, nvc0)
> +  GL_ARB_texture_compression_bptc                      DONE (i965, nvc0, r600)
>    GL_ARB_compressed_texture_pixel_storage              DONE (all drivers)
>    GL_ARB_shader_atomic_counters                        DONE (i965)
>    GL_ARB_texture_storage                               DONE (all drivers)
> diff --git a/docs/relnotes/10.3.html b/docs/relnotes/10.3.html
> index 519ea2c..6d9eafd 100644
> --- a/docs/relnotes/10.3.html
> +++ b/docs/relnotes/10.3.html
> @@ -63,7 +63,7 @@ Note: some of the new features are only available with certain drivers.
>  <li>GL_OES_compressed_ETC1_RGB8_texture on nv30, nv50, nvc0, r300, r600, radeonsi, softpipe, llvmpipe</li>
>  <li>A new software rasterizer driver (kms_swrast_dri.so) that works with
>  DRM drivers that don't have a full-fledged GEM (such as qxl or simpledrm)</li>
> -<li>GL_ARB_texture_compression_bptc on i965/gen7+, nvc0</li>
> +<li>GL_ARB_texture_compression_bptc on i965/gen7+, nvc0, r600/evergreen+</li>
>  <li>Distribute the Khronos GL/glcorearb.h header file.
>  </ul>
>
> diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
> index 207f07e..51a4f8f 100644
> --- a/src/gallium/drivers/r600/r600_state_common.c
> +++ b/src/gallium/drivers/r600/r600_state_common.c
> @@ -1967,6 +1967,30 @@ uint32_t r600_translate_texformat(struct pipe_screen *screen,
>                 }
>         }
>
> +       if (desc->layout == UTIL_FORMAT_LAYOUT_BPTC) {
> +               if (!enable_s3tc)
> +                       goto out_unknown;
> +
> +               if (rscreen->b.chip_class < EVERGREEN)
> +                       goto out_unknown;
> +
> +               switch (format) {
> +                       case PIPE_FORMAT_BPTC_RGBA_UNORM:
> +                       case PIPE_FORMAT_BPTC_SRGBA:
> +                               result = FMT_BC7;
> +                               is_srgb_valid = TRUE;
> +                               goto out_word4;
> +                       case PIPE_FORMAT_BPTC_RGB_FLOAT:
> +                               word4 |= sign_bit[0] | sign_bit[1] | sign_bit[2];
> +                               /* fall through */
> +                       case PIPE_FORMAT_BPTC_RGB_UFLOAT:
> +                               result = FMT_BC6;
> +                               goto out_word4;
> +                       default:
> +                               goto out_unknown;
> +               }
> +       }
> +
>         if (desc->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED) {
>                 switch (format) {
>                 case PIPE_FORMAT_R8G8_B8G8_UNORM:
> --
> 1.8.3.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list