i965: Implement GenerateMipmap directly, rather than using Meta.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 19 Jun 2016 06:05:51 +0000 (23:05 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 16 Feb 2018 18:48:10 +0000 (10:48 -0800)
commit1d6cf433d2d0dfa3edd9eaaed1e8c961bbd22f99
treee219c9514c0929c059c7de6f6baf119bfd673fe7
parent9bcd31ea90addd7a16802de8a28b2f3242dc8298
i965: Implement GenerateMipmap directly, rather than using Meta.

Meta is awful and we'd like to stop using it.  Implementing this using
BLORP allows us to stop trashing a bunch of GL state every time.

This follows the structure of st_generate_mipmap().
compute_num_levels is lifted directly from there.

Improves performance in Gl41HdrBloom by about 11.794% +/- 1.01919% (n=3)
on Kabylake GT2 at 1280x720 (the difference seems much smaller at higher
resolutions).

v2 (idr): Don't try depth or depth-stencil blorp blits on Gen4 or Gen5
because it's not implemented yet.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/mesa/drivers/dri/i965/Makefile.sources
src/mesa/drivers/dri/i965/brw_context.c
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_generate_mipmap.c [new file with mode: 0644]
src/mesa/drivers/dri/i965/meson.build