Mesa (master): ilo: make ilo_render opaque

Chia-I Wu olv at kemper.freedesktop.org
Fri Sep 26 13:17:09 UTC 2014


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Sep 25 16:41:31 2014 +0800

ilo: make ilo_render opaque

It is not used outside the render code.  There are also too many details in it
that we do not want other components to access directly.

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>

---

 src/gallium/drivers/ilo/ilo_render.c         |    1 -
 src/gallium/drivers/ilo/ilo_render.h         |   91 +-------------------------
 src/gallium/drivers/ilo/ilo_render_dynamic.c |    1 -
 src/gallium/drivers/ilo/ilo_render_gen.h     |   88 +++++++++++++++++++++++++
 src/gallium/drivers/ilo/ilo_render_gen6.c    |    1 -
 src/gallium/drivers/ilo/ilo_render_gen7.c    |    1 -
 src/gallium/drivers/ilo/ilo_render_surface.c |    1 -
 7 files changed, 90 insertions(+), 94 deletions(-)

diff --git a/src/gallium/drivers/ilo/ilo_render.c b/src/gallium/drivers/ilo/ilo_render.c
index 2b8412a3..9291855 100644
--- a/src/gallium/drivers/ilo/ilo_render.c
+++ b/src/gallium/drivers/ilo/ilo_render.c
@@ -34,7 +34,6 @@
 #include "ilo_builder_render.h"
 #include "ilo_query.h"
 #include "ilo_render_gen.h"
