pan/indirect_dispatch: Simplify empty command case

Job type is alone with bitsize in the bottom byte of the addressed
worse, so if we use an 8-bit store we avoid the RMW complexity.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123>
This commit is contained in:
Alyssa Rosenzweig 2021-06-09 12:00:20 -04:00 committed by Marge Bot
parent 52991aad7f
commit a90345d4c8

View file

@ -178,11 +178,9 @@ pan_indirect_dispatch_init(struct panfrost_device *dev)
nir_push_if(&b, nir_ieq(&b, num_wg_flat, zero));
{
nir_ssa_def *job_type_ptr = nir_iadd(&b, job_hdr_ptr, nir_imm_int64(&b, 4 * 4));
nir_ssa_def *w4 = nir_load_global(&b, job_type_ptr, 4, 1, 32);
w4 = nir_iand_imm(&b, w4, ~0xfe);
w4 = nir_ior(&b, w4, nir_imm_int(&b, MALI_JOB_TYPE_NULL << 1));
nir_store_global(&b, job_type_ptr, 4, w4, 1);
nir_ssa_def *type_ptr = nir_iadd(&b, job_hdr_ptr, nir_imm_int64(&b, 4 * 4));
nir_ssa_def *ntype = nir_imm_intN_t(&b, (MALI_JOB_TYPE_NULL << 1) | 1, 8);
nir_store_global(&b, type_ptr, 1, ntype, 1);
}
nir_push_else(&b, NULL);
{