Commit fe527031 authored by oetuaho's avatar oetuaho Committed by Commit bot

Pass shader version to varying link check

Rules for invariant varying (or in/out variable) matching are different
for ESSL 3 and ESSL 1. Use a recently added ANGLE API to choose which
rules to use based on shader version.

Tested by WebGL 2 test deqp/data/gles3/shaders/qualification_order.html

BUG=488372
TEST=WebGL 2 conformance tests

Review URL: https://codereview.chromium.org/1135733006

Cr-Commit-Position: refs/heads/master@{#330335}
parent e49ed7ad
...@@ -1188,6 +1188,8 @@ bool Program::DetectVaryingsMismatch(std::string* conflicting_name) const { ...@@ -1188,6 +1188,8 @@ bool Program::DetectVaryingsMismatch(std::string* conflicting_name) const {
const VaryingMap* vertex_varyings = &(attached_shaders_[0]->varying_map()); const VaryingMap* vertex_varyings = &(attached_shaders_[0]->varying_map());
const VaryingMap* fragment_varyings = &(attached_shaders_[1]->varying_map()); const VaryingMap* fragment_varyings = &(attached_shaders_[1]->varying_map());
int shader_version = attached_shaders_[0]->shader_version();
for (VaryingMap::const_iterator iter = fragment_varyings->begin(); for (VaryingMap::const_iterator iter = fragment_varyings->begin();
iter != fragment_varyings->end(); ++iter) { iter != fragment_varyings->end(); ++iter) {
const std::string& name = iter->first; const std::string& name = iter->first;
...@@ -1203,7 +1205,7 @@ bool Program::DetectVaryingsMismatch(std::string* conflicting_name) const { ...@@ -1203,7 +1205,7 @@ bool Program::DetectVaryingsMismatch(std::string* conflicting_name) const {
continue; continue;
} }
if (!hit->second.isSameVaryingAtLinkTime(iter->second)) { if (!hit->second.isSameVaryingAtLinkTime(iter->second, shader_version)) {
*conflicting_name = name; *conflicting_name = name;
return true; return true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment