From a65aab411f6734fba6dff5a989e35b35cec52d32 Mon Sep 17 00:00:00 2001 From: Lang Yu Date: Sat, 21 Oct 2023 09:58:50 +0800 Subject: [PATCH] amd/radeonsi: add missing stuff for gfx11.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lang Yu Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/meson.build | 2 +- src/gallium/drivers/radeonsi/si_pipe.c | 3 +++ src/gallium/drivers/radeonsi/si_sdma_copy_image.c | 1 + src/gallium/drivers/radeonsi/si_state.h | 1 + src/gallium/drivers/radeonsi/si_state_draw.cpp | 8 ++++++++ src/gallium/drivers/radeonsi/si_texture.c | 1 + 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/meson.build b/src/gallium/drivers/radeonsi/meson.build index 6232f29ce8e..28f0afc8f57 100644 --- a/src/gallium/drivers/radeonsi/meson.build +++ b/src/gallium/drivers/radeonsi/meson.build @@ -132,7 +132,7 @@ endif files_libradeonsi += ['si_perfetto.cpp', 'si_perfetto.h'] radeonsi_gfx_libs = [] -foreach ver : ['6', '7', '8', '9', '10', '103', '11'] +foreach ver : ['6', '7', '8', '9', '10', '103', '11', '115'] radeonsi_gfx_libs += static_library( 'radeonsi_gfx@0@'.format(ver), ['si_state_draw.cpp'], diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 2c6aac99fc7..6979c87458b 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -693,6 +693,9 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign case GFX11: si_init_draw_functions_GFX11(sctx); break; + case GFX11_5: + si_init_draw_functions_GFX11_5(sctx); + break; default: unreachable("unhandled gfx level"); } diff --git a/src/gallium/drivers/radeonsi/si_sdma_copy_image.c b/src/gallium/drivers/radeonsi/si_sdma_copy_image.c index b42d1e40afb..e0e282a4d2f 100644 --- a/src/gallium/drivers/radeonsi/si_sdma_copy_image.c +++ b/src/gallium/drivers/radeonsi/si_sdma_copy_image.c @@ -408,6 +408,7 @@ bool si_sdma_copy_image(struct si_context *sctx, struct si_texture *dst, struct case GFX10: case GFX10_3: case GFX11: + case GFX11_5: if (!si_sdma_v4_v5_copy_texture(sctx, dst, src)) return false; break; diff --git a/src/gallium/drivers/radeonsi/si_state.h b/src/gallium/drivers/radeonsi/si_state.h index 10813c7aea1..842cc44a867 100644 --- a/src/gallium/drivers/radeonsi/si_state.h +++ b/src/gallium/drivers/radeonsi/si_state.h @@ -644,6 +644,7 @@ void si_init_draw_functions_GFX9(struct si_context *sctx); void si_init_draw_functions_GFX10(struct si_context *sctx); void si_init_draw_functions_GFX10_3(struct si_context *sctx); void si_init_draw_functions_GFX11(struct si_context *sctx); +void si_init_draw_functions_GFX11_5(struct si_context *sctx); /* si_state_msaa.c */ void si_init_msaa_functions(struct si_context *sctx); diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp index 577699998fa..9b9858091a2 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.cpp +++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp @@ -31,6 +31,8 @@ #define GFX(name) name##GFX10_3 #elif (GFX_VER == 11) #define GFX(name) name##GFX11 +#elif (GFX_VER == 115) +#define GFX(name) name##GFX11_5 #else #error "Unknown gfx level" #endif @@ -554,6 +556,9 @@ void si_cp_dma_prefetch(struct si_context *sctx, struct pipe_resource *buf, case GFX11: si_cp_dma_prefetch_inline(sctx, address, size); break; + case GFX11_5: + si_cp_dma_prefetch_inline(sctx, address, size); + break; default: break; } @@ -1682,6 +1687,9 @@ void si_set_vertex_buffer_descriptor(struct si_screen *sscreen, struct si_vertex case GFX11: si_set_vb_descriptor(velems, vb, element_index, out); break; + case GFX11_5: + si_set_vb_descriptor(velems, vb, element_index, out); + break; default: unreachable("unhandled gfx level"); } diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c index 6f9fc2d6bf6..16948db41a7 100644 --- a/src/gallium/drivers/radeonsi/si_texture.c +++ b/src/gallium/drivers/radeonsi/si_texture.c @@ -291,6 +291,7 @@ static int si_init_surface(struct si_screen *sscreen, struct radeon_surf *surfac break; case GFX11: + case GFX11_5: break; default: