mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-22 12:00:28 +01:00
r300/compiler: Add rc_print_program
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
This commit is contained in:
parent
8bcb6ef786
commit
2237d136cd
4 changed files with 34 additions and 1 deletions
|
|
@ -194,3 +194,27 @@ void rc_mesa_to_rc_program(struct radeon_compiler * c, struct gl_program * progr
|
|||
c->Program.InputsRead = program->InputsRead;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Print program to stderr, default options.
|
||||
*/
|
||||
void rc_print_program(const struct rc_program *prog)
|
||||
{
|
||||
GLuint indent = 0;
|
||||
GLuint linenum = 1;
|
||||
struct rc_instruction *inst;
|
||||
|
||||
fprintf(stderr, "# Radeon Compiler Program\n");
|
||||
|
||||
for(inst = prog->Instructions.Next; inst != &prog->Instructions; inst = inst->Next) {
|
||||
fprintf(stderr, "%3d: ", linenum);
|
||||
|
||||
/* Massive hack: We rely on the fact that the printers do not actually
|
||||
* use the gl_program argument (last argument) in debug mode */
|
||||
indent = _mesa_fprint_instruction_opt(
|
||||
stderr, &inst->I,
|
||||
indent, PROG_PRINT_DEBUG, 0);
|
||||
|
||||
linenum++;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
struct radeon_compiler;
|
||||
struct rc_instruction;
|
||||
struct rc_program;
|
||||
|
||||
enum {
|
||||
PROGRAM_BUILTIN = PROGRAM_FILE_MAX /**< not a real register, but a special swizzle constant */
|
||||
|
|
@ -134,5 +135,6 @@ struct rc_instruction *rc_alloc_instruction(struct radeon_compiler * c);
|
|||
struct rc_instruction *rc_insert_new_instruction(struct radeon_compiler * c, struct rc_instruction * after);
|
||||
|
||||
void rc_mesa_to_rc_program(struct radeon_compiler * c, struct gl_program * program);
|
||||
void rc_print_program(const struct rc_program *prog);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -541,7 +541,7 @@ _mesa_print_alu_instruction(const struct prog_instruction *inst,
|
|||
/**
|
||||
* Print a single vertex/fragment program instruction.
|
||||
*/
|
||||
static GLint
|
||||
GLint
|
||||
_mesa_fprint_instruction_opt(FILE *f,
|
||||
const struct prog_instruction *inst,
|
||||
GLint indent,
|
||||
|
|
|
|||
|
|
@ -56,6 +56,13 @@ _mesa_print_alu_instruction(const struct prog_instruction *inst,
|
|||
extern void
|
||||
_mesa_print_instruction(const struct prog_instruction *inst);
|
||||
|
||||
extern GLint
|
||||
_mesa_fprint_instruction_opt(FILE *f,
|
||||
const struct prog_instruction *inst,
|
||||
GLint indent,
|
||||
gl_prog_print_mode mode,
|
||||
const struct gl_program *prog);
|
||||
|
||||
extern GLint
|
||||
_mesa_print_instruction_opt(const struct prog_instruction *inst, GLint indent,
|
||||
gl_prog_print_mode mode,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue