On Wed, Jul 19, 2017 at 02:01:50PM -0700, Jason Ekstrand wrote: > This will be a bit more convenient momentarily. It's also more correct > because it makes prepare_texture take sRGB into account. > --- > src/mesa/drivers/dri/i965/brw_draw.c | 7 ++++++- > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 15 +++++++-------- > src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 2 +- > 3 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_draw.c > b/src/mesa/drivers/dri/i965/brw_draw.c > index b77b44e..01b618c 100644 > --- a/src/mesa/drivers/dri/i965/brw_draw.c > +++ b/src/mesa/drivers/dri/i965/brw_draw.c > @@ -383,8 +383,13 @@ brw_predraw_resolve_inputs(struct brw_context *brw) > if (!tex_obj || !tex_obj->mt) > continue; > > +
Extra? > + struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, i); > + enum isl_format view_format = > + translate_tex_format(brw, tex_obj->_Format, sampler->sRGBDecode); > + > bool aux_supported; > - intel_miptree_prepare_texture(brw, tex_obj->mt, tex_obj->_Format, > + intel_miptree_prepare_texture(brw, tex_obj->mt, view_format, > &aux_supported); > > if (!aux_supported && brw->gen >= 9 && > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > index 5696886..801d830 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -2716,18 +2716,16 @@ intel_miptree_set_aux_state(struct brw_context *brw, > static bool > can_texture_with_ccs(struct brw_context *brw, > struct intel_mipmap_tree *mt, > - mesa_format view_format) > + enum isl_format view_format) > { > if (mt->aux_usage != ISL_AUX_USAGE_CCS_E) > return false; > > enum isl_format isl_mt_format = > brw_isl_format_for_mesa_format(mt->format); > - enum isl_format isl_view_format = > brw_isl_format_for_mesa_format(view_format); > - > if (!isl_formats_are_ccs_e_compatible(&brw->screen->devinfo, > - isl_mt_format, isl_view_format)) { > + isl_mt_format, view_format)) { > perf_debug("Incompatible sampling format (%s) for rbc (%s)\n", > - _mesa_get_format_name(view_format), > + isl_format_get_layout(view_format)->name, > _mesa_get_format_name(mt->format)); > return false; > } > @@ -2765,7 +2763,7 @@ intel_miptree_texture_aux_usage(struct brw_context *brw, > static void > intel_miptree_prepare_texture_slices(struct brw_context *brw, > struct intel_mipmap_tree *mt, > - mesa_format view_format, > + enum isl_format view_format, > uint32_t start_level, uint32_t > num_levels, > uint32_t start_layer, uint32_t > num_layers, > bool *aux_supported_out) > @@ -2791,7 +2789,7 @@ intel_miptree_prepare_texture_slices(struct brw_context > *brw, It gets passed to intel_miptree_prepare_texture_slices() but it doesn't do anything with it yet? Above can_texture_with_ccs() really takes it into account. > void > intel_miptree_prepare_texture(struct brw_context *brw, > struct intel_mipmap_tree *mt, > - mesa_format view_format, > + enum isl_format view_format, > bool *aux_supported_out) > { > intel_miptree_prepare_texture_slices(brw, mt, view_format, > @@ -2815,7 +2813,8 @@ intel_miptree_prepare_fb_fetch(struct brw_context *brw, > struct intel_mipmap_tree *mt, uint32_t level, > uint32_t start_layer, uint32_t num_layers) > { > - intel_miptree_prepare_texture_slices(brw, mt, mt->format, level, 1, > + enum isl_format format = translate_tex_format(brw, mt->format, false); > + intel_miptree_prepare_texture_slices(brw, mt, format, level, 1, > start_layer, num_layers, NULL); > } > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > index 239791f..df413b1 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > @@ -931,7 +931,7 @@ intel_miptree_texture_aux_usage(struct brw_context *brw, > void > intel_miptree_prepare_texture(struct brw_context *brw, > struct intel_mipmap_tree *mt, > - mesa_format view_format, > + enum isl_format view_format, > bool *aux_supported_out); > void > intel_miptree_prepare_image(struct brw_context *brw, > -- > 2.5.0.400.gff86faf > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev