const GLuint *program;
void *mem_ctx;
GLuint program_size;
- GLuint delta;
GLuint i;
memset(&c, 0, sizeof(c));
brw_compute_vue_map(&c.vue_map, intel, c.key.nr_userclip,
c.key.do_twoside_color, c.key.attrs);
- /* Need to locate the two positions present in vertex + header.
- * These are currently hardcoded:
- */
- if (intel->gen == 5)
- c.header_regs = 3;
- else
- c.header_regs = 1;
-
- delta = c.header_regs * REG_SIZE;
-
- for (i = 0; i < VERT_RESULT_MAX; i++) {
- if (c.key.attrs & BITFIELD64_BIT(i)) {
- c.offset[i] = delta;
- delta += ATTR_SIZE;
-
- c.idx_to_attr[c.nr_attrs] = i;
- c.nr_attrs++;
- }
- }
-
/* nr_regs is the number of registers filled by reading data from the VUE.
* This program accesses the entire VUE, so nr_regs needs to be the size of
* the VUE (measured in pairs, since two slots are stored in each
*/
c.nr_regs = (c.vue_map.num_slots + 1)/2;
- c.nr_bytes = c.nr_regs * REG_SIZE;
-
c.prog_data.clip_mode = c.key.clip_mode; /* XXX */
/* For some reason the thread is spawned with only 4 channels
struct brw_reg ff_sync;
} reg;
- /* 3 different ways of expressing vertex size:
- */
- GLuint nr_attrs;
+ /* Number of registers storing VUE data */
GLuint nr_regs;
- GLuint nr_bytes;
GLuint first_tmp;
GLuint last_tmp;
GLboolean need_direction;
- GLuint header_regs;
- /** Mapping from VERT_RESULT_* to offset within the VUE. */
- GLuint offset[VERT_RESULT_MAX];
- /** Mapping from attribute index to VERT_RESULT_* */
- GLuint idx_to_attr[VERT_RESULT_MAX];
-
struct brw_vue_map vue_map;
};