Mesa (master): ilo: get rid of GPE tables completely

Chia-I Wu olv at kemper.freedesktop.org
Thu Aug 8 06:03:20 UTC 2013


Module: Mesa
Branch: master
Commit: f9a4288bd282dfab97a40fc6dc9c046812e7d681
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9a4288bd282dfab97a40fc6dc9c046812e7d681

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Aug  8 13:43:57 2013 +0800

ilo: get rid of GPE tables completely

Move the estimate functions out of the tables and kill the tables.

---

 src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c |   25 +++++++----------
 src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c |   21 ++++++--------
 src/gallium/drivers/ilo/ilo_gpe_gen6.c         |   27 +++++-------------
 src/gallium/drivers/ilo/ilo_gpe_gen6.h         |   27 +++++-------------
 src/gallium/drivers/ilo/ilo_gpe_gen7.c         |   34 +++++------------------
 src/gallium/drivers/ilo/ilo_gpe_gen7.h         |   24 +++++-----------
 6 files changed, 52 insertions(+), 106 deletions(-)

diff --git a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c
index 4215199..ce1558b 100644
--- a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c
+++ b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c
@@ -1419,7 +1419,6 @@ ilo_3d_pipeline_emit_write_depth_count_gen6(struct ilo_3d_pipeline *p,
 
 static int
 gen6_pipeline_estimate_commands(const struct ilo_3d_pipeline *p,
-                                const struct ilo_gpe_gen6 *gen6,
                                 const struct ilo_context *ilo)
 {
    static int size;
@@ -1465,7 +1464,7 @@ gen6_pipeline_estimate_commands(const struct ilo_3d_pipeline *p,
       }
 
       if (count)
-         size += gen6->estimate_command_size(p->dev, cmd, count);
+         size += ilo_gpe_gen6_estimate_command_size(p->dev, cmd, count);
    }
 
    return size;
@@ -1473,7 +1472,6 @@ gen6_pipeline_estimate_commands(const struct ilo_3d_pipeline *p,
 
 static int
 gen6_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
-                              const struct ilo_gpe_gen6 *gen6,
                               const struct ilo_context *ilo)
 {
    static int static_size;
@@ -1502,7 +1500,7 @@ gen6_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
       int i;
 
       for (i = 0; i < Elements(static_states); i++) {
-         static_size += gen6->estimate_state_size(p->dev,
+         static_size += ilo_gpe_gen6_estimate_state_size(p->dev,
                static_states[i].state,
                static_states[i].count);
       }
@@ -1537,7 +1535,7 @@ gen6_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
    }
 
    if (count) {
-      size += gen6->estimate_state_size(p->dev,
+      size += ilo_gpe_gen6_estimate_state_size(p->dev,
             ILO_GPE_GEN6_SURFACE_STATE, count);
    }
 
@@ -1545,9 +1543,9 @@ gen6_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
    for (shader_type = 0; shader_type < PIPE_SHADER_TYPES; shader_type++) {
       count = ilo->sampler[shader_type].count;
       if (count) {
-         size += gen6->estimate_state_size(p->dev,
+         size += ilo_gpe_gen6_estimate_state_size(p->dev,
                ILO_GPE_GEN6_SAMPLER_BORDER_COLOR_STATE, count);
-         size += gen6->estimate_state_size(p->dev,
+         size += ilo_gpe_gen6_estimate_state_size(p->dev,
                ILO_GPE_GEN6_SAMPLER_STATE, count);
       }
    }
@@ -1558,7 +1556,7 @@ gen6_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
       const int pcb_size =
          ilo_shader_get_kernel_param(ilo->vs, ILO_KERNEL_VS_PCB_UCP_SIZE);
 
-      size += gen6->estimate_state_size(p->dev,
+      size += ilo_gpe_gen6_estimate_state_size(p->dev,
             ILO_GPE_GEN6_PUSH_CONSTANT_BUFFER, pcb_size);
    }
 
@@ -1570,7 +1568,6 @@ ilo_3d_pipeline_estimate_size_gen6(struct ilo_3d_pipeline *p,
                                    enum ilo_3d_pipeline_action action,
                                    const void *arg)
 {
-   const struct ilo_gpe_gen6 *gen6 = ilo_gpe_gen6_get();
    int size;
 
    switch (action) {
@@ -1578,20 +1575,20 @@ ilo_3d_pipeline_estimate_size_gen6(struct ilo_3d_pipeline *p,
       {
          const struct ilo_context *ilo = arg;
 
-         size = gen6_pipeline_estimate_commands(p, gen6, ilo) +
-            gen6_pipeline_estimate_states(p, gen6, ilo);
+         size = gen6_pipeline_estimate_commands(p, ilo) +
+            gen6_pipeline_estimate_states(p, ilo);
       }
       break;
    case ILO_3D_PIPELINE_FLUSH:
-      size = gen6->estimate_command_size(p->dev,
+      size = ilo_gpe_gen6_estimate_command_size(p->dev,
             ILO_GPE_GEN6_PIPE_CONTROL, 1) * 3;
       break;
    case ILO_3D_PIPELINE_WRITE_TIMESTAMP:
-      size = gen6->estimate_command_size(p->dev,
+      size = ilo_gpe_gen6_estimate_command_size(p->dev,
             ILO_GPE_GEN6_PIPE_CONTROL, 1) * 2;
       break;
    case ILO_3D_PIPELINE_WRITE_DEPTH_COUNT:
-      size = gen6->estimate_command_size(p->dev,
+      size = ilo_gpe_gen6_estimate_command_size(p->dev,
             ILO_GPE_GEN6_PIPE_CONTROL, 1) * 3;
       break;
    default:
diff --git a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c
index 270cde2..b489624 100644
--- a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c
+++ b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c
@@ -641,7 +641,6 @@ ilo_3d_pipeline_emit_draw_gen7(struct ilo_3d_pipeline *p,
 
 static int
 gen7_pipeline_estimate_commands(const struct ilo_3d_pipeline *p,
-                                const struct ilo_gpe_gen7 *gen7,
                                 const struct ilo_context *ilo)
 {
    static int size;
@@ -682,7 +681,7 @@ gen7_pipeline_estimate_commands(const struct ilo_3d_pipeline *p,
       }
 
       if (count) {
-         size += gen7->estimate_command_size(p->dev,
+         size += ilo_gpe_gen7_estimate_command_size(p->dev,
                cmd, count);
       }
    }
@@ -692,7 +691,6 @@ gen7_pipeline_estimate_commands(const struct ilo_3d_pipeline *p,
 
 static int
 gen7_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
-                              const struct ilo_gpe_gen7 *gen7,
                               const struct ilo_context *ilo)
 {
    static int static_size;
@@ -720,7 +718,7 @@ gen7_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
       int i;
 
       for (i = 0; i < Elements(static_states); i++) {
-         static_size += gen7->estimate_state_size(p->dev,
+         static_size += ilo_gpe_gen7_estimate_state_size(p->dev,
                static_states[i].state,
                static_states[i].count);
       }
@@ -740,7 +738,7 @@ gen7_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
    }
 
    if (count) {
-      size += gen7->estimate_state_size(p->dev,
+      size += ilo_gpe_gen7_estimate_state_size(p->dev,
             ILO_GPE_GEN7_SURFACE_STATE, count);
    }
 
@@ -748,9 +746,9 @@ gen7_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
    for (shader_type = 0; shader_type < PIPE_SHADER_TYPES; shader_type++) {
       count = ilo->sampler[shader_type].count;
       if (count) {
-         size += gen7->estimate_state_size(p->dev,
+         size += ilo_gpe_gen7_estimate_state_size(p->dev,
                ILO_GPE_GEN7_SAMPLER_BORDER_COLOR_STATE, count);
-         size += gen7->estimate_state_size(p->dev,
+         size += ilo_gpe_gen7_estimate_state_size(p->dev,
                ILO_GPE_GEN7_SAMPLER_STATE, count);
       }
    }
@@ -761,7 +759,7 @@ gen7_pipeline_estimate_states(const struct ilo_3d_pipeline *p,
       const int pcb_size =
          ilo_shader_get_kernel_param(ilo->vs, ILO_KERNEL_VS_PCB_UCP_SIZE);
 
-      size += gen7->estimate_state_size(p->dev,
+      size += ilo_gpe_gen7_estimate_state_size(p->dev,
             ILO_GPE_GEN7_PUSH_CONSTANT_BUFFER, pcb_size);
    }
 
@@ -773,7 +771,6 @@ ilo_3d_pipeline_estimate_size_gen7(struct ilo_3d_pipeline *p,
                                    enum ilo_3d_pipeline_action action,
                                    const void *arg)
 {
-   const struct ilo_gpe_gen7 *gen7 = ilo_gpe_gen7_get();
    int size;
 
    switch (action) {
@@ -781,14 +778,14 @@ ilo_3d_pipeline_estimate_size_gen7(struct ilo_3d_pipeline *p,
       {
          const struct ilo_context *ilo = arg;
 
-         size = gen7_pipeline_estimate_commands(p, gen7, ilo) +
-            gen7_pipeline_estimate_states(p, gen7, ilo);
+         size = gen7_pipeline_estimate_commands(p, ilo) +
+            gen7_pipeline_estimate_states(p, ilo);
       }
       break;
    case ILO_3D_PIPELINE_FLUSH:
    case ILO_3D_PIPELINE_WRITE_TIMESTAMP:
    case ILO_3D_PIPELINE_WRITE_DEPTH_COUNT:
-      size = gen7->estimate_command_size(p->dev,
+      size = ilo_gpe_gen7_estimate_command_size(p->dev,
             ILO_GPE_GEN7_PIPE_CONTROL, 1);
       break;
    default:
diff --git a/src/gallium/drivers/ilo/ilo_gpe_gen6.c b/src/gallium/drivers/ilo/ilo_gpe_gen6.c
index 143e6fe..cd12273 100644
--- a/src/gallium/drivers/ilo/ilo_gpe_gen6.c
+++ b/src/gallium/drivers/ilo/ilo_gpe_gen6.c
@@ -2456,10 +2456,10 @@ ilo_gpe_init_sampler_cso(const struct ilo_dev_info *dev,
    }
 }
 
-static int
-gen6_estimate_command_size(const struct ilo_dev_info *dev,
-                           enum ilo_gpe_gen6_command cmd,
-                           int arg)
+int
+ilo_gpe_gen6_estimate_command_size(const struct ilo_dev_info *dev,
+                                   enum ilo_gpe_gen6_command cmd,
+                                   int arg)
 {
    static const struct {
       int header;
@@ -2517,10 +2517,10 @@ gen6_estimate_command_size(const struct ilo_dev_info *dev,
    return (likely(count)) ? header + body * count : 0;
 }
 
-static int
-gen6_estimate_state_size(const struct ilo_dev_info *dev,
-                         enum ilo_gpe_gen6_state state,
-                         int arg)
+int
+ilo_gpe_gen6_estimate_state_size(const struct ilo_dev_info *dev,
+                                 enum ilo_gpe_gen6_state state,
+                                 int arg)
 {
    static const struct {
       int alignment;
@@ -2567,14 +2567,3 @@ gen6_estimate_state_size(const struct ilo_dev_info *dev,
 
    return estimate;
 }
-
-static const struct ilo_gpe_gen6 gen6_gpe = {
-   .estimate_command_size = gen6_estimate_command_size,
-   .estimate_state_size = gen6_estimate_state_size,
-};
-
-const struct ilo_gpe_gen6 *
-ilo_gpe_gen6_get(void)
-{
-   return &gen6_gpe;
-}
diff --git a/src/gallium/drivers/ilo/ilo_gpe_gen6.h b/src/gallium/drivers/ilo/ilo_gpe_gen6.h
index c4d7cac..a3dea39 100644
--- a/src/gallium/drivers/ilo/ilo_gpe_gen6.h
+++ b/src/gallium/drivers/ilo/ilo_gpe_gen6.h
@@ -115,26 +115,15 @@ enum ilo_gpe_gen6_state {
    ILO_GPE_GEN6_STATE_COUNT,
 };
 
-/**
- * GEN6 graphics processing engine
- *
- * This is a low-level interface.  It does not handle the interdependencies
- * between states.
- */
-struct ilo_gpe_gen6 {
-   int (*estimate_command_size)(const struct ilo_dev_info *dev,
-                                enum ilo_gpe_gen6_command cmd,
-                                int arg);
-
-   int (*estimate_state_size)(const struct ilo_dev_info *dev,
-                              enum ilo_gpe_gen6_state state,
-                              int arg);
-};
-
-const struct ilo_gpe_gen6 *
-ilo_gpe_gen6_get(void);
-
-/* Below are helpers for other GENs */
+int
+ilo_gpe_gen6_estimate_command_size(const struct ilo_dev_info *dev,
+                                   enum ilo_gpe_gen6_command cmd,
+                                   int arg);
+
+int
+ilo_gpe_gen6_estimate_state_size(const struct ilo_dev_info *dev,
+                                 enum ilo_gpe_gen6_state state,
+                                 int arg);
 
 /**
  * Translate winsys tiling to hardware tiling.
diff --git a/src/gallium/drivers/ilo/ilo_gpe_gen7.c b/src/gallium/drivers/ilo/ilo_gpe_gen7.c
index 54846ec..f6cc6e9 100644
--- a/src/gallium/drivers/ilo/ilo_gpe_gen7.c
+++ b/src/gallium/drivers/ilo/ilo_gpe_gen7.c
@@ -650,10 +650,10 @@ ilo_gpe_init_view_surface_for_texture_gen7(const struct ilo_dev_info *dev,
    surf->bo = tex->bo;
 }
 
-static int
-gen7_estimate_command_size(const struct ilo_dev_info *dev,
-                           enum ilo_gpe_gen7_command cmd,
-                           int arg)
+int
+ilo_gpe_gen7_estimate_command_size(const struct ilo_dev_info *dev,
+                                   enum ilo_gpe_gen7_command cmd,
+                                   int arg)
 {
    static const struct {
       int header;
@@ -738,10 +738,10 @@ gen7_estimate_command_size(const struct ilo_dev_info *dev,
    return (likely(count)) ? header + body * count : 0;
 }
 
-static int
-gen7_estimate_state_size(const struct ilo_dev_info *dev,
-                         enum ilo_gpe_gen7_state state,
-                         int arg)
+int
+ilo_gpe_gen7_estimate_state_size(const struct ilo_dev_info *dev,
+                                 enum ilo_gpe_gen7_state state,
+                                 int arg)
 {
    static const struct {
       int alignment;
@@ -787,21 +787,3 @@ gen7_estimate_state_size(const struct ilo_dev_info *dev,
 
    return estimate;
 }
-
-static void
-gen7_init(struct ilo_gpe_gen7 *gen7)
-{
-   gen7->estimate_command_size = gen7_estimate_command_size;
-   gen7->estimate_state_size = gen7_estimate_state_size;
-}
-
-static struct ilo_gpe_gen7 gen7_gpe;
-
-const struct ilo_gpe_gen7 *
-ilo_gpe_gen7_get(void)
-{
-   if (!gen7_gpe.estimate_command_size)
-      gen7_init(&gen7_gpe);
-
-   return &gen7_gpe;
-}
diff --git a/src/gallium/drivers/ilo/ilo_gpe_gen7.h b/src/gallium/drivers/ilo/ilo_gpe_gen7.h
index 0f667c1..02feec0 100644
--- a/src/gallium/drivers/ilo/ilo_gpe_gen7.h
+++ b/src/gallium/drivers/ilo/ilo_gpe_gen7.h
@@ -132,23 +132,15 @@ enum ilo_gpe_gen7_state {
    ILO_GPE_GEN7_STATE_COUNT,
 };
 
-/**
- * GEN7 graphics processing engine
- *
- * \see ilo_gpe_gen6
- */
-struct ilo_gpe_gen7 {
-   int (*estimate_command_size)(const struct ilo_dev_info *dev,
-                                enum ilo_gpe_gen7_command cmd,
-                                int arg);
-
-   int (*estimate_state_size)(const struct ilo_dev_info *dev,
-                              enum ilo_gpe_gen7_state state,
-                              int arg);
-};
-
-const struct ilo_gpe_gen7 *
-ilo_gpe_gen7_get(void);
+int
+ilo_gpe_gen7_estimate_command_size(const struct ilo_dev_info *dev,
+                                   enum ilo_gpe_gen7_command cmd,
+                                   int arg);
+
+int
+ilo_gpe_gen7_estimate_state_size(const struct ilo_dev_info *dev,
+                                 enum ilo_gpe_gen7_state state,
+                                 int arg);
 
 static inline void
 gen7_emit_GPGPU_WALKER(const struct ilo_dev_info *dev,




More information about the mesa-commit mailing list