diff --git a/src/panfrost/genxml/decode.h b/src/panfrost/genxml/decode.h index bc9f743f9b7..47fe28f798f 100644 --- a/src/panfrost/genxml/decode.h +++ b/src/panfrost/genxml/decode.h @@ -132,6 +132,13 @@ void pandecode_cs_binary_v13(struct pandecode_context *ctx, uint64_t bin, void pandecode_cs_trace_v13(struct pandecode_context *ctx, uint64_t trace, uint32_t trace_size, uint64_t gpu_id); +void pandecode_interpret_cs_v14(struct pandecode_context *ctx, uint64_t queue, + uint32_t size, uint64_t gpu_id, uint32_t *regs); +void pandecode_cs_binary_v14(struct pandecode_context *ctx, uint64_t bin, + uint32_t bin_size); +void pandecode_cs_trace_v14(struct pandecode_context *ctx, uint64_t trace, + uint32_t trace_size, uint64_t gpu_id); + /* Logging infrastructure */ static void pandecode_make_indent(struct pandecode_context *ctx) diff --git a/src/panfrost/genxml/decode_common.c b/src/panfrost/genxml/decode_common.c index 208d28a8cb5..399fec9f335 100644 --- a/src/panfrost/genxml/decode_common.c +++ b/src/panfrost/genxml/decode_common.c @@ -423,6 +423,9 @@ pandecode_interpret_cs(struct pandecode_context *ctx, uint64_t queue_gpu_va, case 13: pandecode_interpret_cs_v13(ctx, queue_gpu_va, size, gpu_id, regs); break; + case 14: + pandecode_interpret_cs_v14(ctx, queue_gpu_va, size, gpu_id, regs); + break; default: UNREACHABLE("Unsupported architecture"); } @@ -446,6 +449,9 @@ pandecode_cs_binary(struct pandecode_context *ctx, uint64_t bin_gpu_va, case 13: pandecode_cs_binary_v13(ctx, bin_gpu_va, size); break; + case 14: + pandecode_cs_binary_v14(ctx, bin_gpu_va, size); + break; default: UNREACHABLE("Unsupported architecture"); } @@ -469,6 +475,9 @@ pandecode_cs_trace(struct pandecode_context *ctx, uint64_t trace_gpu_va, case 13: pandecode_cs_trace_v13(ctx, trace_gpu_va, size, gpu_id); break; + case 14: + pandecode_cs_trace_v14(ctx, trace_gpu_va, size, gpu_id); + break; default: UNREACHABLE("Unsupported architecture"); } diff --git a/src/panfrost/genxml/meson.build b/src/panfrost/genxml/meson.build index c60cc0c777d..ee4b4adea3f 100644 --- a/src/panfrost/genxml/meson.build +++ b/src/panfrost/genxml/meson.build @@ -20,7 +20,7 @@ idep_pan_packers = declare_dependency( libpanfrost_decode_per_arch = [] -foreach ver : ['4', '5', '6', '7', '9', '10', '12', '13'] +foreach ver : ['4', '5', '6', '7', '9', '10', '12', '13', '14'] libpanfrost_decode_per_arch += static_library( 'pandecode-arch-v' + ver, ['decode.c', 'decode_jm.c', 'decode_csf.c', pan_packers], diff --git a/src/panfrost/lib/pan_format.h b/src/panfrost/lib/pan_format.h index 7c641c24105..08e26f79000 100644 --- a/src/panfrost/lib/pan_format.h +++ b/src/panfrost/lib/pan_format.h @@ -168,6 +168,8 @@ extern const struct pan_blendable_format pan_blendable_formats_v12[PIPE_FORMAT_COUNT]; extern const struct pan_blendable_format pan_blendable_formats_v13[PIPE_FORMAT_COUNT]; +extern const struct pan_blendable_format + pan_blendable_formats_v14[PIPE_FORMAT_COUNT]; uint8_t pan_raw_format_mask_midgard(enum pipe_format *formats); @@ -199,6 +201,7 @@ extern const struct pan_format pan_pipe_format_v9[PIPE_FORMAT_COUNT]; extern const struct pan_format pan_pipe_format_v10[PIPE_FORMAT_COUNT]; extern const struct pan_format pan_pipe_format_v12[PIPE_FORMAT_COUNT]; extern const struct pan_format pan_pipe_format_v13[PIPE_FORMAT_COUNT]; +extern const struct pan_format pan_pipe_format_v14[PIPE_FORMAT_COUNT]; static inline const struct pan_format * pan_format_table(unsigned arch)