panfrost: Move vertex/tiler payload initialization out of panfrost_draw_vbo()
[mesa.git] / src / gallium / drivers / panfrost / pan_cmdstream.h
index a9efca75e506ce46c4395c413f414d96d77f2f48..0d35de70f90198757756566c6ec5460995ac51ed 100644 (file)
 #define __PAN_CMDSTREAM_H__
 
 #include "pipe/p_defines.h"
+#include "pipe/p_state.h"
 
 #include "panfrost-job.h"
 
 #include "pan_job.h"
 
+void panfrost_sampler_desc_init(const struct pipe_sampler_state *cso,
+                                struct mali_sampler_descriptor *hw);
+
+void
+panfrost_vt_attach_framebuffer(struct panfrost_context *ctx,
+                               struct midgard_payload_vertex_tiler *vt);
+
+void
+panfrost_vt_update_rasterizer(struct panfrost_context *ctx,
+                              struct midgard_payload_vertex_tiler *tp);
+
+void
+panfrost_vt_update_occlusion_query(struct panfrost_context *ctx,
+                                   struct midgard_payload_vertex_tiler *tp);
+
+void
+panfrost_vt_set_draw_info(struct panfrost_context *ctx,
+                          const struct pipe_draw_info *info,
+                          enum mali_draw_mode draw_mode,
+                          struct midgard_payload_vertex_tiler *vp,
+                          struct midgard_payload_vertex_tiler *tp,
+                          unsigned *vertex_count,
+                          unsigned *padded_count);
+
+void
+panfrost_emit_shader_meta(struct panfrost_batch *batch,
+                          enum pipe_shader_type st,
+                          struct midgard_payload_vertex_tiler *vtp);
+
 void
 panfrost_emit_viewport(struct panfrost_batch *batch,
                        struct midgard_payload_vertex_tiler *tp);
@@ -40,4 +70,28 @@ panfrost_emit_const_buf(struct panfrost_batch *batch,
                         enum pipe_shader_type stage,
                         struct midgard_payload_vertex_tiler *vtp);
 
+void
+panfrost_emit_shared_memory(struct panfrost_batch *batch,
+                            const struct pipe_grid_info *info,
+                            struct midgard_payload_vertex_tiler *vtp);
+
+void
+panfrost_emit_texture_descriptors(struct panfrost_batch *batch,
+                                  enum pipe_shader_type stage,
+                                  struct midgard_payload_vertex_tiler *vtp);
+
+void
+panfrost_emit_sampler_descriptors(struct panfrost_batch *batch,
+                                  enum pipe_shader_type stage,
+                                  struct midgard_payload_vertex_tiler *vtp);
+
+void
+panfrost_emit_vertex_attr_meta(struct panfrost_batch *batch,
+                               struct midgard_payload_vertex_tiler *vp);
+
+void
+panfrost_emit_vertex_tiler_jobs(struct panfrost_batch *batch,
+                                struct midgard_payload_vertex_tiler *vp,
+                                struct midgard_payload_vertex_tiler *tp);
+
 #endif /* __PAN_CMDSTREAM_H__ */