return nir_variable_is_in_ubo(var) || nir_variable_is_in_ssbo(var);
}
+/* See default_ub_config in nir_range_analysis.c for documentation. */
typedef struct nir_unsigned_upper_bound_config {
unsigned min_subgroup_size;
unsigned max_subgroup_size;
.min_subgroup_size = 1u,
.max_subgroup_size = UINT16_MAX,
.max_workgroup_invocations = UINT16_MAX,
- .max_workgroup_count = {UINT16_MAX, UINT16_MAX, UINT16_MAX},
+
+ /* max_workgroup_count represents the maximum compute shader / kernel
+ * dispatchable work size. On most hardware, this is essentially
+ * unbounded. On some hardware max_workgroup_count[1] and
+ * max_workgroup_count[2] may be smaller.
+ */
+ .max_workgroup_count = {UINT32_MAX, UINT32_MAX, UINT32_MAX},
+
+ /* max_workgroup_size is the local invocation maximum. This is generally
+ * small the OpenGL 4.2 minimum maximum is 1024.
+ */
.max_workgroup_size = {UINT16_MAX, UINT16_MAX, UINT16_MAX},
+
.vertex_attrib_max = {
UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX,
UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX, UINT32_MAX,