Hi<div><br></div><div>I've tested this with Middle-Earth Shadow of Mordor on my Tonga based M395X</div><div><br></div><div>Feel free to add my tested by if it's worth anything</div><div><br></div><div>Cheers</div><div><br></div><div>Mike<br><br><div class="gmail_quote"><div dir="ltr">On Wed, 13 Apr 2016, 8:30 p.m. Bas Nieuwenhuizen, <<a href="mailto:bas@basnieuwenhuizen.nl">bas@basnieuwenhuizen.nl</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">v2: Use chip_class instead of family.<br>
<br>
Signed-off-by: Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl" target="_blank">bas@basnieuwenhuizen.nl</a>><br>
Reviewed-by: Nicolai Hähnle <<a href="mailto:nicolai.haehnle@amd.com" target="_blank">nicolai.haehnle@amd.com</a>><br>
---<br>
 docs/GL3.txt                                  |  4 ++--<br>
 docs/relnotes/11.3.0.html                     |  1 +<br>
 src/gallium/drivers/radeon/r600_pipe_common.c | 21 ++++++++++++++++-----<br>
 src/gallium/drivers/radeonsi/si_pipe.c        |  3 ++-<br>
 4 files changed, 21 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/docs/GL3.txt b/docs/GL3.txt<br>
index dc75cf8..6b5e016 100644<br>
--- a/docs/GL3.txt<br>
+++ b/docs/GL3.txt<br>
@@ -167,7 +167,7 @@ GL 4.3, GLSL 4.30:<br>
   GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)<br>
   GL_ARB_ES3_compatibility                              DONE (all drivers that support GLSL 3.30)<br>
   GL_ARB_clear_buffer_object                            DONE (all drivers)<br>
-  GL_ARB_compute_shader                                 DONE (i965)<br>
+  GL_ARB_compute_shader                                 DONE (i965, radeonsi)<br>
   GL_ARB_copy_image                                     DONE (i965, nv50, nvc0, r600, radeonsi)<br>
   GL_KHR_debug                                          DONE (all drivers)<br>
   GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)<br>
@@ -225,7 +225,7 @@ GL 4.5, GLSL 4.50:<br>
 These are the extensions cherry-picked to make GLES 3.1<br>
 GLES3.1, GLSL ES 3.1<br>
   GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)<br>
-  GL_ARB_compute_shader                                 DONE (i965)<br>
+  GL_ARB_compute_shader                                 DONE (i965, radeonsi)<br>
   GL_ARB_draw_indirect                                  DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)<br>
   GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)<br>
   GL_ARB_framebuffer_no_attachments                     DONE (i965, nvc0, r600, radeonsi, softpipe)<br>
diff --git a/docs/relnotes/11.3.0.html b/docs/relnotes/11.3.0.html<br>
index 0f9aed8..5a7083c 100644<br>
--- a/docs/relnotes/11.3.0.html<br>
+++ b/docs/relnotes/11.3.0.html<br>
@@ -45,6 +45,7 @@ Note: some of the new features are only available with certain drivers.<br>
<br>
 <ul><br>
 <li>OpenGL 4.2 on radeonsi</li><br>
+<li>GL_ARB_compute_shader on radeonsi</li><br>
 <li>GL_ARB_framebuffer_no_attachments on nvc0, r600, radeonsi, softpipe</li><br>
 <li>GL_ARB_internalformat_query2 on all drivers</li><br>
 <li>GL_ARB_robust_buffer_access_behavior on radeonsi</li><br>
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c<br>
index a7477ab..64da62f 100644<br>
--- a/src/gallium/drivers/radeon/r600_pipe_common.c<br>
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c<br>
@@ -645,23 +645,34 @@ static int r600_get_compute_param(struct pipe_screen *screen,<br>
                        uint64_t *grid_size = ret;<br>
                        grid_size[0] = 65535;<br>
                        grid_size[1] = 65535;<br>
-                       grid_size[2] = 1;<br>
+                       grid_size[2] = 65535;<br>
                }<br>
                return 3 * sizeof(uint64_t) ;<br>
<br>
        case PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE:<br>
                if (ret) {<br>
                        uint64_t *block_size = ret;<br>
-                       block_size[0] = 256;<br>
-                       block_size[1] = 256;<br>
-                       block_size[2] = 256;<br>
+                       if (rscreen->chip_class >= SI && HAVE_LLVM >= 0x309 &&<br>
+                           ir_type == PIPE_SHADER_IR_TGSI) {<br>
+                               block_size[0] = 2048;<br>
+                               block_size[1] = 2048;<br>
+                               block_size[2] = 2048;<br>
+                       } else {<br>
+                               block_size[0] = 256;<br>
+                               block_size[1] = 256;<br>
+                               block_size[2] = 256;<br>
+                       }<br>
                }<br>
                return 3 * sizeof(uint64_t);<br>
<br>
        case PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK:<br>
                if (ret) {<br>
                        uint64_t *max_threads_per_block = ret;<br>
-                       *max_threads_per_block = 256;<br>
+                       if (rscreen->chip_class >= SI && HAVE_LLVM >= 0x309 &&<br>
+                           ir_type == PIPE_SHADER_IR_TGSI)<br>
+                               *max_threads_per_block = 2048;<br>
+                       else<br>
+                               *max_threads_per_block = 256;<br>
                }<br>
                return sizeof(uint64_t);<br>
<br>
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c<br>
index 8db8ca6..d169469 100644<br>
--- a/src/gallium/drivers/radeonsi/si_pipe.c<br>
+++ b/src/gallium/drivers/radeonsi/si_pipe.c<br>
@@ -464,7 +464,8 @@ static int si_get_shader_param(struct pipe_screen* pscreen, unsigned shader, enu<br>
                        return PIPE_SHADER_IR_NATIVE;<br>
<br>
                case PIPE_SHADER_CAP_SUPPORTED_IRS:<br>
-                       return 0;<br>
+                       return (HAVE_LLVM >= 0x309 ? 1 << PIPE_SHADER_IR_TGSI : 0) |<br>
+                              (1 << PIPE_SHADER_IR_NATIVE);<br>
<br>
                case PIPE_SHADER_CAP_DOUBLES:<br>
                        return HAVE_LLVM >= 0x0307;<br>
--<br>
2.8.0<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div></div>