glsl/linker: Reduce scope of non-flat integer varying fix.
In the mailing list discussion of "glsl/linker: fix varying packing for non-flat integer varyings." (commit7862bde
), we concluded that since the bug only applies to integral variables, it is safer to just apply the bug fix to integer varyings. I forgot to make the change before pushing the patch upstream. (Note: we aren't aware of any bugs in commit 7862bde; it just seems wise to be on the safe side). This patch makes the change. Assuming commit7862bde
gets cherry-picked back to 9.1, this commit should be cherry-picked too. NOTE: This is a candidate for the 9.1 release branch.
This commit is contained in:
@@ -676,12 +676,11 @@ varying_matches::record(ir_variable *producer_var, ir_variable *consumer_var)
|
||||
return;
|
||||
}
|
||||
|
||||
if (consumer_var == NULL || !consumer_is_fs) {
|
||||
if ((consumer_var == NULL && producer_var->type->contains_integer()) ||
|
||||
!consumer_is_fs) {
|
||||
/* Since this varying is not being consumed by the fragment shader, its
|
||||
* interpolation type varying cannot possibly affect rendering. Also,
|
||||
* since the GL spec only requires integer varyings to be "flat" when
|
||||
* they are fragment shader inputs, it is possible that this variable is
|
||||
* non-flat and is (or contains) an integer.
|
||||
* this variable is non-flat and is (or contains) an integer.
|
||||
*
|
||||
* lower_packed_varyings requires all integer varyings to flat,
|
||||
* regardless of where they appear. We can trivially satisfy that
|
||||
|
Reference in New Issue
Block a user