radeonsi/gfx10: implement si_emit_global_shader_pointers
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 7 Feb 2019 17:53:27 +0000 (18:53 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 3 Jul 2019 19:51:13 +0000 (15:51 -0400)
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/gallium/drivers/radeonsi/si_descriptors.c

index 5a8c4acc53a94c45ee248f944c11cccfe8a5de68..a997bd4febf019ba8d1845bc8328f0a393c5a6dd 100644 (file)
@@ -2208,7 +2208,18 @@ static void si_emit_consecutive_shader_pointers(struct si_context *sctx,
 static void si_emit_global_shader_pointers(struct si_context *sctx,
                                           struct si_descriptors *descs)
 {
-       if (sctx->chip_class == GFX9) {
+       if (sctx->chip_class >= GFX10) {
+               si_emit_shader_pointer(sctx, descs,
+                                      R_00B030_SPI_SHADER_USER_DATA_PS_0);
+               /* HW VS stage only used in non-NGG mode. */
+               si_emit_shader_pointer(sctx, descs,
+                                      R_00B130_SPI_SHADER_USER_DATA_VS_0);
+               si_emit_shader_pointer(sctx, descs,
+                                      R_00B230_SPI_SHADER_USER_DATA_GS_0);
+               si_emit_shader_pointer(sctx, descs,
+                                      R_00B430_SPI_SHADER_USER_DATA_HS_0);
+               return;
+       } else if (sctx->chip_class == GFX9) {
                /* Broadcast it to all shader stages. */
                si_emit_shader_pointer(sctx, descs,
                                       R_00B530_SPI_SHADER_USER_DATA_COMMON_0);