panfrost: Lower MAX_BLOCK_SIZE on Midgard

To match PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK, having it be higher in any
dimension is nonsensical and can confuse apps. Fixes tests in
KHR-GLES31.core.texture_buffer.* on Mali-T860.

Fixes: 9b19104a30 ("pan/mdg: Lower PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK on Midgard")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19238>
(cherry picked from commit 027ee6c9e9)
This commit is contained in:
Alyssa Rosenzweig
2022-10-21 16:38:38 -04:00
committed by Dylan Baker
parent 0add4f1f1a
commit f1f856c2fd
2 changed files with 11 additions and 4 deletions

View File

@@ -2398,7 +2398,7 @@
"description": "panfrost: Lower MAX_BLOCK_SIZE on Midgard",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "9b19104a30bba35c4025833d5022c8ddc6c1ccd0"
},

View File

@@ -692,9 +692,16 @@ panfrost_get_compute_param(struct pipe_screen *pscreen, enum pipe_shader_ir ir_t
case PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE:
/* Unpredictable behaviour at larger sizes. Mali-G52 advertises
* 384x384x384. The smaller size is advertised by Mali-T628,
* use min until we have a need to key by arch */
RET(((uint64_t []) { 256, 256, 256 }));
* 384x384x384.
*
* On Midgard, we don't allow more than 128 threads in each
* direction to match PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK.
* That still exceeds the minimum-maximum.
*/
if (dev->arch >= 6)
RET(((uint64_t []) { 256, 256, 256 }));
else
RET(((uint64_t []) { 128, 128, 128 }));
case PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK:
/* On Bifrost and newer, all GPUs can support at least 256 threads