mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 13:28:06 +02:00
pan/midgard: Analyze helper invocations
We check for texture ops which calculate derivatives (either explicitly via dFd* or implicitly) and mark the shader as requiring helper invocations. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
9d3fc737af
commit
20ac0b8e4e
2 changed files with 22 additions and 0 deletions
|
|
@ -1221,6 +1221,22 @@ print_texture_format(int format)
|
|||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
midgard_op_has_helpers(unsigned op, bool gather)
|
||||
{
|
||||
if (gather)
|
||||
return true;
|
||||
|
||||
switch (op) {
|
||||
case TEXTURE_OP_NORMAL:
|
||||
case TEXTURE_OP_DFDX:
|
||||
case TEXTURE_OP_DFDY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
print_texture_op(unsigned op, bool gather)
|
||||
{
|
||||
|
|
@ -1281,6 +1297,9 @@ print_texture_word(uint32_t *word, unsigned tabs)
|
|||
{
|
||||
midgard_texture_word *texture = (midgard_texture_word *) word;
|
||||
|
||||
midg_stats.helper_invocations |=
|
||||
midgard_op_has_helpers(texture->op, texture->is_gather);
|
||||
|
||||
/* Broad category of texture operation in question */
|
||||
print_texture_op(texture->op, texture->is_gather);
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ struct midgard_disasm_stats {
|
|||
unsigned instruction_count;
|
||||
unsigned bundle_count;
|
||||
unsigned quadword_count;
|
||||
|
||||
/* Should we enable helper invocations? */
|
||||
bool helper_invocations;
|
||||
};
|
||||
|
||||
struct midgard_disasm_stats
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue