From 833f870d9b9f437293fc7ee7fdf4dd428eb5db70 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Sat, 3 May 2014 05:08:53 -0400 Subject: [PATCH] mesa/st: implement ARB_stencil_texturing MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If StencilSampling is enabled on the texture object, pass in an equivalent stencil-only format. Signed-off-by: Ilia Mirkin Reviewed-by: Marek Olšák --- src/mesa/state_tracker/st_atom_texture.c | 4 ++++ src/mesa/state_tracker/st_extensions.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c index afc6d9d..928a4ff 100644 --- a/src/mesa/state_tracker/st_atom_texture.c +++ b/src/mesa/state_tracker/st_atom_texture.c @@ -271,6 +271,10 @@ st_get_texture_sampler_view_from_stobj(struct st_context *st, sv = st_texture_get_sampler_view(st, stObj); + if (stObj->base.StencilSampling && + util_format_is_depth_and_stencil(format)) + format = util_format_stencil_only(format); + /* if sampler view has changed dereference it */ if (*sv) { if (check_sampler_swizzle(stObj, *sv) || diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 33cd129..12ba82d 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -507,6 +507,11 @@ void st_init_extensions(struct st_context *st) { { o(OES_compressed_ETC1_RGB8_texture) }, { PIPE_FORMAT_ETC1_RGB8 } }, + + { { o(ARB_stencil_texturing) }, + { PIPE_FORMAT_X24S8_UINT, + PIPE_FORMAT_S8X24_UINT }, + GL_TRUE }, /* at least one format must be supported */ }; /* Required: vertex fetch support. */ -- 2.7.4