+enum v3d_sampler_state_variant {
+ V3D_SAMPLER_STATE_BORDER_0,
+ V3D_SAMPLER_STATE_F16,
+ V3D_SAMPLER_STATE_F16_UNORM,
+ V3D_SAMPLER_STATE_F16_SNORM,
+ V3D_SAMPLER_STATE_F16_BGRA,
+ V3D_SAMPLER_STATE_F16_BGRA_UNORM,
+ V3D_SAMPLER_STATE_F16_BGRA_SNORM,
+ V3D_SAMPLER_STATE_F16_A,
+ V3D_SAMPLER_STATE_F16_A_SNORM,
+ V3D_SAMPLER_STATE_F16_A_UNORM,
+ V3D_SAMPLER_STATE_F16_LA,
+ V3D_SAMPLER_STATE_F16_LA_UNORM,
+ V3D_SAMPLER_STATE_F16_LA_SNORM,
+ V3D_SAMPLER_STATE_32,
+ V3D_SAMPLER_STATE_32_UNORM,
+ V3D_SAMPLER_STATE_32_SNORM,
+ V3D_SAMPLER_STATE_32_A,
+ V3D_SAMPLER_STATE_32_A_UNORM,
+ V3D_SAMPLER_STATE_32_A_SNORM,
+ V3D_SAMPLER_STATE_1010102U,
+ V3D_SAMPLER_STATE_16U,
+ V3D_SAMPLER_STATE_16I,
+ V3D_SAMPLER_STATE_8I,
+ V3D_SAMPLER_STATE_8U,
+
+ V3D_SAMPLER_STATE_VARIANT_COUNT,
+};
+
+enum v3d_flush_cond {
+ /* Flush job unless we are flushing for transform feedback, where we
+ * handle flushing in the driver via the 'Wait for TF' packet.
+ */
+ V3D_FLUSH_DEFAULT,
+ /* Always flush the job, even for cases where we would normally not
+ * do it, such as transform feedback.
+ */
+ V3D_FLUSH_ALWAYS,
+ /* Flush job if it is not the current FBO job. This is intended to
+ * skip automatic flushes of the current job for resources that we
+ * expect to be externally synchronized by the application using
+ * glMemoryBarrier(), such as SSBOs and shader images.
+ */
+ V3D_FLUSH_NOT_CURRENT_JOB,
+};
+