#define RAST_EDGE_TEST 1
+struct lp_sampler_static_state
+{
+ /*
+ * These attributes are effectively interleaved for more sane key handling.
+ * However, there might be lots of null space if the amount of samplers and
+ * textures isn't the same.
+ */
+ struct lp_static_sampler_state sampler_state;
+ struct lp_static_texture_state texture_state;
+};
+
+
struct lp_fragment_shader_variant_key
{
struct pipe_depth_state depth;
} alpha;
unsigned nr_cbufs:8;
- unsigned nr_samplers:8; /* actually derivable from just the shader */
+ unsigned nr_samplers:8; /* actually derivable from just the shader */
+ unsigned nr_sampler_views:8; /* actually derivable from just the shader */
unsigned flatshade:1;
unsigned occlusion_count:1;
+ unsigned resource_1d:1;
+ unsigned depth_clamp:1;
enum pipe_format zsbuf_format;
enum pipe_format cbuf_format[PIPE_MAX_COLOR_BUFS];
- struct lp_sampler_static_state sampler[PIPE_MAX_SAMPLERS];
+ struct lp_sampler_static_state state[PIPE_MAX_SHADER_SAMPLER_VIEWS];
};
void
lp_debug_fs_variant(const struct lp_fragment_shader_variant *variant);
-void
-llvmpipe_remove_shader_variant(struct llvmpipe_context *lp,
- struct lp_fragment_shader_variant *variant);
-
-
#endif /* LP_STATE_FS_H_ */