Fix KHR-GL45/46.enhanced_layouts.varying_block_member_locations
authorEleni Maria Stea <estea@igalia.com>
Wed, 20 Sep 2017 11:28:40 +0000 (14:28 +0300)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Sun, 1 Oct 2017 15:00:54 +0000 (11:00 -0400)
commit4b6462e469359ac7ddec9c63d042e43ead6031fc
tree409abb46b55ad849c528edf98dad01cf87ba5687
parent658ace330840534218ab16e6721e93cbaf5e33c0
Fix KHR-GL45/46.enhanced_layouts.varying_block_member_locations

The stages of the same program used in/out blocks that didn't match
(see section 4.7.1 in OpenGL 4.5 spec: qualification mismatch) and as a
result a linker error was produced. With this change all stages use the
same block definition which is either the 1st or the 2nd depending on
the iteration but not both at the same time:

Goku {
    vec4 gohan;
    vec4 goten;
    vec4 chichi;
} gokuARRAY;

Goku {
    layout (location = 2) vec4 gohan;
    layout (location = 4) vec4 goten;
    layout (location = 6) vec4 chichi;
} gokuARRAY;

Affects:

KHR-GL46.enhanced_layouts.varying_block_member_locations
KHR-GL45.enhanced_layouts.varying_block_member_locations

Components: OpenGL

VK-GL-CTS issue: 703

Change-Id: I03a6a90929e28489a2507838003c62475a8a58b8
external/openglcts/modules/gl/gl4cEnhancedLayoutsTests.cpp