+lp_sampler_static_sampler_state(struct lp_static_sampler_state *state,
+ const struct pipe_sampler_state *sampler);
+
+
+void
+lp_sampler_static_texture_state(struct lp_static_texture_state *state,
+ const struct pipe_sampler_view *view);
+
+void
+lp_sampler_static_texture_state_image(struct lp_static_texture_state *state,
+ const struct pipe_image_view *view);
+
+void
+lp_build_lod_selector(struct lp_build_sample_context *bld,
+ boolean is_lodq,
+ unsigned texture_index,
+ unsigned sampler_index,
+ LLVMValueRef s,
+ LLVMValueRef t,
+ LLVMValueRef r,
+ LLVMValueRef cube_rho,
+ const struct lp_derivatives *derivs,
+ LLVMValueRef lod_bias, /* optional */
+ LLVMValueRef explicit_lod, /* optional */
+ unsigned mip_filter,
+ LLVMValueRef *out_lod,
+ LLVMValueRef *out_lod_ipart,
+ LLVMValueRef *out_lod_fpart,
+ LLVMValueRef *out_lod_positive);
+
+void
+lp_build_nearest_mip_level(struct lp_build_sample_context *bld,
+ unsigned texture_unit,
+ LLVMValueRef lod,
+ LLVMValueRef *level_out,
+ LLVMValueRef *out_of_bounds);
+
+void
+lp_build_linear_mip_levels(struct lp_build_sample_context *bld,
+ unsigned texture_unit,
+ LLVMValueRef lod_ipart,
+ LLVMValueRef *lod_fpart_inout,
+ LLVMValueRef *level0_out,
+ LLVMValueRef *level1_out);
+
+LLVMValueRef
+lp_build_get_mipmap_level(struct lp_build_sample_context *bld,
+ LLVMValueRef level);
+
+
+LLVMValueRef
+lp_build_get_mip_offsets(struct lp_build_sample_context *bld,
+ LLVMValueRef level);
+
+
+void
+lp_build_mipmap_level_sizes(struct lp_build_sample_context *bld,
+ LLVMValueRef ilevel,
+ LLVMValueRef *out_size_vec,
+ LLVMValueRef *row_stride_vec,
+ LLVMValueRef *img_stride_vec);
+
+
+void
+lp_build_extract_image_sizes(struct lp_build_sample_context *bld,
+ struct lp_build_context *size_bld,
+ struct lp_type coord_type,
+ LLVMValueRef size,
+ LLVMValueRef *out_width,
+ LLVMValueRef *out_height,
+ LLVMValueRef *out_depth);
+
+
+void
+lp_build_unnormalized_coords(struct lp_build_sample_context *bld,
+ LLVMValueRef flt_size,
+ LLVMValueRef *s,
+ LLVMValueRef *t,
+ LLVMValueRef *r);
+
+
+void
+lp_build_cube_lookup(struct lp_build_sample_context *bld,
+ LLVMValueRef *coords,
+ const struct lp_derivatives *derivs_in, /* optional */
+ LLVMValueRef *rho,
+ struct lp_derivatives *derivs_out, /* optional */
+ boolean need_derivs);
+
+
+void
+lp_build_cube_new_coords(struct lp_build_context *ivec_bld,
+ LLVMValueRef face,
+ LLVMValueRef x0,
+ LLVMValueRef x1,
+ LLVMValueRef y0,
+ LLVMValueRef y1,
+ LLVMValueRef max_coord,
+ LLVMValueRef new_faces[4],
+ LLVMValueRef new_xcoords[4][2],
+ LLVMValueRef new_ycoords[4][2]);