28837ac970
util_clear_texture implements clear_texture through a memset. This patch implements u_default_clear_texture, which tries to clear the given texture using a surface plus clear_render_target or clear_depth_stencil. In case this path fails, either because the formats are non-renderable or for some other reason, we fallback to `util_clear_texture`, which is guaranteed to work. This will allow us to make ARB_clear_texture available to every driver, as well as provide HW acceleration for the clear_texture operation. If some hardware doesn't want to use it, such as llvmpipe, it can always just directly point to the software version using pipe->clear_texture. Signed-off-by: Italo Nicola <italonicola@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23735>