panfrost: Create a new sampler view bo when the layout changes
[mesa.git] / src / gallium / drivers / panfrost / pan_context.h
index a4ea44a96b9b235506fee7007fd2da3a6a98749c..306429648904fa257476c43da8ff9d85a0ecc20e 100644 (file)
@@ -192,6 +192,7 @@ struct panfrost_shader_state {
         bool reads_point_coord;
         bool reads_face;
         bool reads_frag_coord;
+        bool writes_global;
         unsigned stack_size;
         unsigned shared_size;
 
@@ -203,7 +204,7 @@ struct panfrost_shader_state {
         enum bifrost_shader_type blend_types[BIFROST_MAX_RENDER_TARGET_COUNT];
 
         unsigned int varying_count;
-        struct mali_attr_meta varyings[PIPE_MAX_ATTRIBS];
+        enum mali_format varyings[PIPE_MAX_ATTRIBS];
         gl_varying_slot varyings_loc[PIPE_MAX_ATTRIBS];
         struct pipe_stream_output_info stream_output;
         uint64_t so_mask;
@@ -265,6 +266,7 @@ struct panfrost_sampler_view {
         struct panfrost_bo *midgard_bo;
         struct panfrost_bo *bifrost_bo;
         struct bifrost_texture_descriptor *bifrost_descriptor;
+        enum mali_texture_layout layout;
 };
 
 static inline struct panfrost_context *
@@ -333,6 +335,11 @@ panfrost_shader_compile(struct panfrost_context *ctx,
 unsigned
 panfrost_ubo_count(struct panfrost_context *ctx, enum pipe_shader_type stage);
 
+void
+panfrost_create_sampler_view_bo(struct panfrost_sampler_view *so,
+                                struct pipe_context *pctx,
+                                struct pipe_resource *texture);
+
 /* Instancing */
 
 mali_ptr