[Mesa-dev] [PATCH 10/18] i965: Pass integer format flag as parameter to surface setup

Topi Pohjolainen topi.pohjolainen at intel.com
Wed Apr 22 13:47:30 PDT 2015


Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 src/mesa/drivers/dri/i965/brw_context.h           | 4 +++-
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c  | 7 +++++--
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 6 +++---
 src/mesa/drivers/dri/i965/gen8_surface_state.c    | 5 +++--
 4 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 6bb46e3..1461310 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -965,7 +965,9 @@ struct brw_context
       void (*update_texture_surface)(struct brw_context *brw,
                                      const struct intel_mipmap_tree *mt,
                                      struct gl_texture_object *tObj,
-                                     uint32_t tex_format, int swizzle,
+                                     uint32_t tex_format,
+                                     bool is_integer_format,
+                                     int swizzle,
                                      uint32_t *surf_offset,
                                      bool for_gather);
       uint32_t (*update_renderbuffer_surface)(struct brw_context *brw,
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 0d81576..c76d09d 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -311,7 +311,9 @@ static void
 brw_update_texture_surface(struct brw_context *brw,
                            const struct intel_mipmap_tree *mt,
                            struct gl_texture_object *tObj,
-                           uint32_t tex_format, int swizzle /* unused */,
+                           uint32_t tex_format,
+                           bool is_integer_format /* unused */,
+                           int swizzle /* unused */,
                            uint32_t *surf_offset,
                            bool for_gather)
 {
@@ -824,7 +826,8 @@ update_texture_surface(struct gl_context *ctx,
    const int swizzle = unlikely(alpha_depth)
       ? SWIZZLE_XYZW : brw_get_texture_swizzle(ctx, tObj);
 
-   brw->vtbl.update_texture_surface(brw, mt, tObj, tex_format, swizzle,
+   brw->vtbl.update_texture_surface(brw, mt, tObj, tex_format,
+                                    tObj->_IsIntegerFormat, swizzle,
                                     surf_offset, for_gather);
 }
 
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
index bb2b889..46c96f7 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -267,8 +267,8 @@ static void
 gen7_update_texture_surface(struct brw_context *brw,
                             const struct intel_mipmap_tree *mt,
                             struct gl_texture_object *tObj,
-                            uint32_t tex_format, int swizzle,
-                            uint32_t *surf_offset,
+                            uint32_t tex_format, bool is_integer_format,
+                            int swizzle, uint32_t *surf_offset,
                             bool for_gather)
 {
    struct intel_texture_object *intelObj = intel_texture_object(tObj);
@@ -314,7 +314,7 @@ gen7_update_texture_surface(struct brw_context *brw,
    surf[3] = SET_FIELD(effective_depth - 1, BRW_SURFACE_DEPTH) |
              (mt->pitch - 1);
 
-   if (brw->is_haswell && tObj->_IsIntegerFormat)
+   if (brw->is_haswell && is_integer_format)
       surf[3] |= HSW_SURFACE_IS_INTEGER_FORMAT;
 
    surf[4] = gen7_surface_msaa_bits(mt->num_samples, mt->msaa_layout) |
diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c b/src/mesa/drivers/dri/i965/gen8_surface_state.c
index af891ff..d7287b8 100644
--- a/src/mesa/drivers/dri/i965/gen8_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c
@@ -153,8 +153,9 @@ static void
 gen8_update_texture_surface(struct brw_context *brw,
                             const struct intel_mipmap_tree *mt,
                             struct gl_texture_object *tObj,
-                            uint32_t tex_format, int swizzle,
-                            uint32_t *surf_offset,
+                            uint32_t tex_format,
+                            bool is_integer_format /* unused */,
+                            int swizzle, uint32_t *surf_offset,
                             bool for_gather)
 {
    struct intel_texture_object *intelObj = intel_texture_object(tObj);
-- 
1.9.3



More information about the mesa-dev mailing list