mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
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@gmail.com>
This commit is contained in:
parent
8f284343e0
commit
4be7b7ee85
7 changed files with 90 additions and 94 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue