v3d: set instance id to 0 at start of tile
[mesa.git] / src / gallium / drivers / v3d / v3d_context.h
index e3a5be5fea2fce3f8d6a3651bdd9a431839d0da7..74df773ca9adc13f664367e9bccdb01fb72268eb 100644 (file)
@@ -40,6 +40,8 @@
 #include "v3d_screen.h"
 #include "broadcom/common/v3d_limits.h"
 
+#include "broadcom/simulator/v3d_simulator.h"
+
 struct v3d_job;
 struct v3d_bo;
 void v3d_job_add_bo(struct v3d_job *job, struct v3d_bo *bo);
@@ -519,6 +521,12 @@ struct v3d_context {
 
         bool active_queries;
 
+        /**
+         * If a compute job writes a resource read by a non-compute stage we
+         * should sync on the last compute job.
+         */
+        bool sync_on_last_compute_job;
+
         uint32_t tf_prims_generated;
         uint32_t prims_generated;
 
@@ -609,12 +617,6 @@ void v3d_program_init(struct pipe_context *pctx);
 void v3d_program_fini(struct pipe_context *pctx);
 void v3d_query_init(struct pipe_context *pctx);
 
-void v3d_simulator_init(struct v3d_screen *screen);
-void v3d_simulator_destroy(struct v3d_screen *screen);
-uint32_t v3d_simulator_get_spill(uint32_t spill_size);
-int v3d_simulator_ioctl(int fd, unsigned long request, void *arg);
-void v3d_simulator_open_from_handle(int fd, int handle, uint32_t size);
-
 static inline int
 v3d_ioctl(int fd, unsigned long request, void *arg)
 {
@@ -653,10 +655,12 @@ void v3d_job_submit(struct v3d_context *v3d, struct v3d_job *job);
 void v3d_flush_jobs_using_bo(struct v3d_context *v3d, struct v3d_bo *bo);
 void v3d_flush_jobs_writing_resource(struct v3d_context *v3d,
                                      struct pipe_resource *prsc,
-                                     enum v3d_flush_cond flush_cond);
+                                     enum v3d_flush_cond flush_cond,
+                                     bool is_compute_pipeline);
 void v3d_flush_jobs_reading_resource(struct v3d_context *v3d,
                                      struct pipe_resource *prsc,
-                                     enum v3d_flush_cond flush_cond);
+                                     enum v3d_flush_cond flush_cond,
+                                     bool is_compute_pipeline);
 void v3d_update_compiled_shaders(struct v3d_context *v3d, uint8_t prim_mode);
 void v3d_update_compiled_cs(struct v3d_context *v3d);
 
@@ -695,6 +699,10 @@ struct v3d_fence *v3d_fence_create(struct v3d_context *v3d);
 
 void v3d_update_primitive_counters(struct v3d_context *v3d);
 
+bool v3d_line_smoothing_enabled(struct v3d_context *v3d);
+
+float v3d_get_real_line_width(struct v3d_context *v3d);
+
 #ifdef v3dX
 #  include "v3dx_context.h"
 #else