aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2014-09-25 16:41:31 +0800
committerChia-I Wu <[email protected]>2014-09-26 21:15:55 +0800
commit4be7b7ee8597cd6bd38c0678deb23928a3acb59f (patch)
tree0c12d09bc28b02e86965117b0b6bd0b9f68aac6c /src
parent8f284343e08bffa798c99763e4a3c234da6ab4d3 (diff)
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 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/ilo/ilo_render.c1
-rw-r--r--src/gallium/drivers/ilo/ilo_render.h91
-rw-r--r--src/gallium/drivers/ilo/ilo_render_dynamic.c1
-rw-r--r--src/gallium/drivers/ilo/ilo_render_gen.h88
-rw-r--r--src/gallium/drivers/ilo/ilo_render_gen6.c1
-rw-r--r--src/gallium/drivers/ilo/ilo_render_gen7.c1
-rw-r--r--src/gallium/drivers/ilo/ilo_render_surface.c1
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 2b8412a348f..9291855c129 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 60e3769e0dc..0cf1d0311b0 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 6f530ac99b2..fda50dc7c80 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 ffddaa87f67..09c603dcbf4 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 f2b876cf046..b60075cb3c2 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 888d67810af..33e119aa932 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 50d37289f93..bf5554bded7 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)