i965: Make intel_miptree_prepare_texture() take level/layer arguments.

This effectively exports intel_miptree_prepare_texture_slices() as
intel_miptree_prepare_texture().  The hope is to avoid resolves for
when using texture views that access a subset of the levels/layers.

For now, we pass the same arguments to separate the mechanical change
from the one that actually modifies our behavior.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by; Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Kenneth Graunke 2017-10-12 20:59:22 -07:00
parent 33bdbc1db4
commit 0954ce1000
3 changed files with 13 additions and 21 deletions

View file

@ -403,6 +403,8 @@ brw_predraw_resolve_inputs(struct brw_context *brw)
intel_disable_rb_aux_buffer(brw, tex_obj->mt, "for sampling");
intel_miptree_prepare_texture(brw, tex_obj->mt, view_format,
0, INTEL_REMAINING_LEVELS,
0, INTEL_REMAINING_LAYERS,
disable_aux);
brw_render_cache_set_check_flush(brw, tex_obj->mt->bo);

View file

@ -2617,13 +2617,13 @@ isl_formats_are_fast_clear_compatible(enum isl_format a, enum isl_format b)
return isl_format_srgb_to_linear(a) == isl_format_srgb_to_linear(b);
}
static void
intel_miptree_prepare_texture_slices(struct brw_context *brw,
struct intel_mipmap_tree *mt,
enum isl_format view_format,
uint32_t start_level, uint32_t num_levels,
uint32_t start_layer, uint32_t num_layers,
bool disable_aux)
void
intel_miptree_prepare_texture(struct brw_context *brw,
struct intel_mipmap_tree *mt,
enum isl_format view_format,
uint32_t start_level, uint32_t num_levels,
uint32_t start_layer, uint32_t num_layers,
bool disable_aux)
{
enum isl_aux_usage aux_usage = disable_aux ? ISL_AUX_USAGE_NONE :
intel_miptree_texture_aux_usage(brw, mt, view_format);
@ -2641,18 +2641,6 @@ intel_miptree_prepare_texture_slices(struct brw_context *brw,
aux_usage, clear_supported);
}
void
intel_miptree_prepare_texture(struct brw_context *brw,
struct intel_mipmap_tree *mt,
enum isl_format view_format,
bool disable_aux)
{
intel_miptree_prepare_texture_slices(brw, mt, view_format,
0, INTEL_REMAINING_LEVELS,
0, INTEL_REMAINING_LAYERS,
disable_aux);
}
void
intel_miptree_prepare_image(struct brw_context *brw,
struct intel_mipmap_tree *mt)
@ -2673,8 +2661,8 @@ intel_miptree_prepare_fb_fetch(struct brw_context *brw,
*/
assert(brw->screen->devinfo.gen < 9);
intel_miptree_prepare_texture_slices(brw, mt, mt->surf.format, level, 1,
start_layer, num_layers, false);
intel_miptree_prepare_texture(brw, mt, mt->surf.format, level, 1,
start_layer, num_layers, false);
}
enum isl_aux_usage

View file

@ -640,6 +640,8 @@ void
intel_miptree_prepare_texture(struct brw_context *brw,
struct intel_mipmap_tree *mt,
enum isl_format view_format,
uint32_t start_level, uint32_t num_levels,
uint32_t start_layer, uint32_t num_layers,
bool disable_aux);
void
intel_miptree_prepare_image(struct brw_context *brw,