uint8_t *ra_reg_to_grf;
/**
- * ra class for the aligned pairs we use for PLN, which doesn't
+ * ra class for the aligned barycentrics we use for PLN, which doesn't
* appear in *classes.
*/
- int aligned_pairs_class;
+ int aligned_bary_class;
} fs_reg_sets[3];
void (*shader_debug_log)(void *, const char *str, ...) PRINTFLIKE(2, 3);
* whether nir_opt_large_constants will be run.
*/
bool supports_shader_constants;
+
+ /**
+ * Whether or not the driver wants uniform params to be compacted by the
+ * back-end compiler.
+ */
+ bool compact_params;
};
/**
unsigned program_size;
+ /** Does this program pull from any UBO or other constant buffers? */
+ bool has_ubo_pull;
+
/**
* Register where the thread expects to find input data from the URB
* (typically uniforms, followed by vertex or fragment attributes).
*/
uint32_t *param;
uint32_t *pull_param;
+
+ /* Whether shader uses atomic operations. */
+ bool uses_atomic_load_store;
};
static inline uint32_t *
bool dispatch_16;
bool dispatch_32;
bool dual_src_blend;
- bool replicate_alpha;
bool persample_dispatch;
bool uses_pos_offset;
bool uses_omask;
* For varying slots that are not used by the FS, the value is -1.
*/
int urb_setup[VARYING_SLOT_MAX];
+
+ /**
+ * Cache structure into the urb_setup array above that contains the
+ * attribute numbers of active varyings out of urb_setup.
+ * The actual count is stored in urb_setup_attribs_count.
+ */
+ uint8_t urb_setup_attribs[VARYING_SLOT_MAX];
+ uint8_t urb_setup_attribs_count;
};
/** Returns the SIMD width corresponding to a given KSP index
/** Number vertices in output patch */
int instances;
+
+ /** Track patch count threshold */
+ int patch_count_threshold;
};
* to do a full test run with brw_fs_test_dispatch_packing() hooked up to
* the NIR front-end before changing this assertion.
*/
- assert(devinfo->gen <= 11);
+ assert(devinfo->gen <= 12);
switch (stage) {
case MESA_SHADER_FRAGMENT: {