tgsi: Recognize RET in main for tgsi_transform
authorRoland Scheidegger <sroland@vmware.com>
Tue, 13 Feb 2018 17:56:34 +0000 (18:56 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 14 Feb 2018 01:06:54 +0000 (02:06 +0100)
commitf6718baabc7d6fed0d41f72fb22e57c0d67fbf1d
tree28f6c6ecd16e78096b74f6e30fbb9f136a5202f3
parent7461bd5b8f77652195bdb771232cb762b9b8758f
tgsi: Recognize RET in main for tgsi_transform

Shaders coming from dx10 state trackers have a RET before the END.
And the epilog needs to be placed before the RET (otherwise it will
get ignored).
Hence figure out if a RET is in main, in this case we'll place
the epilog there rather than before the END.
(At a closer look, there actually seem to be problems with control
flow in general with output redirection, that would need another
look. It's enough however to fix draw's aa line emulation in some
internal bug - lines tend to be drawn with trivial shaders, moving
either a constant color or a vertex color directly to the output).

v2: add assert so buggy handling of RET in main is detected

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_transform.c