v3d: add a helper to check if transform feedback is enabled
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 19 Jun 2019 08:23:43 +0000 (10:23 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Fri, 21 Jun 2019 06:06:13 +0000 (08:06 +0200)
v2: We should be safe assuming that bind_vs != NULL (Eric)

Reviewed-by: Eric Anholt <eric@anholt.net>
src/gallium/drivers/v3d/v3d_context.h
src/gallium/drivers/v3d/v3dx_emit.c

index 3ab227afb6c9fe2f5eff1f7ac24c4169538e7fb8..21db9997c90de7d3aa38226977d89138bf26ab16 100644 (file)
@@ -569,6 +569,13 @@ v3d_ioctl(int fd, unsigned long request, void *arg)
                 return drmIoctl(fd, request, arg);
 }
 
+static inline bool
+v3d_transform_feedback_enabled(struct v3d_context *v3d)
+{
+        return v3d->prog.bind_vs->num_tf_specs != 0 &&
+               v3d->active_queries;
+}
+
 void v3d_set_shader_uniform_dirty_flags(struct v3d_compiled_shader *shader);
 struct v3d_cl_reloc v3d_write_uniforms(struct v3d_context *v3d,
                                        struct v3d_compiled_shader *shader,
index 2063f5e1162a0cb0ae89d54bdaf68b0eb69f1089..c54e63f7efe7c214c713a42cf7d83d26b7c0673c 100644 (file)
@@ -701,8 +701,7 @@ v3dX(emit_state)(struct pipe_context *pctx)
                                               v3d->prog.bind_vs->tf_specs);
 
 #if V3D_VERSION >= 40
-                        bool tf_enabled = (v3d->prog.bind_vs->num_tf_specs != 0 &&
-                                           v3d->active_queries);
+                        bool tf_enabled = v3d_transform_feedback_enabled(v3d);
                         job->tf_enabled |= tf_enabled;
 
                         cl_emit(&job->bcl, TRANSFORM_FEEDBACK_SPECS, tfe) {