#include "ilo_builder_render.h"
#include "ilo_query.h"
#include "ilo_render_gen.h"
-#include "ilo_render.h"
/* in U0.4 */
struct sample_position {
#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);
#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)
#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;
#include "ilo_query.h"
#include "ilo_shader.h"
#include "ilo_state.h"
-#include "ilo_render.h"
#include "ilo_render_gen.h"
/**
#include "ilo_builder_render.h"
#include "ilo_shader.h"
#include "ilo_state.h"
-#include "ilo_render.h"
#include "ilo_render_gen.h"
/**
#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)