Module: Mesa Branch: main Commit: b7e5a8b5ca6078bb79fddaef89b66ce78a72e14f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7e5a8b5ca6078bb79fddaef89b66ce78a72e14f
Author: Vitaliy Triang3l Kuzmin <trian...@yandex.ru> Date: Sat Oct 7 19:33:36 2023 +0300 r600: Replace R600_ERR with R600_ASM_ERR in shader code Doesn't depend on r600_pipe, thus usable outside Gallium Signed-off-by: Vitaliy Triang3l Kuzmin <trian...@yandex.ru> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695> --- src/gallium/drivers/r600/r600_asm.c | 10 +++++----- src/gallium/drivers/r600/r600_asm.h | 5 +++++ src/gallium/drivers/r600/sfn/sfn_assembler.cpp | 25 ++++++++++++++----------- src/gallium/drivers/r600/sfn/sfn_shader_vs.cpp | 8 +++++--- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c index 363b297f53e..071928b9713 100644 --- a/src/gallium/drivers/r600/r600_asm.c +++ b/src/gallium/drivers/r600/r600_asm.c @@ -1116,7 +1116,7 @@ static int r600_bytecode_assign_kcache_banks( switch (kcache[j].mode) { case V_SQ_CF_KCACHE_NOP: case V_SQ_CF_KCACHE_LOCK_LOOP_INDEX: - R600_ERR("unexpected kcache line mode\n"); + R600_ASM_ERR("unexpected kcache line mode\n"); return -ENOMEM; default: if (kcache[j].bank == alu->src[i].kc_bank && @@ -1431,7 +1431,7 @@ static unsigned r600_bytecode_num_tex_and_vtx_instructions(const struct r600_byt return 16; default: - R600_ERR("Unknown gfx level %d.\n", bc->gfx_level); + R600_ASM_ERR("Unknown gfx level %d.\n", bc->gfx_level); return 8; } } @@ -1484,7 +1484,7 @@ static int r600_bytecode_add_vtx_internal(struct r600_bytecode *bc, const struct bc->cf_last->op = CF_OP_TEX; break; default: - R600_ERR("Unknown gfx level %d.\n", bc->gfx_level); + R600_ASM_ERR("Unknown gfx level %d.\n", bc->gfx_level); free(nvtx); return -EINVAL; } @@ -1900,7 +1900,7 @@ int r600_bytecode_build(struct r600_bytecode *bc) r = eg_bytecode_alu_build(bc, alu, addr); break; default: - R600_ERR("unknown gfx level %d.\n", bc->gfx_level); + R600_ASM_ERR("unknown gfx level %d.\n", bc->gfx_level); return -EINVAL; } if (r) @@ -2802,7 +2802,7 @@ void r600_vertex_data_type(enum pipe_format pformat, } return; out_unknown: - R600_ERR("unsupported vertex format %s\n", util_format_name(pformat)); + R600_ASM_ERR("unsupported vertex format %s\n", util_format_name(pformat)); } void r600_bytecode_alu_read(struct r600_bytecode *bc, diff --git a/src/gallium/drivers/r600/r600_asm.h b/src/gallium/drivers/r600/r600_asm.h index e0bcb8f91d4..c7afefcd3a4 100644 --- a/src/gallium/drivers/r600/r600_asm.h +++ b/src/gallium/drivers/r600/r600_asm.h @@ -26,10 +26,15 @@ #include "r600_pipe.h" #include "r600_isa.h" +#include <stdio.h> + #ifdef __cplusplus extern "C" { #endif +#define R600_ASM_ERR(fmt, args...) \ + fprintf(stderr, "EE %s:%d %s - " fmt, __FILE__, __LINE__, __func__, ##args) + struct r600_bytecode_alu_src { unsigned sel; unsigned chan; diff --git a/src/gallium/drivers/r600/sfn/sfn_assembler.cpp b/src/gallium/drivers/r600/sfn/sfn_assembler.cpp index 2368f4844d4..428c4d2c26d 100644 --- a/src/gallium/drivers/r600/sfn/sfn_assembler.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_assembler.cpp @@ -27,6 +27,8 @@ #include "sfn_assembler.h" #include "../eg_sq.h" +#include "../r600_asm.h" + #include "sfn_callstack.h" #include "sfn_conditionaljumptracker.h" #include "sfn_debug.h" @@ -551,7 +553,7 @@ AssamblerVisitor::visit(const TexInstr& tex_instr) else tex.inst_mod = tex_instr.inst_mode(); if (r600_bytecode_add_tex(m_bc, &tex)) { - R600_ERR("shader_from_nir: Error creating tex assembly instruction\n"); + R600_ASM_ERR("shader_from_nir: Error creating tex assembly instruction\n"); m_result = false; } } @@ -588,7 +590,8 @@ AssamblerVisitor::visit(const ExportInstr& exi) output.array_base = exi.location(); break; default: - R600_ERR("shader_from_nir: export %d type not yet supported\n", exi.export_type()); + R600_ASM_ERR("shader_from_nir: export %d type not yet supported\n", + exi.export_type()); m_result = false; } @@ -601,7 +604,7 @@ AssamblerVisitor::visit(const ExportInstr& exi) int r = 0; if ((r = r600_bytecode_add_output(m_bc, &output))) { - R600_ERR("Error adding export at location %d : err: %d\n", exi.location(), r); + R600_ASM_ERR("Error adding export at location %d : err: %d\n", exi.location(), r); m_result = false; } } @@ -641,7 +644,7 @@ AssamblerVisitor::visit(const ScratchIOInstr& instr) } if (r600_bytecode_add_output(m_bc, &cf)) { - R600_ERR("shader_from_nir: Error creating SCRATCH_WR assembly instruction\n"); + R600_ASM_ERR("shader_from_nir: Error creating SCRATCH_WR assembly instruction\n"); m_result = false; } } @@ -662,7 +665,7 @@ AssamblerVisitor::visit(const StreamOutInstr& instr) output.op = instr.op(m_shader->bc.gfx_level); if (r600_bytecode_add_output(m_bc, &output)) { - R600_ERR("shader_from_nir: Error creating stream output instruction\n"); + R600_ASM_ERR("shader_from_nir: Error creating stream output instruction\n"); m_result = false; } } @@ -687,7 +690,7 @@ AssamblerVisitor::visit(const MemRingOutInstr& instr) output.array_base = instr.array_base(); if (r600_bytecode_add_output(m_bc, &output)) { - R600_ERR("shader_from_nir: Error creating mem ring write instruction\n"); + R600_ASM_ERR("shader_from_nir: Error creating mem ring write instruction\n"); m_result = false; } } @@ -763,13 +766,13 @@ AssamblerVisitor::visit(const FetchInstr& fetch_instr) if (fetch_instr.has_fetch_flag(FetchInstr::use_tc)) { if ((r600_bytecode_add_vtx_tc(m_bc, &vtx))) { - R600_ERR("shader_from_nir: Error creating tex assembly instruction\n"); + R600_ASM_ERR("shader_from_nir: Error creating tex assembly instruction\n"); m_result = false; } } else { if ((r600_bytecode_add_vtx(m_bc, &vtx))) { - R600_ERR("shader_from_nir: Error creating tex assembly instruction\n"); + R600_ASM_ERR("shader_from_nir: Error creating tex assembly instruction\n"); m_result = false; } } @@ -1203,9 +1206,9 @@ bool AssamblerVisitor::copy_dst(r600_bytecode_alu_dst& dst, const Register& d, bool write) { if (write && d.sel() > g_clause_local_end) { - R600_ERR("shader_from_nir: Don't support more then 123 GPRs + 4 clause " - "local, but try using %d\n", - d.sel()); + R600_ASM_ERR("shader_from_nir: Don't support more then 123 GPRs + 4 clause " + "local, but try using %d\n", + d.sel()); m_result = false; return false; } diff --git a/src/gallium/drivers/r600/sfn/sfn_shader_vs.cpp b/src/gallium/drivers/r600/sfn/sfn_shader_vs.cpp index de76689afea..cdb40c0a9dc 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader_vs.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_shader_vs.cpp @@ -26,6 +26,8 @@ #include "sfn_shader_vs.h" +#include "../r600_asm.h" + #include "sfn_debug.h" #include "sfn_instr_alugroup.h" #include "sfn_instr_export.h" @@ -310,13 +312,13 @@ VertexExportForFs::emit_stream(int stream) { assert(m_so_info); if (m_so_info->num_outputs > PIPE_MAX_SO_OUTPUTS) { - R600_ERR("Too many stream outputs: %d\n", m_so_info->num_outputs); + R600_ASM_ERR("Too many stream outputs: %d\n", m_so_info->num_outputs); return false; } for (unsigned i = 0; i < m_so_info->num_outputs; i++) { if (m_so_info->output[i].output_buffer >= 4) { - R600_ERR("Exceeded the max number of stream output buffers, got: %d\n", - m_so_info->output[i].output_buffer); + R600_ASM_ERR("Exceeded the max number of stream output buffers, got: %d\n", + m_so_info->output[i].output_buffer); return false; } }