OSDN Git Service

glsl: Fix copying function's out to temp if dereferenced by array
authorDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Thu, 10 Jan 2019 16:16:59 +0000 (18:16 +0200)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 31 Jan 2019 12:06:17 +0000 (12:06 +0000)
commit871aea89fd334203c331e7a086738ec59458e1d9
tree0151e22685271b44d6fa72b568dc0c3cb2d3e736
parentf2c1d7acd0ca56a020a982425523ec8f7fade966
glsl: Fix copying function's out to temp if dereferenced by array

Function's out variable could be an array dereferenced by an array:
 func(v[w[i]]);
or something more complicated.

Copy index in any case.

Fixes: 76c27e47b906 ("glsl: Copy function out to temp if we don't directly ref a variable")

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 0862929bf64222e85e8242824aecf05e494c157c)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109488
Nominated-by: Matt Turner <mattst88@gmail.com>
src/compiler/glsl/ast_function.cpp