[Mesa-dev] [PATCH 4/5] i965/fs: Debug the optimization passes by dumping instr to file.
Kenneth Graunke
kenneth at whitecape.org
Sat May 31 17:33:15 PDT 2014
On Friday, May 30, 2014 07:35:22 PM Matt Turner wrote:
> With INTEL_DEBUG=optimizer, write the output of dump_instructions() to a
> file each time an optimization pass makes progress. This lets you easily
> diff successive files to see what an optimization pass did.
>
> Example filenames written when running glxgears:
> fs8-00-00-start
> fs8-00-01-04-opt_copy_propagate
> fs8-00-01-06-dead_code_eliminate
> fs8-00-01-12-compute_to_mrf
> fs8-00-02-06-dead_code_eliminate
> | | | |
> | | | `-- optimization pass name
> | | |
> | | `-- optimization pass number in the loop
> | |
> | `-- optimization loop interation
> |
> `-- shader program number
>
> Note that with INTEL_DEBUG=optimizer, we disable compact_virtual_grfs,
> so that we can diff instruction lists across loop interations without
> the register numbers being changes.
> ---
> src/mesa/drivers/dri/i965/brw_fs.cpp | 53 ++++++++++++++++++++++++++++--------
> 1 file changed, 41 insertions(+), 12 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index c9b31fe..0d56ac7 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -1714,6 +1714,9 @@ fs_visitor::split_virtual_grfs()
> void
> fs_visitor::compact_virtual_grfs()
> {
> + if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER))
> + return;
> +
> /* Mark which virtual GRFs are used, and count how many. */
> int remap_table[this->virtual_grf_count];
> memset(remap_table, -1, sizeof(remap_table));
> @@ -3020,24 +3023,50 @@ fs_visitor::run()
>
> opt_drop_redundant_mov_to_flags();
>
> +#define OPT(pass, args...) do { \
> + pass_num++; \
> + bool this_progress = pass(args); \
> + \
> + if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER) && this_progress) { \
> + char filename[64]; \
> + snprintf(filename, 64, "fs%d-%02d-%02d-%02d-" #pass, \
One thought...could we widen the shader number to:
"fs%d-%04d-%02d-%02-d"
Some programs have a lot of shaders (though admittedly you're probably not
using INTEL_DEBUG=optimizer on a whole game).
Either way's fine.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140531/fbeea2bd/attachment.sig>
More information about the mesa-dev
mailing list