panfrost: Pack vertex properties when compiling
[mesa.git] / src / gallium / drivers / panfrost / pan_resource.h
index 8f801473a0bdad9799eb616d905a229763595c16..009f13c0f86afe2e76962fe15ef6c934bf1fbae0 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef PAN_RESOURCE_H
 #define PAN_RESOURCE_H
 
-#include <panfrost-job.h>
+#include <midgard_pack.h>
 #include "pan_screen.h"
 #include "pan_pool.h"
 #include "pan_minmax_cache.h"
@@ -58,17 +58,17 @@ struct panfrost_resource {
         /* Distance from tree to tree */
         unsigned cubemap_stride;
 
-        /* Internal layout (tiled?) */
-        enum mali_texture_layout layout;
+        /* DRM fourcc code: linear, 16x16 u-interleaved, AFBC */
+        uint64_t modifier;
 
-        /* Whether the layout can be changed */
-        bool layout_constant;
+        /* Whether the modifier can be changed */
+        bool modifier_constant;
 
         /* Is transaciton elimination enabled? */
         bool checksummed;
 
-        /* Used to decide when to convert to another layout */
-        uint16_t layout_updates;
+        /* Used to decide when to convert to another modifier */
+        uint16_t modifier_updates;
 
         enum pipe_format internal_format;
 
@@ -85,6 +85,10 @@ pan_resource(struct pipe_resource *p)
 struct panfrost_gtransfer {
         struct pipe_transfer base;
         void *map;
+        struct {
+                struct pipe_resource *rsrc;
+                struct pipe_box box;
+        } staging;
 };
 
 static inline struct panfrost_gtransfer *
@@ -102,13 +106,6 @@ void panfrost_resource_screen_init(struct pipe_screen *screen);
 
 void panfrost_resource_context_init(struct pipe_context *pctx);
 
-void
-panfrost_resource_hint_layout(
-                struct panfrost_device *dev,
-                struct panfrost_resource *rsrc,
-                enum mali_texture_layout layout,
-                signed weight);
-
 /* Blitting */
 
 void
@@ -125,26 +122,26 @@ panfrost_resource_set_damage_region(struct pipe_screen *screen,
                                     unsigned int nrects,
                                     const struct pipe_box *rects);
 
-static inline enum mali_texture_type
-panfrost_translate_texture_type(enum pipe_texture_target t) {
+static inline enum mali_texture_dimension
+panfrost_translate_texture_dimension(enum pipe_texture_target t) {
         switch (t)
         {
         case PIPE_BUFFER:
         case PIPE_TEXTURE_1D:
         case PIPE_TEXTURE_1D_ARRAY:
-                return MALI_TEX_1D;
+                return MALI_TEXTURE_DIMENSION_1D;
 
         case PIPE_TEXTURE_2D:
         case PIPE_TEXTURE_2D_ARRAY:
         case PIPE_TEXTURE_RECT:
-                return MALI_TEX_2D;
+                return MALI_TEXTURE_DIMENSION_2D;
 
         case PIPE_TEXTURE_3D:
-                return MALI_TEX_3D;
+                return MALI_TEXTURE_DIMENSION_3D;
 
         case PIPE_TEXTURE_CUBE:
         case PIPE_TEXTURE_CUBE_ARRAY:
-                return MALI_TEX_CUBE;
+                return MALI_TEXTURE_DIMENSION_CUBE;
 
         default:
                 unreachable("Unknown target");