From 17adcfc0085fda75ea7b837cb7830d04a5a3764d Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 24 Jun 2019 09:16:11 -0700 Subject: [PATCH] panfrost: Support (non-)seamless cube maps Identify the seamless cubemap bit and passthrough the Gallium state rather than setting unconditionally. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/include/panfrost-job.h | 5 +++-- src/gallium/drivers/panfrost/pan_context.c | 2 +- src/gallium/drivers/panfrost/pandecode/decode.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/panfrost/include/panfrost-job.h b/src/gallium/drivers/panfrost/include/panfrost-job.h index fbef4efdc32..684b3f598bd 100644 --- a/src/gallium/drivers/panfrost/include/panfrost-job.h +++ b/src/gallium/drivers/panfrost/include/panfrost-job.h @@ -1234,8 +1234,9 @@ struct mali_sampler_descriptor { enum mali_wrap_mode wrap_r : 4; enum mali_alt_func compare_func : 3; - /* A single set bit of unknown, ha! */ - unsigned unknown2 : 1; + /* No effect on 2D textures. For cubemaps, set for ES3 and clear for + * ES2, controlling seamless cubemapping */ + unsigned seamless_cube_map : 1; unsigned zero : 16; diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index fcf5e730c2b..97863504d4b 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -1873,7 +1873,7 @@ panfrost_create_sampler_state( }, .min_lod = FIXED_16(cso->min_lod), .max_lod = FIXED_16(cso->max_lod), - .unknown2 = 1, + .seamless_cube_map = cso->seamless_cube_map, }; /* If necessary, we disable mipmapping in the sampler descriptor by diff --git a/src/gallium/drivers/panfrost/pandecode/decode.c b/src/gallium/drivers/panfrost/pandecode/decode.c index 8c5d77f66fd..7f58ad03366 100644 --- a/src/gallium/drivers/panfrost/pandecode/decode.c +++ b/src/gallium/drivers/panfrost/pandecode/decode.c @@ -1758,7 +1758,7 @@ pandecode_replay_vertex_tiler_postfix_pre(const struct mali_vertex_tiler_postfix pandecode_prop("zero = 0x%X, 0x%X\n", s->zero, s->zero2); } - pandecode_prop("unknown2 = %d", s->unknown2); + pandecode_prop("seamless_cube_map = %d", s->seamless_cube_map); pandecode_prop("border_color = { %f, %f, %f, %f }", s->border_color[0], -- 2.11.0