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>