Merge branch '7.8'
[mesa.git] / src / gallium / drivers / llvmpipe / lp_tex_sample.h
index 8d380b6e285426aab986c6518f3ef97919754b3a..1228a831f3bd3731cc82c89523e9919f1b393fce 100644 (file)
 #define LP_TEX_SAMPLE_H
 
 
-#include "tgsi/tgsi_exec.h"
-
-
-/**
- * Subclass of tgsi_sampler
- */
-struct lp_shader_sampler
-{
-   struct tgsi_sampler base;  /**< base class */
-
-   uint unit;
-   struct llvmpipe_context *lp;
-   struct llvmpipe_tile_cache *cache;
-};
+#include "gallivm/lp_bld.h"
 
 
+struct lp_sampler_static_state;
 
-static INLINE const struct lp_shader_sampler *
-lp_shader_sampler(const struct tgsi_sampler *sampler)
-{
-   return (const struct lp_shader_sampler *) sampler;
-}
 
-
-extern void
-lp_get_samples_fragment(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]);
-
-extern void
-lp_get_samples_vertex(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]);
+/**
+ * Pure-LLVM texture sampling code generator.
+ *
+ * @param context_ptr LLVM value with the pointer to the struct lp_jit_context.
+ */
+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 */