key = (struct draw_llvm_variant_key *)store;
+ memset(key, 0, offsetof(struct draw_llvm_variant_key, vertex_element[0]));
+
key->clamp_vertex_color = llvm->draw->rasterizer->clamp_vertex_color; /**/
/* Presumably all variants of the shader should have the same
key->ucp_enable = llvm->draw->rasterizer->clip_plane_enable;
key->has_gs = llvm->draw->gs.geometry_shader != NULL;
key->num_outputs = draw_total_vs_outputs(llvm->draw);
- key->pad1 = 0;
/* All variants of this shader will have the same value for
* nr_samplers. Not yet trying to compact away holes in the
key = (struct draw_gs_llvm_variant_key *)store;
+ memset(key, 0, offsetof(struct draw_gs_llvm_variant_key, samplers[0]));
+
key->num_outputs = draw_total_gs_outputs(llvm->draw);
/* All variants of this shader will have the same value for
unsigned need_edgeflags:1;
unsigned has_gs:1;
unsigned num_outputs:8;
- /*
- * it is important there are no holes in this struct
- * (and all padding gets zeroed).
- */
unsigned ucp_enable:PIPE_MAX_CLIP_PLANES;
- unsigned pad1:24-PIPE_MAX_CLIP_PLANES;
+ /* note padding here - must use memset */
/* Variable number of vertex elements:
*/
unsigned nr_samplers:8;
unsigned nr_sampler_views:8;
unsigned num_outputs:8;
+ /* note padding here - must use memset */
struct draw_sampler_static_state samplers[1];
};