Mesa (master): freedreno/ir3: Switch over to new encoder/decoder

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 13 18:53:08 UTC 2021


Module: Mesa
Branch: master
Commit: 5cae4779c2e2276da3720fdde136fbf623c3c983
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5cae4779c2e2276da3720fdde136fbf623c3c983

Author: Rob Clark <robdclark at chromium.org>
Date:   Wed Dec 30 12:03:06 2020 -0800

freedreno/ir3: Switch over to new encoder/decoder

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7997>

---

 src/freedreno/ir3/ir3_shader.c | 10 ++++++++--
 src/freedreno/ir3/meson.build  |  1 +
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c
index 8197764d112..a4feb9be8f1 100644
--- a/src/freedreno/ir3/ir3_shader.c
+++ b/src/freedreno/ir3/ir3_shader.c
@@ -36,6 +36,8 @@
 #include "ir3_compiler.h"
 #include "ir3_nir.h"
 
+#include "isa/isa.h"
+
 #include "disasm.h"
 
 int
@@ -144,7 +146,7 @@ void * ir3_shader_assemble(struct ir3_shader_variant *v)
 	 */
 	info->size = align(info->size, compiler->instr_align * sizeof(instr_t));
 
-	bin = ir3_assemble(v);
+	bin = isa_assemble(v);
 	if (!bin)
 		return NULL;
 
@@ -613,7 +615,11 @@ ir3_shader_disasm(struct ir3_shader_variant *so, uint32_t *bin, FILE *out)
 				const_state->immediates[i * 4 + 3]);
 	}
 
-	disasm_a3xx(bin, so->info.sizedwords, 0, out, ir->compiler->gpu_id);
+	isa_decode(bin, so->info.sizedwords * 4, out, &(struct isa_decode_options){
+		.gpu_id = ir->compiler->gpu_id,
+		.show_errors = true,
+		.branch_labels = true,
+	});
 
 	fprintf(out, "; %s: outputs:", type);
 	for (i = 0; i < so->outputs_count; i++) {
diff --git a/src/freedreno/ir3/meson.build b/src/freedreno/ir3/meson.build
index 35884b8c758..534dd02b84d 100644
--- a/src/freedreno/ir3/meson.build
+++ b/src/freedreno/ir3/meson.build
@@ -112,6 +112,7 @@ libfreedreno_ir3 = static_library(
   include_directories : [inc_freedreno, inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
   c_args : [no_override_init_args],
   gnu_symbol_visibility : 'hidden',
+  link_with: [libir3decode, libir3encode],
   dependencies : [idep_nir_headers, dep_dl, idep_mesautil],
   build_by_default : false,
 )



More information about the mesa-commit mailing list