On Tue, Jun 6, 2017 at 11:00 PM, Chad Versace <c...@kiwitree.net> wrote:
> On Fri 26 May 2017, Jason Ekstrand wrote: > > --- > > src/mesa/drivers/dri/i965/brw_context.c | 55 > +++++---------------------- > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 55 > +++++++++++++++++++++++++++ > > src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 6 +++ > > 3 files changed, 71 insertions(+), 45 deletions(-) > > > static void > > intel_update_state(struct gl_context * ctx, GLuint new_state) > > { > > @@ -259,16 +224,16 @@ intel_update_state(struct gl_context * ctx, GLuint > new_state) > > /* We need inte_texture_object::_Format to be valid */ > > intel_finalize_mipmap_tree(brw, i); > > > > - if (intel_miptree_sample_with_hiz(brw, tex_obj->mt)) > > - intel_miptree_all_slices_resolve_hiz(brw, tex_obj->mt); > > - else > > - intel_miptree_all_slices_resolve_depth(brw, tex_obj->mt); > > - /* Sampling engine understands lossless compression and resolving > > - * those surfaces should be skipped for performance reasons. > > - */ > > - const int flags = intel_texture_view_requires_resolve(brw, > tex_obj) ? > > - 0 : INTEL_MIPTREE_IGNORE_CCS_E; > > - intel_miptree_all_slices_resolve_color(brw, tex_obj->mt, flags); > > + bool aux_supported; > > + intel_miptree_prepare_texture(brw, tex_obj->mt, tex_obj->_Format, > > + &aux_supported); > > + > > + if (!aux_supported && brw->gen >= 9 && > > + intel_disable_rb_aux_buffer(brw, tex_obj->mt->bo)) { > > + perf_debug("Sampling renderbuffer with non-compressible format > - " > > + "turning off compression"); > > + } > > + > > I don't understand why intel_disable_rb_aux_buffer() is called here. > Specifically, I don't understand why the code disables aux for > a *framebuffer* attachment in response to the state of a *texture* view > in the *same* draw call. There is hidden subtlety here. > > [time passes... tick tick tick] > > In general, the GL spec claims undefined behavior when simultaneuosly > sampling and rendering to the same buffer. Self-blits are legal, though. > So, it seems to me that intel_disable_rb_aux_buffer() is applicable here > only during a glBlit* when src and dest are the same. Is that correct? > Do there exist other applicable scenarios that I'm failing to see? > https://khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_barrier.txt > Anyway, this is just a refactoring patch, so > Reviewed-by: Chad Versace <chadvers...@chromium.org> >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev