summaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-07-30 17:27:03 -0700
committerAlyssa Rosenzweig <[email protected]>2019-07-31 10:56:11 -0700
commita692126c935d6f7e2d0ae75190b5cd99bd5ff553 (patch)
tree2319391748318522af2c63a7545468e38b38e8dc /src/panfrost
parentc47af8b95f26bd83efe322ff0baa52263fb8625e (diff)
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 <[email protected]>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/include/panfrost-job.h6
-rw-r--r--src/panfrost/pandecode/decode.c1
2 files changed, 7 insertions, 0 deletions
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 */";
}