https://bugs.freedesktop.org/show_bug.cgi?id=43871 Bug #: 43871 Summary: shader with uniform array/record and if clauses is not translated correctly into TGSI IR Classification: Unclassified Product: Mesa Version: git Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 AssignedTo: dri-devel@xxxxxxxxxxxxxxxxxxxxx ReportedBy: vljn@xxxxxxx Hi, the following fragment shader : __ #version 130 uniform int mode; uniform vec3 red; uniform struct { vec3 green; vec3 blue; } teststruct; uniform vec3 testarray[3]; out vec3 fragColor; void main() { if (mode == 0) fragColor = red; if (mode == 1) fragColor = teststruct.green + teststruct.blue; if (mode == 2) { fragColor = vec3(0.); for(int i = 0; i < 3; i++) fragColor += testarray[i]; } } __ is lowered to : __ FRAG PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1 DCL IN[0], COLOR, LINEAR DCL OUT[0], COLOR 0: MOV OUT[0], IN[0] 1: END __ using mesa from git, swrast, and setting glsl supported version to 130 in st_extensions.c ; glsl_compiler --dump-lir seems correct, so it might be an issue with glsl-to-tgsi. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel