On Wed, Jan 24, 2018 at 11:13 AM, Kenneth Graunke <kenn...@whitecape.org> wrote:
> On Wednesday, January 24, 2018 2:03:41 AM PST Jason Ekstrand wrote: > > Instead of keeping an array of booleans, we now hang onto an array of > > isl_aux_usage enums. This means that the thing we are passing from > > brw_draw.c to surface state setup is the thing that surface state setup > > actually needs instead of an input to compute what it needs. > > > > Cc: mesa-sta...@lists.freedesktop.org > [snip] > > @@ -497,7 +498,8 @@ brw_predraw_resolve_inputs(struct brw_context *brw, > bool rendering) > > } > > > > static void > > -brw_predraw_resolve_framebuffer(struct brw_context *brw) > > +brw_predraw_resolve_framebuffer(struct brw_context *brw, > > + bool *draw_aux_buffer_disabled) > > { > > struct gl_context *ctx = &brw->ctx; > > struct intel_renderbuffer *depth_irb; > > @@ -550,7 +552,8 @@ brw_predraw_resolve_framebuffer(struct brw_context > *brw) > > enum isl_aux_usage aux_usage = > > intel_miptree_render_aux_usage(brw, irb->mt, isl_format, > > blend_enabled, > > - brw->draw_aux_buffer_disabled[ > i]); > > + draw_aux_buffer_disabled[i]); > > + brw->draw_aux_usage[i] = aux_usage; > > I'm concerned this might break compute shaders. Sure, they don't have > renderbuffers. However, the code to emit SURFACE_STATEs for textures > calls brw_aux_surface_disabled which brw->draw_aux_usage[]. It only > accesses elements 0..fb->_NumColorDrawBuffers-1, but I suspect there's > still a framebuffer bound when doing a compute dispatch - it's just > not relevant. > Compute shaders will never call this as it is the framebuffer funciton. They only call predraw_resolve_inputs. > This appears to be the only place that sets brw->draw_aux_usage[], > and it isn't called for compute shaders. > > I'd say to just whack it back to "don't override things", but that > means knowing what the actual usage is, which sounds painful... >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev