radeonsi: support indirect indexing in INTERP_* opcodes
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 16 Jun 2017 18:50:56 +0000 (20:50 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 26 Jun 2017 12:02:06 +0000 (14:02 +0200)
commitf17d78becc8af2b3c2b9fd236c3cd9eb0682e66e
treeffa95b75873e336c311eccb2a8a26380014442ce
parent162c42f8edde4a2c13b1eb5c0f9f0828441ed4c8
radeonsi: support indirect indexing in INTERP_* opcodes

The hardware doesn't support it, so we just interpolate all array elements
and then use indirect indexing on the resulting vector.

Clearly, this is not very efficient. There is an argument to be had for
adding if/else, or perhaps even pulling the data out of LDS directly.
Both don't really seem worth the effort, considering that it seems nobody
actually uses this feature.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader.c