mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-20 20:50:44 +02:00
i915g: More ops commute.
This allows using the optimizations more broadly.
This commit is contained in:
parent
cb4d1d377d
commit
841eee5d44
2 changed files with 22 additions and 6 deletions
|
|
@ -42,5 +42,8 @@ Random list of problems with i915g:
|
|||
|
||||
- Continue a previous primitive when there are no state changes
|
||||
|
||||
- Switch to the blitter for those buggy blit copies
|
||||
- Or state save/restore has a bug with u_blitter, fix it.
|
||||
|
||||
Other bugs can be found here:
|
||||
https://bugs.freedesktop.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Drivers/Gallium/i915g
|
||||
|
|
|
|||
|
|
@ -87,17 +87,30 @@ static boolean is_unswizzled(struct i915_full_src_register* r,
|
|||
|
||||
static boolean op_commutes(unsigned opcode)
|
||||
{
|
||||
if (opcode == TGSI_OPCODE_ADD) return TRUE;
|
||||
if (opcode == TGSI_OPCODE_MUL) return TRUE;
|
||||
switch(opcode)
|
||||
{
|
||||
case TGSI_OPCODE_ADD:
|
||||
case TGSI_OPCODE_MUL:
|
||||
case TGSI_OPCODE_DP2:
|
||||
case TGSI_OPCODE_DP3:
|
||||
case TGSI_OPCODE_DP4:
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static unsigned op_neutral_element(unsigned opcode)
|
||||
{
|
||||
if (opcode == TGSI_OPCODE_ADD)
|
||||
return TGSI_SWIZZLE_ZERO;
|
||||
if (opcode == TGSI_OPCODE_MUL)
|
||||
return TGSI_SWIZZLE_ONE;
|
||||
switch(opcode)
|
||||
{
|
||||
case TGSI_OPCODE_ADD:
|
||||
return TGSI_SWIZZLE_ZERO;
|
||||
case TGSI_OPCODE_MUL:
|
||||
case TGSI_OPCODE_DP2:
|
||||
case TGSI_OPCODE_DP3:
|
||||
case TGSI_OPCODE_DP4:
|
||||
return TGSI_SWIZZLE_ONE;
|
||||
}
|
||||
|
||||
debug_printf("Unknown opcode %d\n",opcode);
|
||||
return TGSI_SWIZZLE_ZERO;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue