diff options
author | Charmaine Lee <[email protected]> | 2016-01-14 10:22:17 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2016-01-14 10:39:53 -0700 |
commit | 3038e8984df2be35a7164043ec6d385e32e26238 (patch) | |
tree | b98815d07b7eabb312380128dca1b1a4cdefe12f /src/gallium/include | |
parent | b1e11f4d71a570d39958871cc364841afb17bd13 (diff) |
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 <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
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 78155c05348..4b551ed0b41 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 0655f080e42..cb837cd2597 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) |