Ping for Rb for the first 2 patches. Marek
On Tue, Jan 3, 2017 at 8:17 PM, Marek Olšák <mar...@gmail.com> wrote: > From: Marek Olšák <marek.ol...@amd.com> > > --- > src/gallium/drivers/radeonsi/si_compute.c | 2 +- > src/gallium/drivers/radeonsi/si_debug.c | 2 +- > src/gallium/drivers/radeonsi/si_shader.c | 20 +++++++++++--------- > src/gallium/drivers/radeonsi/si_shader.h | 2 +- > src/gallium/drivers/radeonsi/si_state_shaders.c | 2 +- > 5 files changed, 15 insertions(+), 13 deletions(-) > > diff --git a/src/gallium/drivers/radeonsi/si_compute.c > b/src/gallium/drivers/radeonsi/si_compute.c > index cb14a35..fe29fb1 100644 > --- a/src/gallium/drivers/radeonsi/si_compute.c > +++ b/src/gallium/drivers/radeonsi/si_compute.c > @@ -163,21 +163,21 @@ static void *si_create_compute_state( > radeon_elf_read(code, header->num_bytes, > &program->shader.binary); > if (program->use_code_object_v2) { > const amd_kernel_code_t *code_object = > si_compute_get_code_object(program, 0); > code_object_to_config(code_object, > &program->shader.config); > } else { > si_shader_binary_read_config(&program->shader.binary, > &program->shader.config, 0); > } > si_shader_dump(sctx->screen, &program->shader, &sctx->b.debug, > - PIPE_SHADER_COMPUTE, stderr); > + PIPE_SHADER_COMPUTE, stderr, true); > if (si_shader_binary_upload(sctx->screen, &program->shader) < > 0) { > fprintf(stderr, "LLVM failed to upload shader\n"); > FREE(program); > return NULL; > } > } > > return program; > } > > diff --git a/src/gallium/drivers/radeonsi/si_debug.c > b/src/gallium/drivers/radeonsi/si_debug.c > index 1090dda..a1cd9e5 100644 > --- a/src/gallium/drivers/radeonsi/si_debug.c > +++ b/src/gallium/drivers/radeonsi/si_debug.c > @@ -38,21 +38,21 @@ static void si_dump_shader(struct si_screen *sscreen, > { > struct si_shader *current = state->current; > > if (!state->cso || !current) > return; > > if (current->shader_log) > fwrite(current->shader_log, current->shader_log_size, 1, f); > else > si_shader_dump(sscreen, state->current, NULL, > - state->cso->info.processor, f); > + state->cso->info.processor, f, false); > } > > /** > * Shader compiles can be overridden with arbitrary ELF objects by setting > * the environment variable > RADEON_REPLACE_SHADERS=num1:filename1[;num2:filename2] > */ > bool si_replace_shader(unsigned num, struct radeon_shader_binary *binary) > { > const char *p = debug_get_option_replace_shaders(); > const char *semicolon; > diff --git a/src/gallium/drivers/radeonsi/si_shader.c > b/src/gallium/drivers/radeonsi/si_shader.c > index 8dec55c..5dfbd66 100644 > --- a/src/gallium/drivers/radeonsi/si_shader.c > +++ b/src/gallium/drivers/radeonsi/si_shader.c > @@ -6162,21 +6162,22 @@ static void si_shader_dump_disassembly(const struct > radeon_shader_binary *binary > binary->code[i + 3], binary->code[i + 2], > binary->code[i + 1], binary->code[i]); > } > } > } > > static void si_shader_dump_stats(struct si_screen *sscreen, > struct si_shader *shader, > struct pipe_debug_callback *debug, > unsigned processor, > - FILE *file) > + FILE *file, > + bool check_debug_option) > { > struct si_shader_config *conf = &shader->config; > unsigned num_inputs = shader->selector ? > shader->selector->info.num_inputs : 0; > unsigned code_size = si_get_shader_binary_size(shader); > unsigned lds_increment = sscreen->b.chip_class >= CIK ? 512 : 256; > unsigned lds_per_wave = 0; > unsigned max_simd_waves = 10; > > /* Compute LDS usage for PS. */ > switch (processor) { > @@ -6213,21 +6214,21 @@ static void si_shader_dump_stats(struct si_screen > *sscreen, > } > > if (conf->num_vgprs) > max_simd_waves = MIN2(max_simd_waves, 256 / conf->num_vgprs); > > /* LDS is 64KB per CU (4 SIMDs), which is 16KB per SIMD (usage above > * 16KB makes some SIMDs unoccupied). */ > if (lds_per_wave) > max_simd_waves = MIN2(max_simd_waves, 16384 / lds_per_wave); > > - if (file != stderr || > + if (!check_debug_option || > r600_can_dump_shader(&sscreen->b, processor)) { > if (processor == PIPE_SHADER_FRAGMENT) { > fprintf(file, "*** SHADER CONFIG ***\n" > "SPI_PS_INPUT_ADDR = 0x%04x\n" > "SPI_PS_INPUT_ENA = 0x%04x\n", > conf->spi_ps_input_addr, > conf->spi_ps_input_ena); > } > > fprintf(file, "*** SHADER STATS ***\n" > "SGPRS: %d\n" > @@ -6284,50 +6285,51 @@ static const char *si_get_shader_name(struct > si_shader *shader, > return "Pixel Shader"; > case PIPE_SHADER_COMPUTE: > return "Compute Shader"; > default: > return "Unknown Shader"; > } > } > > void si_shader_dump(struct si_screen *sscreen, struct si_shader *shader, > struct pipe_debug_callback *debug, unsigned processor, > - FILE *file) > + FILE *file, bool check_debug_option) > { > - if (file != stderr || > + if (!check_debug_option || > r600_can_dump_shader(&sscreen->b, processor)) > si_dump_shader_key(processor, &shader->key, file); > > - if (file != stderr && shader->binary.llvm_ir_string) { > + if (!check_debug_option && shader->binary.llvm_ir_string) { > fprintf(file, "\n%s - main shader part - LLVM IR:\n\n", > si_get_shader_name(shader, processor)); > fprintf(file, "%s\n", shader->binary.llvm_ir_string); > } > > - if (file != stderr || > + if (!check_debug_option || > (r600_can_dump_shader(&sscreen->b, processor) && > !(sscreen->b.debug_flags & DBG_NO_ASM))) { > fprintf(file, "\n%s:\n", si_get_shader_name(shader, > processor)); > > if (shader->prolog) > si_shader_dump_disassembly(&shader->prolog->binary, > debug, "prolog", file); > > si_shader_dump_disassembly(&shader->binary, debug, "main", > file); > > if (shader->epilog) > si_shader_dump_disassembly(&shader->epilog->binary, > debug, "epilog", file); > fprintf(file, "\n"); > } > > - si_shader_dump_stats(sscreen, shader, debug, processor, file); > + si_shader_dump_stats(sscreen, shader, debug, processor, file, > + check_debug_option); > } > > int si_compile_llvm(struct si_screen *sscreen, > struct radeon_shader_binary *binary, > struct si_shader_config *conf, > LLVMTargetMachineRef tm, > LLVMModuleRef mod, > struct pipe_debug_callback *debug, > unsigned processor, > const char *name) > @@ -6546,21 +6548,21 @@ si_generate_gs_copy_shader(struct si_screen *sscreen, > > r = si_compile_llvm(sscreen, &ctx.shader->binary, > &ctx.shader->config, ctx.tm, > bld_base->base.gallivm->module, > debug, PIPE_SHADER_GEOMETRY, > "GS Copy Shader"); > if (!r) { > if (r600_can_dump_shader(&sscreen->b, PIPE_SHADER_GEOMETRY)) > fprintf(stderr, "GS Copy Shader:\n"); > si_shader_dump(sscreen, ctx.shader, debug, > - PIPE_SHADER_GEOMETRY, stderr); > + PIPE_SHADER_GEOMETRY, stderr, true); > r = si_shader_binary_upload(sscreen, ctx.shader); > } > > si_llvm_dispose(&ctx); > > FREE(outputs); > > if (r != 0) { > FREE(shader); > shader = NULL; > @@ -8604,21 +8606,21 @@ int si_shader_create(struct si_screen *sscreen, > LLVMTargetMachineRef tm, > if (shader->epilog) { > shader->config.num_sgprs = > MAX2(shader->config.num_sgprs, > > shader->epilog->config.num_sgprs); > shader->config.num_vgprs = > MAX2(shader->config.num_vgprs, > > shader->epilog->config.num_vgprs); > } > } > > si_fix_resource_usage(sscreen, shader); > si_shader_dump(sscreen, shader, debug, sel->info.processor, > - stderr); > + stderr, true); > > /* Upload. */ > r = si_shader_binary_upload(sscreen, shader); > if (r) { > fprintf(stderr, "LLVM failed to upload shader\n"); > return r; > } > > return 0; > } > diff --git a/src/gallium/drivers/radeonsi/si_shader.h > b/src/gallium/drivers/radeonsi/si_shader.h > index 129e571..1b5dec2 100644 > --- a/src/gallium/drivers/radeonsi/si_shader.h > +++ b/src/gallium/drivers/radeonsi/si_shader.h > @@ -539,21 +539,21 @@ int si_compile_llvm(struct si_screen *sscreen, > LLVMModuleRef mod, > struct pipe_debug_callback *debug, > unsigned processor, > const char *name); > void si_shader_destroy(struct si_shader *shader); > unsigned si_shader_io_get_unique_index(unsigned semantic_name, unsigned > index); > unsigned si_shader_io_get_unique_index2(unsigned name, unsigned index); > int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader > *shader); > void si_shader_dump(struct si_screen *sscreen, struct si_shader *shader, > struct pipe_debug_callback *debug, unsigned processor, > - FILE *f); > + FILE *f, bool check_debug_option); > void si_multiwave_lds_size_workaround(struct si_screen *sscreen, > unsigned *lds_size); > void si_shader_apply_scratch_relocs(struct si_context *sctx, > struct si_shader *shader, > struct si_shader_config *config, > uint64_t scratch_va); > void si_shader_binary_read_config(struct radeon_shader_binary *binary, > struct si_shader_config *conf, > unsigned symbol_offset); > unsigned si_get_spi_shader_z_format(bool writes_z, bool writes_stencil, > diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c > b/src/gallium/drivers/radeonsi/si_state_shaders.c > index a360672..9967837 100644 > --- a/src/gallium/drivers/radeonsi/si_state_shaders.c > +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c > @@ -1103,21 +1103,21 @@ static void si_build_shader_variant(void *job, int > thread_index) > R600_ERR("Failed to build shader variant (type=%u) %d\n", > sel->type, r); > shader->compilation_failed = true; > return; > } > > if (sel->is_debug_context) { > FILE *f = open_memstream(&shader->shader_log, > &shader->shader_log_size); > if (f) { > - si_shader_dump(sscreen, shader, NULL, sel->type, f); > + si_shader_dump(sscreen, shader, NULL, sel->type, f, > false); > fclose(f); > } > } > > si_shader_init_pm4_state(sscreen, shader); > } > > /* Select the hw shader variant depending on the current state. */ > static int si_shader_select_with_key(struct si_screen *sscreen, > struct si_shader_ctx_state *state, > -- > 2.7.4 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev