OSDN Git Service

i965: Set ExecSize to 16 for loop instructions in SIMD16 shaders.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 4 Aug 2014 07:06:05 +0000 (00:06 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 8 Aug 2014 07:51:50 +0000 (00:51 -0700)
commite9a9d441f0b1a0293e0901d0f6b99a946e51f6f4
tree1af364d11779131ded1ae9e41c9cfa588e0670ae
parente64dbd050d6d5b4ea502ee2fc727e12135833771
i965: Set ExecSize to 16 for loop instructions in SIMD16 shaders.

Previously, we explicitly set the execution size to BRW_EXECUTE_8 and
disabled compression for loop instructions.  I can't imagine how this
could be correct in SIMD16 mode.

Looking at the history, it appears that this code has used BRW_EXECUTE_8
since 2007, when we had a SIMD8 backend that supported control flow and
a separate SIMD16 backend that didn't.  Presumably, when we added SIMD16
support for shaders with control flow, we simply neglected to update it.

Note that Gen4-5 don't support SIMD16 on shaders with control flow.

This might be a candidate for stable, but would need to be rewritten
completely due to the brw_inst API changes in master.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_eu_emit.c