panfrost: Drop Gallium-local pan_bo_create wrapper
[mesa.git] / src / gallium / drivers / panfrost / pan_resource.h
index 9f8c2890b32d17b4a691b2c7c157e2d408afaeb4..209a6c185cc8d6c72c53bb24c1a051ccd7341283 100644 (file)
@@ -34,6 +34,8 @@
 #include "drm-uapi/drm.h"
 #include "util/u_range.h"
 
+#define LAYOUT_CONVERT_THRESHOLD 8
+
 struct panfrost_resource {
         struct pipe_resource base;
         struct {
@@ -57,9 +59,15 @@ struct panfrost_resource {
         /* Internal layout (tiled?) */
         enum mali_texture_layout layout;
 
+        /* Whether the layout can be changed */
+        bool layout_constant;
+
         /* Is transaciton elimination enabled? */
         bool checksummed;
 
+        /* Used to decide when to convert to another layout */
+        uint16_t layout_updates;
+
         enum pipe_format internal_format;
 
         /* Cached min/max values for index buffers */
@@ -86,15 +94,15 @@ pan_transfer(struct pipe_transfer *p)
 mali_ptr
 panfrost_get_texture_address(
         struct panfrost_resource *rsrc,
-        unsigned level, unsigned face);
+        unsigned level, unsigned face, unsigned sample);
 
-void panfrost_resource_screen_init(struct panfrost_screen *screen);
+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_screen *screen,
+                struct panfrost_device *dev,
                 struct panfrost_resource *rsrc,
                 enum mali_texture_layout layout,
                 signed weight);