[Mesa-dev] [PATCH 03/16] i965/blorp: Allow caller to provide sampler settings

Topi Pohjolainen topi.pohjolainen at intel.com
Thu Apr 23 11:00:28 PDT 2015


Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 src/mesa/drivers/dri/i965/brw_blorp.h    |  4 +++-
 src/mesa/drivers/dri/i965/gen6_blorp.cpp | 15 +++++++++------
 src/mesa/drivers/dri/i965/gen7_blorp.cpp |  3 ++-
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp.h b/src/mesa/drivers/dri/i965/brw_blorp.h
index 59aecab..63dfe5b 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp.h
+++ b/src/mesa/drivers/dri/i965/brw_blorp.h
@@ -415,7 +415,9 @@ gen6_blorp_emit_drawing_rectangle(struct brw_context *brw,
 
 uint32_t
 gen6_blorp_emit_sampler_state(struct brw_context *brw,
-                              const brw_blorp_params *params);
+                              unsigned tex_filter, unsigned max_lod,
+                              bool use_unorm_coords);
+
 /** \} */
 
 #endif /* __cplusplus */
diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.cpp b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
index 6c139ec..ae4f34d 100644
--- a/src/mesa/drivers/dri/i965/gen6_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
@@ -455,7 +455,8 @@ gen6_blorp_emit_binding_table(struct brw_context *brw,
  */
 uint32_t
 gen6_blorp_emit_sampler_state(struct brw_context *brw,
-                              const brw_blorp_params *params)
+                              unsigned tex_filter, unsigned max_lod,
+                              bool use_unorm_coords)
 {
    uint32_t sampler_offset;
    uint32_t *sampler_state = (uint32_t *)
@@ -476,8 +477,8 @@ gen6_blorp_emit_sampler_state(struct brw_context *brw,
    brw_emit_sampler_state(brw,
                           sampler_state,
                           sampler_offset,
-                          BRW_MAPFILTER_LINEAR, /* min filter */
-                          BRW_MAPFILTER_LINEAR, /* mag filter */
+                          tex_filter, /* min filter */
+                          tex_filter, /* mag filter */
                           BRW_MIPFILTER_NONE,
                           BRW_ANISORATIO_2,
                           address_rounding,
@@ -485,11 +486,11 @@ gen6_blorp_emit_sampler_state(struct brw_context *brw,
                           BRW_TEXCOORDMODE_CLAMP,
                           BRW_TEXCOORDMODE_CLAMP,
                           0, /* min LOD */
-                          0, /* max LOD */
+                          max_lod,
                           0, /* LOD bias */
                           0, /* base miplevel */
                           0, /* shadow function */
-                          true, /* non-normalized coordinates */
+                          use_unorm_coords,
                           0); /* border color offset - unused */
 
    return sampler_offset;
@@ -1059,7 +1060,9 @@ gen6_blorp_exec(struct brw_context *brw,
          gen6_blorp_emit_binding_table(brw, params,
                                        wm_surf_offset_renderbuffer,
                                        wm_surf_offset_texture);
-      sampler_offset = gen6_blorp_emit_sampler_state(brw, params);
+      sampler_offset =
+         gen6_blorp_emit_sampler_state(brw, BRW_MAPFILTER_LINEAR, 0, true);
+                                                
       gen6_blorp_emit_sampler_state_pointers(brw, params, sampler_offset);
    }
    gen6_blorp_emit_vs_disable(brw, params);
diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.cpp b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
index 8215fe9..d841346 100644
--- a/src/mesa/drivers/dri/i965/gen7_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
@@ -830,7 +830,8 @@ gen7_blorp_exec(struct brw_context *brw,
          gen6_blorp_emit_binding_table(brw, params,
                                        wm_surf_offset_renderbuffer,
                                        wm_surf_offset_texture);
-      sampler_offset = gen6_blorp_emit_sampler_state(brw, params);
+      sampler_offset =
+         gen6_blorp_emit_sampler_state(brw, BRW_MAPFILTER_LINEAR, 0, true);
    }
    gen7_blorp_emit_vs_disable(brw, params);
    gen7_blorp_emit_hs_disable(brw, params);
-- 
1.9.3



More information about the mesa-dev mailing list