fprintf(fp," ");
fprintf(fp,"\n");
}
+
+ fflush(fp);
}
+static void fs_data_dump(FILE *fp, struct brw_wm_prog_data* data)
+{
+ fprintf(fp, "\n=== begin brw_wm_prog_data ===\n");
+
+ //brw_stage_prog_data base;
+ fprintf(fp, "data->base.binding_table.size_bytes = %u\n",
+ data->base.binding_table.size_bytes);
+ fprintf(fp, "data->base.binding_table.pull_constants_start = %u\n",
+ data->base.binding_table.pull_constants_start);
+ fprintf(fp, "data->base.binding_table.texture_start = %u\n",
+ data->base.binding_table.texture_start);
+ fprintf(fp, "data->base.binding_table.gather_texture_start = %u\n",
+ data->base.binding_table.gather_texture_start);
+ fprintf(fp, "data->base.binding_table.ubo_start = %u\n",
+ data->base.binding_table.ubo_start);
+ fprintf(fp, "data->base.binding_table.abo_start = %u\n",
+ data->base.binding_table.abo_start);
+ fprintf(fp, "data->base.binding_table.shader_time_start = %u\n",
+ data->base.binding_table.shader_time_start);
+
+ fprintf(fp, "data->base.nr_params = %u\n",
+ data->base.nr_params);
+ fprintf(fp, "data->base.nr_pull_params = %u\n",
+ data->base.nr_pull_params);
+
+ // invalid pointers
+ //data->base.param;
+ //data->base.pull_param;
+
+ fprintf(fp, "data->curb_read_length = %u\n",
+ data->curb_read_length);
+ fprintf(fp, "data->num_varying_inputs = %u\n",
+ data->num_varying_inputs);
+
+ fprintf(fp, "data->first_curbe_grf = %u\n",
+ data->first_curbe_grf);
+ fprintf(fp, "data->first_curbe_grf_16 = %u\n",
+ data->first_curbe_grf_16);
+ fprintf(fp, "data->reg_blocks = %u\n",
+ data->reg_blocks);
+ fprintf(fp, "data->reg_blocks_16 = %u\n",
+ data->reg_blocks_16);
+ fprintf(fp, "data->total_scratch = %u\n",
+ data->total_scratch);
+ fprintf(fp, "data->binding_table.render_target_start = %u\n",
+ data->binding_table.render_target_start);
+
+ fprintf(fp, "data->dual_src_blend = %s\n",
+ data->dual_src_blend ? "true" : "false");
+ fprintf(fp, "data->uses_pos_offset = %s\n",
+ data->uses_pos_offset ? "true" : "false");
+ fprintf(fp, "data->uses_omask = %s\n",
+ data->uses_omask ? "true" : "false");
+ fprintf(fp, "data->prog_offset_16 = %u\n",
+ data->prog_offset_16);
+
+ fprintf(fp, "data->barycentric_interp_modes = %u\n",
+ data->barycentric_interp_modes);
+
+ for (int i = 0; i < VARYING_SLOT_MAX; ++i) {
+ fprintf(fp, "data->urb_setup[%i] = %i\n",
+ i, data->urb_setup[i]);
+ }
+
+ fprintf(fp, "=== end brw_wm_prog_data ===\n");
+
+ fflush(fp);
+}
extern "C" {
memcpy(pipe_shader->pCode, get_wm_program(brw->shader_prog), pipe_shader->codeSize);
struct brw_wm_prog_data *data = get_wm_prog_data(brw->shader_prog);
+
+ // print out the supporting structures generated by the BE compile:
+ fs_data_dump(stdout, data);
+
pipe_shader->surface_count = data->base.binding_table.size_bytes / 4;
pipe_shader->urb_grf_start = data->first_curbe_grf;
pipe_shader->in_count = data->num_varying_inputs;
pipe_shader->sampler_count = shader->sampler_count;
- fprintf(stderr,"\nISA generated by compiler:\n");
- fprintf(stderr,"ISA size: %i\n", pipe_shader->codeSize);
- hexdump(stderr, pipe_shader->pCode, pipe_shader->codeSize);
- fflush(stderr);
+ fprintf(stdout,"\nISA generated by compiler:\n");
+ fprintf(stdout,"ISA size: %i\n", pipe_shader->codeSize);
+ hexdump(stdout, pipe_shader->pCode, pipe_shader->codeSize);
+ fflush(stdout);
}
break;
pipe_shader->barycentric_interps = shader->barycentric_interps;
- fprintf(stderr,"\nISA generated by compiler:\n");
- fprintf(stderr,"ISA size: %i\n", pipe_shader->codeSize);
- hexdump(stderr, pipe_shader->pCode, pipe_shader->codeSize);
- fflush(stderr);
+ fprintf(stdout,"\nISA generated by compiler:\n");
+ fprintf(stdout,"ISA size: %i\n", pipe_shader->codeSize);
+ hexdump(stdout, pipe_shader->pCode, pipe_shader->codeSize);
+ fflush(stdout);
}
break;