-
Re: Segfault in GLSL linker
dwitczakJun 27, 2017 2:32 AM (in response to sdanisch)
Thanks for the feedback and apologies for the delay in my response. I'm patching this through to the compiler team. Will get back as soon as I hear back.
-
Re: Segfault in GLSL linker
dwitczakJun 28, 2017 2:24 AM (in response to dwitczak)
I can confirm this is a compiler-side issue. We're working on getting it resolved.
-
Re: Segfault in GLSL linker
dwitczakJun 29, 2017 7:55 AM (in response to dwitczak)
OK, so as it turns out, this is actually a shader issue. Here's the feed-back I got from the team:
>>
in Vert2Geom geom_in[];
void emit_vertex2(Vert2Geom[2] geom_in, Canvas canvas, Uniforms uniforms, vec2 position, vec2 uv, int index)
{
}
void main()
{
emit_vertex2(geom_in, canvas, uniforms, p0 + thickness_aa0 * n0, vec2(0, -uv0), 1);
emit_vertex2(geom_in, canvas, uniforms, p0 - thickness_aa0 * n0, vec2(0, uv0), 1);
emit_vertex2(geom_in, canvas, uniforms, p1 + thickness_aa1 * n0, vec2(l, -uv1), 2);
emit_vertex2(geom_in, canvas, uniforms, p1 - thickness_aa1 * n0, vec2(l, uv1), 2);}
the parameter geom_in has no array size, which is not allowed. According to glsl spec(chapter 4.1.9): The size of any array must be declared before passing it as an argument to a function. Violation of any of these rules result in compile-time errors.
<<
The compiler-side issue I mentioned in my previous response is that we should be returning a compilation error for this case but we don't. We're going to improve this in one of the upcoming driver
releases.
-
Re: Segfault in GLSL linker
dwitczakJul 12, 2017 2:15 AM (in response to dwitczak)
Some further feed-back. After giving this a closer look, we ultimately concluded the GLSL spec actually permits this use case. We fixed the bug internally. One of the upcoming driver releases should start handling this shader correctly.
-
-
-