{
/* TGSI_QUAD_SIZE x float */
struct lp_build_context coeff_bld;
+ struct lp_build_context setup_bld;
unsigned num_attribs;
unsigned mask[1 + PIPE_MAX_SHADER_INPUTS]; /**< TGSI_WRITE_MASK_x */
enum lp_interp interp[1 + PIPE_MAX_SHADER_INPUTS];
+ boolean simple_interp;
+
+ double pos_offset;
LLVMValueRef x;
LLVMValueRef y;
- LLVMValueRef a [1 + PIPE_MAX_SHADER_INPUTS][TGSI_NUM_CHANNELS];
+ LLVMValueRef a[1 + PIPE_MAX_SHADER_INPUTS][TGSI_NUM_CHANNELS];
LLVMValueRef dadq[1 + PIPE_MAX_SHADER_INPUTS][TGSI_NUM_CHANNELS];
-
- LLVMValueRef oow;
+ LLVMValueRef a0aos[1 + PIPE_MAX_SHADER_INPUTS];
+ LLVMValueRef dadxaos[1 + PIPE_MAX_SHADER_INPUTS];
+ LLVMValueRef dadyaos[1 + PIPE_MAX_SHADER_INPUTS];
LLVMValueRef attribs[1 + PIPE_MAX_SHADER_INPUTS][TGSI_NUM_CHANNELS];
+ LLVMValueRef xoffset_store;
+ LLVMValueRef yoffset_store;
+
/*
* Convenience pointers. Callers may access this one.
*/
struct gallivm_state *gallivm,
unsigned num_inputs,
const struct lp_shader_input *inputs,
+ boolean pixel_center_integer,
LLVMBuilderRef builder,
struct lp_type type,
LLVMValueRef a0_ptr,
LLVMValueRef y);
void
-lp_build_interp_soa_update_inputs(struct lp_build_interp_soa_context *bld,
- struct gallivm_state *gallivm,
- int quad_index);
+lp_build_interp_soa_update_inputs_dyn(struct lp_build_interp_soa_context *bld,
+ struct gallivm_state *gallivm,
+ LLVMValueRef quad_start_index);
void
-lp_build_interp_soa_update_pos(struct lp_build_interp_soa_context *bld,
- struct gallivm_state *gallivm,
- int quad_index);
-
+lp_build_interp_soa_update_pos_dyn(struct lp_build_interp_soa_context *bld,
+ struct gallivm_state *gallivm,
+ LLVMValueRef quad_start_index);
#endif /* LP_BLD_INTERP_H */