i965/nir: Make INTEL_DEBUG=ann work with NIR.
Now that we store a copy of the NIR shader, and don't immediately free it, we can use it in annotations as well. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -438,6 +438,8 @@ fs_visitor::nir_emit_block(nir_block *block)
|
||||
void
|
||||
fs_visitor::nir_emit_instr(nir_instr *instr)
|
||||
{
|
||||
this->base_ir = instr;
|
||||
|
||||
switch (instr->type) {
|
||||
case nir_instr_type_alu:
|
||||
nir_emit_alu(nir_instr_as_alu(instr));
|
||||
@@ -464,6 +466,8 @@ fs_visitor::nir_emit_instr(nir_instr *instr)
|
||||
default:
|
||||
unreachable("unknown instruction type");
|
||||
}
|
||||
|
||||
this->base_ir = NULL;
|
||||
}
|
||||
|
||||
static brw_reg_type
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "program/prog_print.h"
|
||||
#include "program/prog_instruction.h"
|
||||
#include "main/macros.h"
|
||||
#include "glsl/nir/nir.h"
|
||||
|
||||
void
|
||||
dump_assembly(void *assembly, int num_annotations, struct annotation *annotation,
|
||||
@@ -55,7 +56,9 @@ dump_assembly(void *assembly, int num_annotations, struct annotation *annotation
|
||||
last_annotation_ir = annotation[i].ir;
|
||||
if (last_annotation_ir) {
|
||||
fprintf(stderr, " ");
|
||||
if (!prog->Instructions)
|
||||
if (prog->nir)
|
||||
nir_print_instr(annotation[i].ir, stderr);
|
||||
else if (!prog->Instructions)
|
||||
fprint_ir(stderr, annotation[i].ir);
|
||||
else {
|
||||
const struct prog_instruction *pi =
|
||||
|
||||
Reference in New Issue
Block a user