Просмотр исходного кода

pan/midgard: Force alignment for csel_v

The swizzle on the conditional gets lost.

Fixes "horizontal mirroring" in godot. See
https://gitlab.freedesktop.org/mesa/mesa/issues/2108 which has attached
apitrace.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: d3b3daa9d3 ("pan/midgard: Use new scheduler")
Reported-by: Icecream95
master
Alyssa Rosenzweig 6 лет назад
Родитель
Сommit
5e75eb547f
1 измененных файлов: 8 добавлений и 0 удалений
  1. 8
    0
      src/panfrost/midgard/midgard_ra.c

+ 8
- 0
src/panfrost/midgard/midgard_ra.c Просмотреть файл



if (ins->type == TAG_LOAD_STORE_4 && ins->load_64) if (ins->type == TAG_LOAD_STORE_4 && ins->load_64)
min_alignment[dest] = 3; min_alignment[dest] = 3;

/* We don't have a swizzle for the conditional and we don't
* want to muck with the conditional itself, so just force
* alignment for now */

if (ins->type == TAG_ALU_4 && OP_IS_CSEL_V(ins->alu.op))
min_alignment[dest] = 4; /* 1 << 4= 16-byte = vec4 */

} }


for (unsigned i = 0; i < ctx->temp_count; ++i) { for (unsigned i = 0; i < ctx->temp_count; ++i) {

Загрузка…
Отмена
Сохранить