diff options
author | Charmaine Lee <charmainel@vmware.com> | 2016-01-14 10:22:17 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2016-01-14 10:39:53 -0700 |
commit | 3038e8984df2be35a7164043ec6d385e32e26238 (patch) | |
tree | b98815d07b7eabb312380128dca1b1a4cdefe12f /src/gallium/include | |
parent | b1e11f4d71a570d39958871cc364841afb17bd13 (diff) | |
download | external_mesa3d-3038e8984df2be35a7164043ec6d385e32e26238.zip external_mesa3d-3038e8984df2be35a7164043ec6d385e32e26238.tar.gz external_mesa3d-3038e8984df2be35a7164043ec6d385e32e26238.tar.bz2 |
gallium/st: add pipe_context::generate_mipmap()
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.
v2: add PIPE_CAP_GENERATE_MIPMAP to the disabled section for all drivers
v3: add format to the generate_mipmap interface to allow mipmap generation
using a format other than the resource format
v4: fix return type of trace_context_generate_mipmap()
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Diffstat (limited to 'src/gallium/include')
-rw-r--r-- | src/gallium/include/pipe/p_context.h | 12 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_defines.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 78155c0..4b551ed 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -677,6 +677,18 @@ struct pipe_context { */ void (*dump_debug_state)(struct pipe_context *ctx, FILE *stream, unsigned flags); + + /** + * Generate mipmap. + * \return TRUE if mipmap generation succeeds, FALSE otherwise + */ + boolean (*generate_mipmap)(struct pipe_context *ctx, + struct pipe_resource *resource, + enum pipe_format format, + unsigned base_level, + unsigned last_level, + unsigned first_layer, + unsigned last_layer); }; diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 0655f08..cb837cd 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -643,6 +643,7 @@ enum pipe_cap PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL, PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT, PIPE_CAP_INVALIDATE_BUFFER, + PIPE_CAP_GENERATE_MIPMAP, }; #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0) |