Merge branch '7.8'
[mesa.git] / src / gallium / drivers / llvmpipe / lp_tex_sample.h
index 628ec3f1efd9dfafa6db96c5900cd5d36d869ed9..1228a831f3bd3731cc82c89523e9919f1b393fce 100644 (file)
 #define LP_TEX_SAMPLE_H
 
 
-#include "tgsi/tgsi_exec.h"
+#include "gallivm/lp_bld.h"
 
 
-struct llvmpipe_tex_tile_cache;
+struct lp_sampler_static_state;
 
 
 /**
- * Subclass of tgsi_sampler
+ * Pure-LLVM texture sampling code generator.
+ *
+ * @param context_ptr LLVM value with the pointer to the struct lp_jit_context.
  */
-struct lp_shader_sampler
-{
-   struct tgsi_sampler base;  /**< base class */
-
-   unsigned processor;
-
-   /* For lp_get_samples_2d_linear_POT:
-    */
-   unsigned xpot;
-   unsigned ypot;
-   unsigned level;
-
-   const struct pipe_texture *texture;
-   const struct pipe_sampler_state *sampler;
-
-   struct llvmpipe_tex_tile_cache *cache;
-};
-
-
-
-static INLINE struct lp_shader_sampler *
-lp_shader_sampler(const struct tgsi_sampler *sampler)
-{
-   return (struct lp_shader_sampler *) sampler;
-}
-
-
-
-extern void
-lp_get_samples(struct tgsi_sampler *tgsi_sampler,
-               const float s[QUAD_SIZE],
-               const float t[QUAD_SIZE],
-               const float p[QUAD_SIZE],
-               float lodbias,
-               float rgba[NUM_CHANNELS][QUAD_SIZE]);
+struct lp_build_sampler_soa *
+lp_llvm_sampler_soa_create(const struct lp_sampler_static_state *key,
+                           LLVMValueRef context_ptr);
 
 
 #endif /* LP_TEX_SAMPLE_H */