On Wednesday, October 28, 2015 02:58:07 PM Kristian Høgsberg wrote: > On Wed, Oct 28, 2015 at 2:34 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > > On Wed, Oct 28, 2015 at 2:32 PM, Jason Ekstrand <ja...@jlekstrand.net> > > wrote: > >> This series adds a nir_pass datastructure and some helpers for managing > >> optimization and lowering passes. I've been meaning to get around to this > >> for some time. There are a couple of primary benifits to this: > >> > >> First, this gives us a central place to put things such as validating the > >> shader, printing it if it changes, etc. Right now, the i965 backend calls > >> nir_validate_shader after each pass. We would also like to add something > >> like we have in the i965 backend where it can be set to dump the IR to a > >> file after every pass that changess it. > >> > >> Mor importantly, though, it moves metadata out of the passes them selves > >> and into the runner. In the process of putting this series together, I > >> found at least 3 or 4 optimization passes that don't properly invalidate > >> metadata. By putting a metadata_preserved field in nir_pass and handling > >> metadata in the pass runner, we make it much less likely that a pass will > >> get this wrong. LLVM has a similar optimization pass architecture for > >> precicely this reason. > >> > >> As a nice little side-benifit, we no longer have to iterate over all of the > >> overloads with non-NULL impl pointers in each pass. > > > > Once again, git-send-email failed to send the last patch for whatever > > reason. The entire series can be found here: > > > > http://cgit.freedesktop.org/~jekstrand/mesa/log/?h=wip/nir-pass > > Nice. Series, > > Reviewed-by: Kristian Høgsberg <k...@bitplanet.net>
I plan to review this as well, so please hold off on pushing it for a little while. Thanks! --Ken
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev