mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
st/mesa: use surface format to generate mipmaps when available
This fixes the recently posted mipmap + texture views piglit test.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
[Emil Velikov: resolve trivial conflicts]
(cherry picked from commit e94ef885bb)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Conflicts:
src/mesa/state_tracker/st_gen_mipmap.c
This commit is contained in:
parent
ce09b50e7a
commit
681415e7f0
1 changed files with 7 additions and 1 deletions
|
|
@ -80,6 +80,7 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
|
|||
struct st_texture_object *stObj = st_texture_object(texObj);
|
||||
struct pipe_resource *pt = st_get_texobj_resource(texObj);
|
||||
const uint baseLevel = texObj->BaseLevel;
|
||||
enum pipe_format format;
|
||||
uint lastLevel, first_layer, last_layer;
|
||||
uint dstLevel;
|
||||
|
||||
|
|
@ -149,10 +150,15 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
|
|||
last_layer = util_max_layer(pt, baseLevel);
|
||||
}
|
||||
|
||||
if (stObj->surface_based)
|
||||
format = stObj->surface_format;
|
||||
else
|
||||
format = pt->format;
|
||||
|
||||
/* Try to generate the mipmap by rendering/texturing. If that fails,
|
||||
* use the software fallback.
|
||||
*/
|
||||
if (!util_gen_mipmap(st->pipe, pt, pt->format, baseLevel, lastLevel,
|
||||
if (!util_gen_mipmap(st->pipe, pt, format, baseLevel, lastLevel,
|
||||
first_layer, last_layer, PIPE_TEX_FILTER_LINEAR)) {
|
||||
_mesa_generate_mipmap(ctx, target, texObj);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue