>From: ibmir...@gmail.com <ibmir...@gmail.com> on behalf of Ilia Mirkin ><imir...@alum.mit.edu> >Sent: Monday, January 11, 2016 7:12 PM >To: Charmaine Lee >Cc: mesa-dev@lists.freedesktop.org >Subject: Re: [Mesa-dev] [PATCH 1/3] gallium/st: add >pipe_context::generate_mipmap()
>On Mon, Jan 11, 2016 at 9:31 PM, Charmaine Lee <charmai...@vmware.com> wrote: >> This patch adds a new interface to support hardware mipmap generation. >> PIPE_CAP_GENERATE_MIPMAP is added to allow a driver to specify >> if this new interface is supported; if not supported, the state tracker will >> fallback to mipmap generation by rendering/texturing. >> --- >> src/gallium/docs/source/context.rst | 10 ++++++++++ >> src/gallium/docs/source/screen.rst | 2 ++ >> src/gallium/drivers/trace/tr_context.c | 30 ++++++++++++++++++++++++++++++ >> src/gallium/include/pipe/p_context.h | 11 +++++++++++ >> src/gallium/include/pipe/p_defines.h | 1 + >> src/mesa/state_tracker/st_gen_mipmap.c | 17 ++++++++++++----- >> 6 files changed, 66 insertions(+), 5 deletions(-) ... >> diff --git a/src/mesa/state_tracker/st_gen_mipmap.c >> b/src/mesa/state_tracker/st_gen_mipmap.c >> index b370040..94c1171 100644 >> --- a/src/mesa/state_tracker/st_gen_mipmap.c >> +++ b/src/mesa/state_tracker/st_gen_mipmap.c >> @@ -149,12 +149,19 @@ st_generate_mipmap(struct gl_context *ctx, GLenum >> target, >> last_layer = util_max_layer(pt, baseLevel); >> } >> >> - /* Try to generate the mipmap by rendering/texturing. If that fails, >> - * use the software fallback. >> + /* First see if the driver supports hardware mipmap generation, >> + * if not then generate the mipmap by rendering/texturing. >> + * If that fails, use the software fallback. >> */ >> - if (!util_gen_mipmap(st->pipe, pt, pt->format, baseLevel, lastLevel, >> - first_layer, last_layer, PIPE_TEX_FILTER_LINEAR)) { >> - _mesa_generate_mipmap(ctx, target, texObj); >> + if (!st->pipe->screen->get_param(st->pipe->screen, >> + PIPE_CAP_GENERATE_MIPMAP) || >This will cause errors to get logged on every driver. You have to go >in and update every driver to add the cap to the disabled section. A >little annoying, but that's how we've been doing everything. Grep for >a recently-added cap and add below it -- works for most drivers. > Oh ya, I will fix it. Thanks for reviewing. > -ilia -Charmaine > + !st->pipe->generate_mipmap(st->pipe, pt, baseLevel, lastLevel, > + first_layer, last_layer)) { > + > + if (!util_gen_mipmap(st->pipe, pt, pt->format, baseLevel, lastLevel, > + first_layer, last_layer, PIPE_TEX_FILTER_LINEAR)) > { > + _mesa_generate_mipmap(ctx, target, texObj); > + } > } > > /* Fill in the Mesa gl_texture_image fields */ > -- > 1.8.1.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=BQIBaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=dMTqrakxe895Y1JgK2Fm6G2IzlobZfMtVdJTlRk8YUY&m=KR0ZO91gNpu112oW_a8nEd3uGB96VPu_y8tjNUpqlFE&s=An_Ey25TOIQUQz0TyBaMuZgAdNrSLb6K6ERQ2MjlUZs&e= _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev