| Summary: | [GLSL] "float" can be implicitly converted to "int" | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | Gordon Jin <gordon.jin> |
| Component: | Mesa core | Assignee: | Ian Romanick <idr> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | minor | ||
| Priority: | medium | CC: | hedonghust |
| Version: | git | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Bug Depends on: | |||
| Bug Blocks: | 29044 | ||
I had same kind of issue when testing MESA compiler.
Here is my clue to solve this problem, just enable this code in slang_codegen.c
#if 0 /* not used just yet - causes problems elsewhere */
if (t0.spec.type == SLANG_SPEC_INT &&
t1.spec.type == SLANG_SPEC_FLOAT)
return GL_FALSE;
#endif
According to the comment on this code, to activate this code could cause other problems, so I guess you'd better run glean to test whether this change is safe for you.
DONG HE
Let's keep it open until it's actually fixed Below piglit cases fail with the same reason: comma1.vert comma2.vert comma3.vert conditional3.frag Fixed in glsl2. verified with mesa master d442a01ac14382d83cdaac87d2832315ceb3e963 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
GLSL is strict with type matching and doesn't allow automatic type conversion (except "int"->"float"), so below shader code is wrong but it is compiled successfully: int i = 1.0; This impacts piglit case: piglit/tests/glslparsertest/shaders/dataType4.frag