Module: Mesa
Branch: main
Commit: a65aab411f6734fba6dff5a989e35b35cec52d32
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a65aab411f6734fba6dff5a989e35b35cec52d32

Author: Lang Yu <[email protected]>
Date:   Sat Oct 21 09:58:50 2023 +0800

amd/radeonsi: add missing stuff for gfx11.5

Signed-off-by: Lang Yu <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25836>

---

 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<GFX11>(sctx, address, size);
       break;
+   case GFX11_5:
+      si_cp_dma_prefetch_inline<GFX11_5>(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<GFX11>(velems, vb, element_index, out);
       break;
+   case GFX11_5:
+      si_set_vb_descriptor<GFX11_5>(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:

Reply via email to