-#include "ilo_render.h"
 
 /* in U0.4 */
 struct sample_position {
diff --git a/src/gallium/drivers/ilo/ilo_render.h b/src/gallium/drivers/ilo/ilo_render.h
index 60e3769..0cf1d03 100644
--- a/src/gallium/drivers/ilo/ilo_render.h
+++ b/src/gallium/drivers/ilo/ilo_render.h
@@ -29,100 +29,13 @@
 #define ILO_RENDER_H
 
 #include "ilo_common.h"
-#include "ilo_state.h"
 
-struct intel_bo;
 struct ilo_blitter;
-struct ilo_cp;
+struct ilo_builder;
 struct ilo_query;
+struct ilo_render;
 struct ilo_state_vector;
 
-/**
- * Render Engine.
- */
-struct ilo_render {
-   const struct ilo_dev_info *dev;
-   struct ilo_builder *builder;
-
-   struct intel_bo *workaround_bo;
-
-   uint32_t packed_sample_position_1x;
-   uint32_t packed_sample_position_4x;
-   uint32_t packed_sample_position_8x[2];
-
-   bool hw_ctx_changed;
-
-   /*
-    * Any state that involves resources needs to be re-emitted when the
-    * batch bo changed.  This is because we do not pin the resources and
-    * their offsets (or existence) may change between batch buffers.
-    */
-   bool batch_bo_changed;
-   bool state_bo_changed;
-   bool instruction_bo_changed;
-
-   /**
-    * HW states.
-    */
-   struct ilo_render_state {
-      /*
-       * When a WA is needed before some command, we always emit the WA right
-       * before the command.  Knowing what have already been done since last
-       * 3DPRIMITIVE allows us to skip some WAs.
-       */
-      uint32_t current_pipe_control_dw1;
-
-      /*
-       * When a WA is needed after some command, we may have the WA follow the
-       * command immediately or defer it.  If this is non-zero, a PIPE_CONTROL
-       * will be emitted before 3DPRIMITIVE.
-       */
-      uint32_t deferred_pipe_control_dw1;
-
-      bool primitive_restart;
-      int reduced_prim;
-      int so_max_vertices;
-
-      uint32_t SF_VIEWPORT;
-      uint32_t CLIP_VIEWPORT;
-      uint32_t SF_CLIP_VIEWPORT; /* GEN7+ */
-      uint32_t CC_VIEWPORT;
-
-      uint32_t COLOR_CALC_STATE;
-      uint32_t BLEND_STATE;
-      uint32_t DEPTH_STENCIL_STATE;
-
-      uint32_t SCISSOR_RECT;
-
-      struct {
-         uint32_t BINDING_TABLE_STATE;
-         int BINDING_TABLE_STATE_size;
-         uint32_t SURFACE_STATE[ILO_MAX_VS_SURFACES];
-         uint32_t SAMPLER_STATE;
-         uint32_t SAMPLER_BORDER_COLOR_STATE[ILO_MAX_SAMPLERS];
-         uint32_t PUSH_CONSTANT_BUFFER;
-         int PUSH_CONSTANT_BUFFER_size;
-      } vs;
-
-      struct {
-         uint32_t BINDING_TABLE_STATE;
-         int BINDING_TABLE_STATE_size;
-         uint32_t SURFACE_STATE[ILO_MAX_GS_SURFACES];
-         bool active;
-      } gs;
-
-      struct {
-         uint32_t BINDING_TABLE_STATE;
-         int BINDING_TABLE_STATE_size;
-         uint32_t SURFACE_STATE[ILO_MAX_WM_SURFACES];
-         uint32_t SAMPLER_STATE;
-         uint32_t SAMPLER_BORDER_COLOR_STATE[ILO_MAX_SAMPLERS];
-         uint32_t PUSH_CONSTANT_BUFFER;
-         int PUSH_CONSTANT_BUFFER_size;
-      } wm;
-   } state;
-};
-
 struct ilo_render *
 ilo_render_create(struct ilo_builder *builder);
 
diff --git a/src/gallium/drivers/ilo/ilo_render_dynamic.c b/src/gallium/drivers/ilo/ilo_render_dynamic.c
index 6f530ac..fda50dc 100644
--- a/src/gallium/drivers/ilo/ilo_render_dynamic.c
+++ b/src/gallium/drivers/ilo/ilo_render_dynamic.c
@@ -30,7 +30,6 @@
 #include "ilo_builder_3d.h"
 #include "ilo_state.h"
 #include "ilo_render_gen.h"
-#include "ilo_render.h"
 
 #define DIRTY(state) (session->pipe_dirty & ILO_DIRTY_ ## state)
 
diff --git a/src/gallium/drivers/ilo/ilo_render_gen.h b/src/gallium/drivers/ilo/ilo_render_gen.h
index ffddaa8..09c603d 100644
--- a/src/gallium/drivers/ilo/ilo_render_gen.h
+++ b/src/gallium/drivers/ilo/ilo_render_gen.h
@@ -30,12 +30,100 @@
 
 #include "ilo_common.h"
 #include "ilo_builder.h"
+#include "ilo_state.h"
 #include "ilo_render.h"
 
+struct ilo_bo;
 struct ilo_blitter;
 struct ilo_render;
 struct ilo_state_vector;
 
+/**
+ * Render Engine.
+ */
+struct ilo_render {
+   const struct ilo_dev_info *dev;
+   struct ilo_builder *builder;
+
+   struct intel_bo *workaround_bo;
+
+   uint32_t packed_sample_position_1x;
+   uint32_t packed_sample_position_4x;
+   uint32_t packed_sample_position_8x[2];
+
+   bool hw_ctx_changed;
+
+   /*
+    * Any state that involves resources needs to be re-emitted when the
+    * batch bo changed.  This is because we do not pin the resources and
+    * their offsets (or existence) may change between batch buffers.
+    */
+   bool batch_bo_changed;
+   bool state_bo_changed;
+   bool instruction_bo_changed;
+
+   /**
+    * HW states.
+    */
+   struct ilo_render_state {
+      /*
+       * When a WA is needed before some command, we always emit the WA right
+       * before the command.  Knowing what have already been done since last
+       * 3DPRIMITIVE allows us to skip some WAs.
+       */
+      uint32_t current_pipe_control_dw1;
+
+      /*
+       * When a WA is needed after some command, we may have the WA follow the
+       * command immediately or defer it.  If this is non-zero, a PIPE_CONTROL
+       * will be emitted before 3DPRIMITIVE.
+       */
+      uint32_t deferred_pipe_control_dw1;
+
+      bool primitive_restart;
+      int reduced_prim;
+      int so_max_vertices;
+
+      uint32_t SF_VIEWPORT;
+      uint32_t CLIP_VIEWPORT;
+      uint32_t SF_CLIP_VIEWPORT; /* GEN7+ */
+      uint32_t CC_VIEWPORT;
+
+      uint32_t COLOR_CALC_STATE;
+      uint32_t BLEND_STATE;
+      uint32_t DEPTH_STENCIL_STATE;
+
+      uint32_t SCISSOR_RECT;
+
+      struct {
+         uint32_t BINDING_TABLE_STATE;
+         int BINDING_TABLE_STATE_size;
+         uint32_t SURFACE_STATE[ILO_MAX_VS_SURFACES];
+         uint32_t SAMPLER_STATE;
+         uint32_t SAMPLER_BORDER_COLOR_STATE[ILO_MAX_SAMPLERS];
+         uint32_t PUSH_CONSTANT_BUFFER;
+         int PUSH_CONSTANT_BUFFER_size;
+      } vs;
+
+      struct {
+         uint32_t BINDING_TABLE_STATE;
+         int BINDING_TABLE_STATE_size;
+         uint32_t SURFACE_STATE[ILO_MAX_GS_SURFACES];
+         bool active;
+      } gs;
+
+      struct {
+         uint32_t BINDING_TABLE_STATE;
+         int BINDING_TABLE_STATE_size;
+         uint32_t SURFACE_STATE[ILO_MAX_WM_SURFACES];
+         uint32_t SAMPLER_STATE;
+         uint32_t SAMPLER_BORDER_COLOR_STATE[ILO_MAX_SAMPLERS];
+         uint32_t PUSH_CONSTANT_BUFFER;
+         int PUSH_CONSTANT_BUFFER_size;
+      } wm;
+   } state;
+};
+
 struct gen6_draw_session {
    uint32_t pipe_dirty;
 
diff --git a/src/gallium/drivers/ilo/ilo_render_gen6.c b/src/gallium/drivers/ilo/ilo_render_gen6.c
index f2b876c..b60075c 100644
--- a/src/gallium/drivers/ilo/ilo_render_gen6.c
+++ b/src/gallium/drivers/ilo/ilo_render_gen6.c
@@ -36,7 +36,6 @@
 #include "ilo_query.h"
 #include "ilo_shader.h"
 #include "ilo_state.h"
-#include "ilo_render.h"
 #include "ilo_render_gen.h"
 
 /**
diff --git a/src/gallium/drivers/ilo/ilo_render_gen7.c b/src/gallium/drivers/ilo/ilo_render_gen7.c
index 888d678..33e119a 100644
--- a/src/gallium/drivers/ilo/ilo_render_gen7.c
+++ b/src/gallium/drivers/ilo/ilo_render_gen7.c
@@ -33,7 +33,6 @@
 #include "ilo_builder_render.h"
 #include "ilo_shader.h"
 #include "ilo_state.h"
-#include "ilo_render.h"
 #include "ilo_render_gen.h"
 
 /**
diff --git a/src/gallium/drivers/ilo/ilo_render_surface.c b/src/gallium/drivers/ilo/ilo_render_surface.c
index 50d3728..bf5554b 100644
--- a/src/gallium/drivers/ilo/ilo_render_surface.c
+++ b/src/gallium/drivers/ilo/ilo_render_surface.c
@@ -30,7 +30,6 @@
 #include "ilo_builder_3d.h"
 #include "ilo_state.h"
 #include "ilo_render_gen.h"
-#include "ilo_render.h"
 
 #define DIRTY(state) (session->pipe_dirty & ILO_DIRTY_ ## state)
 




More information about the mesa-commit mailing list