radeonsi: force NaNs to 0
[mesa.git] / src / gallium / drivers / llvmpipe / lp_state_setup.h
index 2b080fbc32110cd93b56abd75b7fb7a0360a6958..82af8350fb7090676d2827491f90a68a3146ab25 100644 (file)
@@ -14,12 +14,24 @@ struct lp_setup_variant_list_item
 };
 
 
-struct lp_setup_variant_key {   
+struct lp_setup_variant_key {
+   unsigned size:16;
    unsigned num_inputs:8;
+   int color_slot:8;
+
+   int bcolor_slot:8;
+   int spec_slot:8;
+   int bspec_slot:8;
    unsigned flatshade_first:1;
    unsigned pixel_center_half:1;
-   unsigned pad:7;
-   unsigned size:16;
+   unsigned twoside:1;
+   unsigned floating_point_depth:1;
+   unsigned pad:4;
+
+   /* TODO: get those floats out of the key and use a jit_context for setup */
+   float pgon_offset_units;
+   float pgon_offset_scale;
+   float pgon_offset_clamp;
    struct lp_shader_input inputs[PIPE_MAX_SHADER_INPUTS];
 };
 
@@ -30,8 +42,7 @@ typedef void (*lp_jit_setup_triangle)( const float (*v0)[4],
                                       boolean front_facing,
                                       float (*a0)[4],
                                       float (*dadx)[4],
-                                      float (*dady)[4],
-                                      const struct lp_setup_variant_key *key );
+                                      float (*dady)[4] );
 
 
 
@@ -47,6 +58,8 @@ struct lp_setup_variant {
    
    struct lp_setup_variant_list_item list_item_global;
 
+   struct gallivm_state *gallivm;
+
    /* XXX: this is a pointer to the LLVM IR.  Once jit_function is
     * generated, we never need to use the IR again - need to find a
     * way to release this data without destroying the generated
@@ -61,15 +74,6 @@ struct lp_setup_variant {
    unsigned no;
 };
 
-void lp_setup_tri_fallback( const float (*v0)[4],
-                           const float (*v1)[4],
-                           const float (*v2)[4],
-                           boolean front_facing,
-                           float (*a0)[4],
-                           float (*dadx)[4],
-                           float (*dady)[4],
-                           const struct lp_setup_variant_key *key );
-
 void lp_delete_setup_variants(struct llvmpipe_context *lp);
 
 void