From: Alyssa Rosenzweig Date: Wed, 31 Jul 2019 00:27:03 +0000 (-0700) Subject: panfrost: Add MALI_ATTR_IMAGE value X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a692126c935d6f7e2d0ae75190b5cd99bd5ff553;p=mesa.git panfrost: Add MALI_ATTR_IMAGE value Images are implemented (in part) as special attributes, so include support for decoding this. Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h index b7312a60720..1f9fbafbe08 100644 --- a/src/panfrost/include/panfrost-job.h +++ b/src/panfrost/include/panfrost-job.h @@ -783,6 +783,11 @@ struct mali_payload_set_value { * 3. If e <= 2^shift, then we need to use the round-down algorithm. Set * magic_divisor = m - 1 and extra_flags = 1. * 4. Otherwise, set magic_divisor = m and extra_flags = 0. + * + * Unrelated to instancing/actual attributes, images (the OpenCL kind) are + * implemented as special attributes, denoted by MALI_ATTR_IMAGE. For images, + * let shift=extra_flags=0. Stride is set to the image format's bytes-per-pixel + * (*NOT the row stride*). Size is set to the size of the image itself. */ enum mali_attr_mode { @@ -791,6 +796,7 @@ enum mali_attr_mode { MALI_ATTR_POT_DIVIDE = 2, MALI_ATTR_MODULO = 3, MALI_ATTR_NPOT_DIVIDE = 4, + MALI_ATTR_IMAGE = 5 }; /* This magic "pseudo-address" is used as `elements` to implement diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c index fb48087cddb..f8942b0ec18 100644 --- a/src/panfrost/pandecode/decode.c +++ b/src/panfrost/pandecode/decode.c @@ -371,6 +371,7 @@ static char *pandecode_attr_mode(enum mali_attr_mode mode) DEFINE_CASE(POT_DIVIDE); DEFINE_CASE(MODULO); DEFINE_CASE(NPOT_DIVIDE); + DEFINE_CASE(IMAGE); default: return "MALI_ATTR_UNUSED /* XXX: Unknown stencil op, check dump */"; }