"Fragment Program"
};
-void rc_run_compiler_passes(struct radeon_compiler *c, struct radeon_compiler_pass *list)
+bool rc_run_compiler_passes(struct radeon_compiler *c, struct radeon_compiler_pass *list)
{
for (unsigned i = 0; list[i].name; i++) {
if (list[i].predicate) {
list[i].run(c, list[i].user);
if (c->Error)
- return;
+ return false;
if ((c->Debug & RC_DBG_LOG) && list[i].dump) {
fprintf(stderr, "%s: after '%s'\n", shader_name[c->type], list[i].name);
}
}
}
+ return true;
}
/* Executes a list of compiler passes given in the parameter 'list'. */
rc_print_program(&c->Program);
}
- rc_run_compiler_passes(c, list);
-
- print_stats(c);
+ if(rc_run_compiler_passes(c, list)) {
+ print_stats(c);
+ }
}
void rc_validate_final_shader(struct radeon_compiler *c, void *user)
#ifndef RADEON_COMPILER_H
#define RADEON_COMPILER_H
+#include <stdbool.h>
+
#include "memory_pool.h"
#include "radeon_code.h"
#include "radeon_program.h"
void rc_get_stats(struct radeon_compiler *c, struct rc_program_stats *s);
/* Executes a list of compiler passes given in the parameter 'list'. */
-void rc_run_compiler_passes(struct radeon_compiler *c, struct radeon_compiler_pass *list);
+bool rc_run_compiler_passes(struct radeon_compiler *c, struct radeon_compiler_pass *list);
void rc_run_compiler(struct radeon_compiler *c, struct radeon_compiler_pass *list);
void rc_validate_final_shader(struct radeon_compiler *c, void *user);