i965: Add an interface for doing hiz ops from C code.

This required moving gen6_hiz_op, and I put it in intel_resolve_map.h
for the next commit.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
Eric Anholt 2012-05-21 09:30:35 -07:00
parent 7da9795070
commit 5b226ad603
4 changed files with 44 additions and 15 deletions

View file

@ -98,6 +98,17 @@ brw_blorp_params::brw_blorp_params()
{
}
extern "C" {
void
intel_hiz_exec(struct intel_context *intel, struct intel_mipmap_tree *mt,
unsigned int level, unsigned int layer, gen6_hiz_op op)
{
brw_hiz_op_params params(mt, level, layer, op);
brw_blorp_exec(intel, &params);
}
} /* extern "C" */
void
brw_blorp_exec(struct intel_context *intel, const brw_blorp_params *params)
{

View file

@ -25,26 +25,12 @@
#include <stdint.h>
#include "brw_context.h"
#include "intel_mipmap_tree.h"
struct brw_context;
/**
* For an overview of the HiZ operations, 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 gen6_hiz_op {
GEN6_HIZ_OP_DEPTH_CLEAR,
GEN6_HIZ_OP_DEPTH_RESOLVE,
GEN6_HIZ_OP_HIZ_RESOLVE,
GEN6_HIZ_OP_NONE,
};
/**
* Binding table indices used by BLORP.
*/

View file

@ -421,6 +421,21 @@ intel_miptree_unmap(struct intel_context *intel,
unsigned int level,
unsigned int slice);
#ifdef I915
static inline void
intel_hiz_exec(struct intel_context *intel, struct intel_mipmap_tree *mt,
unsigned int level, unsigned int layer, enum gen6_hiz_op op)
{
/* Stub on i915. It would be nice if we didn't execute resolve code at all
* there.
*/
}
#else
void
intel_hiz_exec(struct intel_context *intel, struct intel_mipmap_tree *mt,
unsigned int level, unsigned int layer, enum gen6_hiz_op op);
#endif
#ifdef __cplusplus
}
#endif

View file

@ -25,6 +25,23 @@
#include <stdint.h>
/**
* For an overview of the HiZ operations, 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
*
* Of these, two get entered in the resolve map as needing to be done to the
* buffer: depth resolve and hiz resolve.
*/
enum gen6_hiz_op {
GEN6_HIZ_OP_DEPTH_CLEAR,
GEN6_HIZ_OP_DEPTH_RESOLVE,
GEN6_HIZ_OP_HIZ_RESOLVE,
GEN6_HIZ_OP_NONE,
};
enum intel_need_resolve {
INTEL_NEED_HIZ_RESOLVE,
INTEL_NEED_DEPTH_RESOLVE,