ilo: make ilo_render opaque
authorChia-I Wu <olvaffe@gmail.com>
Thu, 25 Sep 2014 08:41:31 +0000 (16:41 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Fri, 26 Sep 2014 13:15:55 +0000 (21:15 +0800)
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@gmail.com>
src/gallium/drivers/ilo/ilo_render.c
src/gallium/drivers/ilo/ilo_render.h
src/gallium/drivers/ilo/ilo_render_dynamic.c
src/gallium/drivers/ilo/ilo_render_gen.h
src/gallium/drivers/ilo/ilo_render_gen6.c
src/gallium/drivers/ilo/ilo_render_gen7.c
src/gallium/drivers/ilo/ilo_render_surface.c

index 2b8412a348f33332178f08fc7af9d2707c122772..9291855c129ea9f3ba4e298c44605e4aa8977356 100644 (file)
@@ -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 {
index 60e3769e0dc4ddedfd63d2db6927ffe334445ecd..0cf1d0311b03c13cbe793f74555afd59d7fada0b 100644 (file)
 #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);
 
index 6f530ac99b216099fa9013a51e1659775195accd..fda50dc7c80e2397a3134bbda4c4a32cb3fc98bf 100644 (file)
@@ -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)
 
index ffddaa87f67c64c6c0d297d7069bd629d6f411c9..09c603dcbf4402a40c632f1c6472c8a25bbd93e9 100644 (file)
 
 #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;
 
index f2b876cf046fbbf2d0841dee3e3886f143f85b74..b60075cb3c28338130413d9df2771710a1e335c4 100644 (file)
@@ -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"
 
 /**
index 888d67810af8e4a52d64061e7a79959f9961ff48..33e119aa9329e87fe2e53ea2ececb2912cb98ce5 100644 (file)
@@ -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"
 
 /**
index 50d37289f9326a852b1f12e92e171ca8138d693a..bf5554bded7292001d76d5dd751a3d7e8a0499d4 100644 (file)
@@ -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)