panfrost: Add MALI_ATTR_IMAGE value
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 31 Jul 2019 00:27:03 +0000 (17:27 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 31 Jul 2019 17:56:11 +0000 (10:56 -0700)
Images are implemented (in part) as special attributes, so include
support for decoding this.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/include/panfrost-job.h
src/panfrost/pandecode/decode.c

index b7312a60720ea26cfa139a6e678b5b1cf25bf3a8..1f9fbafbe084321936c3f57d59d46c026edd068c 100644 (file)
@@ -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
index fb48087cddb9d32978c034bd97d4ba08fe760bc7..f8942b0ec18828b2f05b1b459a9119c0fb9efc6d 100644 (file)
@@ -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 */";
         }