On Wed, Nov 25, 2015 at 4:15 AM, Juan A. Suarez Romero <jasua...@igalia.com> wrote: > When using INTEL_DEBUG=optimizer, each optimizing step is dump to disk, > in a separate file. > > But as fs_visitor::optimize() and vec4_visitor::run() are called more > than once, it ends up overwriting the files already on disk, loosing > then previous optimizer steps.
Huh. I guess this happens when non-orthogonal state changes and we recompile the program? If so, yeah, that would lead to some confusing results. > To avoid this, add a new static variable that tracks the global > iteration across the entire life of the program running. > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 13 +++++++++---- > src/mesa/drivers/dri/i965/brw_vec4.cpp | 11 +++++++---- > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index 29f19cc..9520a62 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -4947,6 +4947,8 @@ fs_visitor::calculate_register_pressure() > void > fs_visitor::optimize() > { > + static int global_iteration = 0; I don't know that adding a static variable is the way to solve this. I know this is debugging code, but using a static variable will make this thread-unsafe, and I *really* don't want to end up in a situation where I can't figure out what the optimizer is doing because we were compiling shaders in parallel... Ken, any ideas? _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev