#include "brw_state.h"
+static char const *get_qual_name(int mode)
+{
+ switch (mode) {
+ case INTERP_QUALIFIER_NONE: return "none";
+ case INTERP_QUALIFIER_FLAT: return "flat";
+ case INTERP_QUALIFIER_SMOOTH: return "smooth";
+ case INTERP_QUALIFIER_NOPERSPECTIVE: return "nopersp";
+ default: return "???";
+ }
+}
+
/* Set up interpolation modes for every element in the VUE */
static void
memset(&brw->interpolation_mode, INTERP_QUALIFIER_NONE, sizeof(brw->interpolation_mode));
- brw->state.dirty.brw |= BRW_NEW_INTERPOLATION_MAP;
+ brw->ctx.NewDriverState |= BRW_NEW_INTERPOLATION_MAP;
if (!fprog)
return;
brw->interpolation_mode.mode[i] = mode;
}
+
+ if (unlikely(INTEL_DEBUG & DEBUG_VUE)) {
+ fprintf(stderr, "VUE map:\n");
+ for (int i = 0; i < vue_map->num_slots; i++) {
+ int varying = vue_map->slot_to_varying[i];
+ if (varying == -1) {
+ fprintf(stderr, "%d: --\n", i);
+ continue;
+ }
+
+ fprintf(stderr, "%d: %d %s ofs %d\n",
+ i, varying,
+ get_qual_name(brw->interpolation_mode.mode[i]),
+ brw_vue_slot_to_offset(i));
+ }
+ }
}
const struct brw_tracked_state brw_interpolation_map = {
.dirty = {
.mesa = _NEW_LIGHT,
- .brw = (BRW_NEW_FRAGMENT_PROGRAM |
- BRW_NEW_VUE_MAP_GEOM_OUT)
+ .brw = BRW_NEW_FRAGMENT_PROGRAM |
+ BRW_NEW_VUE_MAP_GEOM_OUT,
},
.emit = brw_setup_vue_interpolation
};