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:
Chad Versace
2011-11-15 18:20:20 -08:00
parent 1383e56bd9
commit 77a18428ff

View File

@@ -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;
};