Mesa (master): aco: Use radv_shader_args in aco_compile_shader()
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Nov 25 13:46:46 UTC 2019
Module: Mesa
Branch: master
Commit: b45c54ff8d21b9e9dcfee7980b1837350be27708
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b45c54ff8d21b9e9dcfee7980b1837350be27708
Author: Connor Abbott <cwabbott0 at gmail.com>
Date: Mon Nov 11 18:27:25 2019 +0100
aco: Use radv_shader_args in aco_compile_shader()
Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
---
src/amd/compiler/aco_interface.cpp | 21 +++++++++++----------
src/amd/compiler/aco_interface.h | 3 +--
src/amd/vulkan/radv_shader.c | 2 +-
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/amd/compiler/aco_interface.cpp b/src/amd/compiler/aco_interface.cpp
index ad18101eb8e..fe22b964725 100644
--- a/src/amd/compiler/aco_interface.cpp
+++ b/src/amd/compiler/aco_interface.cpp
@@ -24,6 +24,7 @@
#include "aco_interface.h"
#include "aco_ir.h"
#include "vulkan/radv_shader.h"
+#include "vulkan/radv_shader_args.h"
#include "c11/threads.h"
#include "util/debug.h"
@@ -56,8 +57,7 @@ static void init()
void aco_compile_shader(unsigned shader_count,
struct nir_shader *const *shaders,
struct radv_shader_binary **binary,
- struct radv_shader_info *info,
- struct radv_nir_compiler_options *options)
+ struct radv_shader_args *args)
{
call_once(&aco::init_once_flag, aco::init);
@@ -65,8 +65,9 @@ void aco_compile_shader(unsigned shader_count,
std::unique_ptr<aco::Program> program{new aco::Program};
/* Instruction Selection */
- aco::select_program(program.get(), shader_count, shaders, &config, info, options);
- if (options->dump_preoptir) {
+ aco::select_program(program.get(), shader_count, shaders, &config,
+ args->shader_info, args->options);
+ if (args->options->dump_preoptir) {
std::cerr << "After Instruction Selection:\n";
aco_print_program(program.get(), stderr);
}
@@ -88,15 +89,15 @@ void aco_compile_shader(unsigned shader_count,
aco::insert_exec_mask(program.get());
aco::validate(program.get(), stderr);
- aco::live live_vars = aco::live_var_analysis(program.get(), options);
- aco::spill(program.get(), live_vars, options);
+ aco::live live_vars = aco::live_var_analysis(program.get(), args->options);
+ aco::spill(program.get(), live_vars, args->options);
//std::cerr << "Before Schedule:\n";
//aco_print_program(program.get(), stderr);
aco::schedule_program(program.get(), live_vars);
std::string llvm_ir;
- if (options->record_ir) {
+ if (args->options->record_ir) {
char *data = NULL;
size_t size = 0;
FILE *f = open_memstream(&data, &size);
@@ -112,12 +113,12 @@ void aco_compile_shader(unsigned shader_count,
/* Register Allocation */
aco::register_allocation(program.get(), live_vars.live_out);
- if (options->dump_shader) {
+ if (args->options->dump_shader) {
std::cerr << "After RA:\n";
aco_print_program(program.get(), stderr);
}
- if (aco::validate_ra(program.get(), options, stderr)) {
+ if (aco::validate_ra(program.get(), args->options, stderr)) {
std::cerr << "Program after RA validation failure:\n";
aco_print_program(program.get(), stderr);
abort();
@@ -140,7 +141,7 @@ void aco_compile_shader(unsigned shader_count,
std::vector<uint32_t> code;
unsigned exec_size = aco::emit_program(program.get(), code);
- bool get_disasm = options->dump_shader || options->record_ir;
+ bool get_disasm = args->options->dump_shader || args->options->record_ir;
size_t size = llvm_ir.size();
diff --git a/src/amd/compiler/aco_interface.h b/src/amd/compiler/aco_interface.h
index 1425a0997a0..12139378feb 100644
--- a/src/amd/compiler/aco_interface.h
+++ b/src/amd/compiler/aco_interface.h
@@ -35,8 +35,7 @@ struct ac_shader_config;
void aco_compile_shader(unsigned shader_count,
struct nir_shader *const *shaders,
struct radv_shader_binary** binary,
- struct radv_shader_info *info,
- struct radv_nir_compiler_options *options);
+ struct radv_shader_args *args);
#ifdef __cplusplus
}
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 8ba83ff77c7..81526c7eca0 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -1111,7 +1111,7 @@ shader_variant_compile(struct radv_device *device,
ac_init_llvm_once();
if (use_aco) {
- aco_compile_shader(shader_count, shaders, &binary, info, options);
+ aco_compile_shader(shader_count, shaders, &binary, &args);
binary->info = *info;
} else {
enum ac_target_machine_options tm_options = 0;
More information about the mesa-commit
mailing list