#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);
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;
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)
{
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);
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