panfrost: XMLify stencil op
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6195>
This commit is contained in:
parent
d182a6057f
commit
e9ca320461
|
@ -387,28 +387,28 @@ panfrost_translate_stencil_op(enum pipe_stencil_op in)
|
|||
{
|
||||
switch (in) {
|
||||
case PIPE_STENCIL_OP_KEEP:
|
||||
return MALI_STENCIL_KEEP;
|
||||
return MALI_STENCIL_OP_KEEP;
|
||||
|
||||
case PIPE_STENCIL_OP_ZERO:
|
||||
return MALI_STENCIL_ZERO;
|
||||
return MALI_STENCIL_OP_ZERO;
|
||||
|
||||
case PIPE_STENCIL_OP_REPLACE:
|
||||
return MALI_STENCIL_REPLACE;
|
||||
return MALI_STENCIL_OP_REPLACE;
|
||||
|
||||
case PIPE_STENCIL_OP_INCR:
|
||||
return MALI_STENCIL_INCR;
|
||||
return MALI_STENCIL_OP_INCR_SAT;
|
||||
|
||||
case PIPE_STENCIL_OP_DECR:
|
||||
return MALI_STENCIL_DECR;
|
||||
return MALI_STENCIL_OP_DECR_SAT;
|
||||
|
||||
case PIPE_STENCIL_OP_INCR_WRAP:
|
||||
return MALI_STENCIL_INCR_WRAP;
|
||||
return MALI_STENCIL_OP_INCR_WRAP;
|
||||
|
||||
case PIPE_STENCIL_OP_DECR_WRAP:
|
||||
return MALI_STENCIL_DECR_WRAP;
|
||||
return MALI_STENCIL_OP_DECR_WRAP;
|
||||
|
||||
case PIPE_STENCIL_OP_INVERT:
|
||||
return MALI_STENCIL_INVERT;
|
||||
return MALI_STENCIL_OP_INVERT;
|
||||
|
||||
default:
|
||||
unreachable("Invalid stencil op");
|
||||
|
@ -585,9 +585,9 @@ panfrost_frag_meta_zsa_update(struct panfrost_context *ctx,
|
|||
struct pipe_stencil_state default_stencil = {
|
||||
.enabled = 0,
|
||||
.func = PIPE_FUNC_ALWAYS,
|
||||
.fail_op = MALI_STENCIL_KEEP,
|
||||
.zfail_op = MALI_STENCIL_KEEP,
|
||||
.zpass_op = MALI_STENCIL_KEEP,
|
||||
.fail_op = PIPE_STENCIL_OP_KEEP,
|
||||
.zfail_op = PIPE_STENCIL_OP_KEEP,
|
||||
.zpass_op = PIPE_STENCIL_OP_KEEP,
|
||||
.writemask = 0xFF,
|
||||
.valuemask = 0xFF
|
||||
};
|
||||
|
|
|
@ -88,17 +88,6 @@ typedef uint64_t mali_ptr;
|
|||
/* Stencil test state is all encoded in a single u32, just with a lot of
|
||||
* enums... */
|
||||
|
||||
enum mali_stencil_op {
|
||||
MALI_STENCIL_KEEP = 0,
|
||||
MALI_STENCIL_REPLACE = 1,
|
||||
MALI_STENCIL_ZERO = 2,
|
||||
MALI_STENCIL_INVERT = 3,
|
||||
MALI_STENCIL_INCR_WRAP = 4,
|
||||
MALI_STENCIL_DECR_WRAP = 5,
|
||||
MALI_STENCIL_INCR = 6,
|
||||
MALI_STENCIL_DECR = 7
|
||||
};
|
||||
|
||||
struct mali_stencil_test {
|
||||
unsigned ref : 8;
|
||||
unsigned mask : 8;
|
||||
|
|
|
@ -480,28 +480,6 @@ pandecode_msaa_mode(enum mali_msaa_mode mode)
|
|||
}
|
||||
#undef DEFINE_CASE
|
||||
|
||||
#define DEFINE_CASE(name) case MALI_STENCIL_ ## name: return "MALI_STENCIL_" #name
|
||||
static char *
|
||||
pandecode_stencil_op(enum mali_stencil_op op)
|
||||
{
|
||||
switch (op) {
|
||||
DEFINE_CASE(KEEP);
|
||||
DEFINE_CASE(REPLACE);
|
||||
DEFINE_CASE(ZERO);
|
||||
DEFINE_CASE(INVERT);
|
||||
DEFINE_CASE(INCR_WRAP);
|
||||
DEFINE_CASE(DECR_WRAP);
|
||||
DEFINE_CASE(INCR);
|
||||
DEFINE_CASE(DECR);
|
||||
|
||||
default:
|
||||
pandecode_msg("XXX: invalid stencil op %X\n", op);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
#undef DEFINE_CASE
|
||||
|
||||
static char *pandecode_attr_mode_short(enum mali_attr_mode mode)
|
||||
{
|
||||
switch(mode) {
|
||||
|
@ -1642,9 +1620,9 @@ pandecode_stencil(const char *name, const struct mali_stencil_test *stencil)
|
|||
return;
|
||||
|
||||
const char *func = mali_func_as_str(stencil->func);
|
||||
const char *sfail = pandecode_stencil_op(stencil->sfail);
|
||||
const char *dpfail = pandecode_stencil_op(stencil->dpfail);
|
||||
const char *dppass = pandecode_stencil_op(stencil->dppass);
|
||||
const char *sfail = mali_stencil_op_as_str(stencil->sfail);
|
||||
const char *dpfail = mali_stencil_op_as_str(stencil->dpfail);
|
||||
const char *dppass = mali_stencil_op_as_str(stencil->dppass);
|
||||
|
||||
if (stencil->zero)
|
||||
pandecode_msg("XXX: stencil zero tripped: %X\n", stencil->zero);
|
||||
|
|
|
@ -38,4 +38,15 @@
|
|||
<value name="Always" value="7"/>
|
||||
</enum>
|
||||
|
||||
<enum name="Stencil Op">
|
||||
<value name="Keep" value="0"/>
|
||||
<value name="Replace" value="1"/>
|
||||
<value name="Zero" value="2"/>
|
||||
<value name="Invert" value="3"/>
|
||||
<value name="Incr Wrap" value="4"/>
|
||||
<value name="Decr Wrap" value="5"/>
|
||||
<value name="Incr Sat" value="6"/>
|
||||
<value name="Decr Sat" value="7"/>
|
||||
</enum>
|
||||
|
||||
</panxml>
|
||||
|
|
|
@ -214,9 +214,9 @@ panfrost_load_midg(
|
|||
struct mali_stencil_test stencil = {
|
||||
.mask = 0xFF,
|
||||
.func = MALI_FUNC_ALWAYS,
|
||||
.sfail = MALI_STENCIL_REPLACE,
|
||||
.dpfail = MALI_STENCIL_REPLACE,
|
||||
.dppass = MALI_STENCIL_REPLACE,
|
||||
.sfail = MALI_STENCIL_OP_REPLACE,
|
||||
.dpfail = MALI_STENCIL_OP_REPLACE,
|
||||
.dppass = MALI_STENCIL_OP_REPLACE,
|
||||
};
|
||||
|
||||
union midgard_blend replace = {
|
||||
|
|
Loading…
Reference in New Issue