[Mesa-dev] [PATCH 2/2] gallivm: (trivial) don't pass sampler_unit variable down to filtering funcs

sroland at vmware.com sroland at vmware.com
Thu Aug 29 11:54:43 PDT 2013


From: Roland Scheidegger <sroland at vmware.com>

The only reason this was needed was because the fetch texel function had to
get the (dynamic) border color, but this is now done much earlier.
---
 src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c |   62 ++++++++-------------
 1 file changed, 22 insertions(+), 40 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
index 0a6f7a4..db5e366 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
@@ -73,7 +73,6 @@
  */
 static void
 lp_build_sample_texel_soa(struct lp_build_sample_context *bld,
-                          unsigned sampler_unit,
                           LLVMValueRef width,
                           LLVMValueRef height,
                           LLVMValueRef depth,
@@ -696,7 +695,6 @@ lp_build_sample_comparefunc(struct lp_build_sample_context *bld,
  */
 static void
 lp_build_sample_image_nearest(struct lp_build_sample_context *bld,
-                              unsigned sampler_unit,
                               LLVMValueRef size,
                               LLVMValueRef row_stride_vec,
                               LLVMValueRef img_stride_vec,
@@ -764,7 +762,7 @@ lp_build_sample_image_nearest(struct lp_build_sample_context *bld,
    /*
     * Get texture colors.
     */
-   lp_build_sample_texel_soa(bld, sampler_unit,
+   lp_build_sample_texel_soa(bld,
                              width_vec, height_vec, depth_vec,
                              x, y, z,
                              row_stride_vec, img_stride_vec,
@@ -832,7 +830,6 @@ lp_build_masklerp2d(struct lp_build_context *bld,
  */
 static void
 lp_build_sample_image_linear(struct lp_build_sample_context *bld,
-                             unsigned sampler_unit,
                              LLVMValueRef size,
                              LLVMValueRef linear_mask,
                              LLVMValueRef row_stride_vec,
@@ -938,12 +935,12 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld,
     * Get texture colors.
     */
    /* get x0/x1 texels */
-   lp_build_sample_texel_soa(bld, sampler_unit,
+   lp_build_sample_texel_soa(bld,
                              width_vec, height_vec, depth_vec,
                              x0, y0, z0,
                              row_stride_vec, img_stride_vec,
                              data_ptr, mipoffsets, neighbors[0][0]);
-   lp_build_sample_texel_soa(bld, sampler_unit,
+   lp_build_sample_texel_soa(bld,
                              width_vec, height_vec, depth_vec,
                              x1, y0, z0,
                              row_stride_vec, img_stride_vec,
@@ -974,12 +971,12 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld,
       LLVMValueRef colors0[4];
 
       /* get x0/x1 texels at y1 */
-      lp_build_sample_texel_soa(bld, sampler_unit,
+      lp_build_sample_texel_soa(bld,
                                 width_vec, height_vec, depth_vec,
                                 x0, y1, z0,
                                 row_stride_vec, img_stride_vec,
                                 data_ptr, mipoffsets, neighbors[1][0]);
-      lp_build_sample_texel_soa(bld, sampler_unit,
+      lp_build_sample_texel_soa(bld,
                                 width_vec, height_vec, depth_vec,
                                 x1, y1, z0,
                                 row_stride_vec, img_stride_vec,
@@ -1013,22 +1010,22 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld,
          LLVMValueRef colors1[4];
 
          /* get x0/x1/y0/y1 texels at z1 */
-         lp_build_sample_texel_soa(bld, sampler_unit,
+         lp_build_sample_texel_soa(bld,
                                    width_vec, height_vec, depth_vec,
                                    x0, y0, z1,
                                    row_stride_vec, img_stride_vec,
                                    data_ptr, mipoffsets, neighbors1[0][0]);
-         lp_build_sample_texel_soa(bld, sampler_unit,
+         lp_build_sample_texel_soa(bld,
                                    width_vec, height_vec, depth_vec,
                                    x1, y0, z1,
                                    row_stride_vec, img_stride_vec,
                                    data_ptr, mipoffsets, neighbors1[0][1]);
-         lp_build_sample_texel_soa(bld, sampler_unit,
+         lp_build_sample_texel_soa(bld,
                                    width_vec, height_vec, depth_vec,
                                    x0, y1, z1,
                                    row_stride_vec, img_stride_vec,
                                    data_ptr, mipoffsets, neighbors1[1][0]);
-         lp_build_sample_texel_soa(bld, sampler_unit,
+         lp_build_sample_texel_soa(bld,
                                    width_vec, height_vec, depth_vec,
                                    x1, y1, z1,
                                    row_stride_vec, img_stride_vec,
@@ -1087,7 +1084,6 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld,
  */
 static void
 lp_build_sample_mipmap(struct lp_build_sample_context *bld,
-                       unsigned sampler_unit,
                        unsigned img_filter,
                        unsigned mip_filter,
                        LLVMValueRef *coords,
@@ -1124,16 +1120,14 @@ lp_build_sample_mipmap(struct lp_build_sample_context *bld,
       mipoff0 = lp_build_get_mip_offsets(bld, ilevel0);
    }
    if (img_filter == PIPE_TEX_FILTER_NEAREST) {
-      lp_build_sample_image_nearest(bld, sampler_unit,
-                                    size0,
+      lp_build_sample_image_nearest(bld, size0,
                                     row_stride0_vec, img_stride0_vec,
                                     data_ptr0, mipoff0, coords, offsets,
                                     colors0);
    }
    else {
       assert(img_filter == PIPE_TEX_FILTER_LINEAR);
-      lp_build_sample_image_linear(bld, sampler_unit,
-                                   size0, NULL,
+      lp_build_sample_image_linear(bld, size0, NULL,
                                    row_stride0_vec, img_stride0_vec,
                                    data_ptr0, mipoff0, coords, offsets,
                                    colors0);
@@ -1188,15 +1182,13 @@ lp_build_sample_mipmap(struct lp_build_sample_context *bld,
             mipoff1 = lp_build_get_mip_offsets(bld, ilevel1);
          }
          if (img_filter == PIPE_TEX_FILTER_NEAREST) {
-            lp_build_sample_image_nearest(bld, sampler_unit,
-                                          size1,
+            lp_build_sample_image_nearest(bld, size1,
                                           row_stride1_vec, img_stride1_vec,
                                           data_ptr1, mipoff1, coords, offsets,
                                           colors1);
          }
          else {
-            lp_build_sample_image_linear(bld, sampler_unit,
-                                         size1, NULL,
+            lp_build_sample_image_linear(bld, size1, NULL,
                                          row_stride1_vec, img_stride1_vec,
                                          data_ptr1, mipoff1, coords, offsets,
                                          colors1);
@@ -1233,7 +1225,6 @@ lp_build_sample_mipmap(struct lp_build_sample_context *bld,
  */
 static void
 lp_build_sample_mipmap_both(struct lp_build_sample_context *bld,
-                            unsigned sampler_unit,
                             LLVMValueRef linear_mask,
                             unsigned mip_filter,
                             LLVMValueRef *coords,
@@ -1271,8 +1262,7 @@ lp_build_sample_mipmap_both(struct lp_build_sample_context *bld,
       mipoff0 = lp_build_get_mip_offsets(bld, ilevel0);
    }
 
-   lp_build_sample_image_linear(bld, sampler_unit,
-                                size0, linear_mask,
+   lp_build_sample_image_linear(bld, size0, linear_mask,
                                 row_stride0_vec, img_stride0_vec,
                                 data_ptr0, mipoff0, coords, offsets,
                                 colors0);
@@ -1316,8 +1306,7 @@ lp_build_sample_mipmap_both(struct lp_build_sample_context *bld,
             mipoff1 = lp_build_get_mip_offsets(bld, ilevel1);
          }
 
-         lp_build_sample_image_linear(bld, sampler_unit,
-                                      size1, linear_mask,
+         lp_build_sample_image_linear(bld, size1, linear_mask,
                                       row_stride1_vec, img_stride1_vec,
                                       data_ptr1, mipoff1, coords, offsets,
                                       colors1);
@@ -1778,8 +1767,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
 
    if (min_filter == mag_filter) {
       /* no need to distinguish between minification and magnification */
-      lp_build_sample_mipmap(bld, sampler_unit,
-                             min_filter, mip_filter,
+      lp_build_sample_mipmap(bld, min_filter, mip_filter,
                              coords, offsets,
                              ilevel0, ilevel1, lod_fpart,
                              texels);
@@ -1797,8 +1785,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
          lp_build_if(&if_ctx, bld->gallivm, lod_positive);
          {
             /* Use the minification filter */
-            lp_build_sample_mipmap(bld, sampler_unit,
-                                   min_filter, mip_filter,
+            lp_build_sample_mipmap(bld, min_filter, mip_filter,
                                    coords, offsets,
                                    ilevel0, ilevel1, lod_fpart,
                                    texels);
@@ -1806,8 +1793,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
          lp_build_else(&if_ctx);
          {
             /* Use the magnification filter */
-            lp_build_sample_mipmap(bld, sampler_unit,
-                                   mag_filter, PIPE_TEX_MIPFILTER_NONE,
+            lp_build_sample_mipmap(bld, mag_filter, PIPE_TEX_MIPFILTER_NONE,
                                    coords, offsets,
                                    ilevel0, NULL, NULL,
                                    texels);
@@ -1843,8 +1829,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
                 * aren't all that complicated so just always run a combined path
                 * if at least some pixels require linear.
                 */
-               lp_build_sample_mipmap_both(bld, sampler_unit,
-                                           linear_mask, mip_filter,
+               lp_build_sample_mipmap_both(bld, linear_mask, mip_filter,
                                            coords, offsets,
                                            ilevel0, ilevel1,
                                            lod_fpart, lod_positive,
@@ -1858,8 +1843,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
                 * cheaper than linear, hence do a separate path for that.
                 */
                /* Use the magnification filter */
-               lp_build_sample_mipmap(bld, sampler_unit,
-                                      mag_filter, PIPE_TEX_MIPFILTER_NONE,
+               lp_build_sample_mipmap(bld, mag_filter, PIPE_TEX_MIPFILTER_NONE,
                                       coords, offsets,
                                       ilevel0, NULL, NULL,
                                       texels);
@@ -1886,8 +1870,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
 
             lp_build_if(&if_ctx, bld->gallivm, need_mag);
             {
-                lp_build_sample_mipmap_both(bld, sampler_unit,
-                                            linear_mask, mip_filter,
+                lp_build_sample_mipmap_both(bld, linear_mask, mip_filter,
                                             coords, offsets,
                                             ilevel0, ilevel1,
                                             lod_fpart, lod_positive,
@@ -1896,8 +1879,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
 
             lp_build_else(&if_ctx);
             {
-               lp_build_sample_mipmap(bld, sampler_unit,
-                                      min_filter, mip_filter,
+               lp_build_sample_mipmap(bld, min_filter, mip_filter,
                                       coords, offsets,
                                       ilevel0, ilevel1, lod_fpart,
                                       texels);
-- 
1.7.9.5


More information about the mesa-dev mailing list