i965/nir: Do not scalarize phis in non-scalar setups
[mesa.git] / src / mesa / drivers / dri / nouveau / nouveau_render.h
index 498c7e4acff2127cb8d43dff726e72057695b78d..0539c3775858b2836d559429e8eaf0c9e61865ee 100644 (file)
 #define __NOUVEAU_RENDER_H__
 
 #include "vbo/vbo_context.h"
-
-struct nouveau_array_state;
+#include "nouveau_array.h"
 
 typedef void (*dispatch_t)(struct gl_context *, unsigned int, int, unsigned int);
-typedef unsigned (*extract_u_t)(struct nouveau_array_state *, int, int);
-typedef float (*extract_f_t)(struct nouveau_array_state *, int, int);
+typedef void (*emit_t)(struct gl_context *, struct nouveau_array *, const void *);
 
 struct nouveau_attr_info {
        int vbo_index;
        int imm_method;
        int imm_fields;
 
-       void (*emit)(struct gl_context *, struct nouveau_array_state *, const void *);
-};
-
-struct nouveau_array_state {
-       int attr;
-       int stride, fields, type;
-
-       struct nouveau_bo *bo;
-       unsigned offset;
-       const void *buf;
-
-       extract_u_t extract_u;
-       extract_f_t extract_f;
+       emit_t emit;
 };
 
 struct nouveau_swtnl_state {
@@ -69,8 +55,8 @@ struct nouveau_render_state {
                IMM
        } mode;
 
-       struct nouveau_array_state ib;
-       struct nouveau_array_state attrs[VERT_ATTRIB_MAX];
+       struct nouveau_array ib;
+       struct nouveau_array attrs[VERT_ATTRIB_MAX];
 
        /* Maps a HW VBO index or IMM emission order to an index in
         * the attrs array above (or -1 if unused). */