| Summary: | GLAMOR crashes when drawing dashed lines | ||||||
|---|---|---|---|---|---|---|---|
| Product: | xorg | Reporter: | Max Staudt <bugzilla-fdo-max> | ||||
| Component: | Server/Acceleration/glamor | Assignee: | Xorg Project Team <xorg-team> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
| Severity: | normal | ||||||
| Priority: | medium | CC: | sndirsch | ||||
| Version: | git | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| See Also: | https://bugzilla.opensuse.org/show_bug.cgi?id=1025985 | ||||||
| Whiteboard: | |||||||
| i915 platform: | i915 features: | ||||||
| Attachments: |
|
||||||
|
Description
Max Staudt
2017-03-02 18:40:27 UTC
This is how it crashes in the commit that introduced it, bd3b2c48f69a5169aefb261c041462271c69a07a :
Failed to compile VS: 0:13(43): error: `pos' undeclared
0:13(14): error: operands to arithmetic operators must be numeric
0:13(13): error: operands to arithmetic operators must be numeric
Program source:
#version 130
attribute vec3 primitive;
varying float dash_offset;
uniform vec2 fill_offset;
uniform vec2 fill_size;
varying vec2 fill_pos;
uniform float dash_length;
uniform vec4 v_matrix;
void main() {
dash_offset = primitive.z / dash_length;
gl_Position.xy = primitive.xy.xy * v_matrix.xz + v_matrix.yw;
gl_Position.zw = vec2(0.0,1.0);
fill_pos = (fill_offset + primitive.xy + pos) / fill_size;
}
Some commit has since changed fill_size to fill_size_inv.
Since the recent d8161aeb50891ae10c5656487ce8f982deed5f9f we now also have vec2_pos undeclared:
Failed to compile VS: 0:11(2): error: `vec2_pos' undeclared
0:11(2): error: value of type vec2 cannot be assigned to variable of type error
0:14(43): error: `pos' undeclared
0:14(14): error: operands to arithmetic operators must be numeric
0:14(13): error: operands to arithmetic operators must be numeric
Program source:
#version 130
attribute vec3 primitive;
varying float dash_offset;
uniform vec2 fill_offset;
uniform vec2 fill_size_inv;
varying vec2 fill_pos;
uniform float dash_length;
uniform vec4 v_matrix;
void main() {
dash_offset = primitive.z / dash_length;
vec2_pos = vec2(0,0);
gl_Position.xy = primitive.xy.xy * v_matrix.xz + v_matrix.yw;
gl_Position.zw = vec2(0.0,1.0);
fill_pos = (fill_offset + primitive.xy + pos) * fill_size_inv;
}
(EE)
Fatal server error:
(EE) GLSL compile failure
(EE)
*** This bug has been marked as a duplicate of bug 99943 *** Aaah, thanks for pointing out the other bug! However, I'm afraid this is not a dupe. To put things in perspective: The patch that introduced bug 99943 has been written in an attempt to solve the bug I described here, and which was originally filed at: https://bugzilla.opensuse.org/show_bug.cgi?id=1025985 It's similar to bug 97300, but not the same. Fixed in Git master. |
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.