mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
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:
parent
7da9795070
commit
5b226ad603
4 changed files with 44 additions and 15 deletions
|
|
@ -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, ¶ms);
|
||||
}
|
||||
|
||||
} /* extern "C" */
|
||||
|
||||
void
|
||||
brw_blorp_exec(struct intel_context *intel, const brw_blorp_params *params)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue