i965: Add HiZ operation state to brw_context
brw_context::hiz contains state needed to perform HiZ meta-ops and indicates if a HiZ operation is currently in progress. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
@@ -899,6 +899,41 @@ struct brw_context
|
||||
enum state_struct_type type;
|
||||
} *state_batch_list;
|
||||
int state_batch_count;
|
||||
|
||||
/**
|
||||
* \brief State needed to execute HiZ meta-ops
|
||||
*
|
||||
* All fields except \c op are initialized by gen6_hiz_init().
|
||||
*/
|
||||
struct brw_hiz_state {
|
||||
/**
|
||||
* \brief Indicates which HiZ operation is in progress.
|
||||
*
|
||||
* See the following sections of the Sandy Bridge PRM, Volume 1, Part2:
|
||||
* - 7.5.3.1 Depth Buffer Clear
|
||||
* - 7.5.3.2 Depth Buffer Resolve
|
||||
* - 7.5.3.3 Hierarchical Depth Buffer Resolve
|
||||
*/
|
||||
enum brw_hiz_op {
|
||||
BRW_HIZ_OP_NONE = 0,
|
||||
BRW_HIZ_OP_DEPTH_CLEAR,
|
||||
BRW_HIZ_OP_DEPTH_RESOLVE,
|
||||
BRW_HIZ_OP_HIZ_RESOLVE,
|
||||
} op;
|
||||
|
||||
/** \brief Shader state */
|
||||
struct {
|
||||
GLuint program;
|
||||
GLuint position_vbo;
|
||||
GLint position_location;
|
||||
} shader;
|
||||
|
||||
/** \brief VAO for the rectangle primitive's vertices. */
|
||||
GLuint vao;
|
||||
|
||||
GLuint fbo;
|
||||
struct gl_renderbuffer *depth_rb;
|
||||
} hiz;
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user