Summary: | GLSL: vectorize optimization goes wrong on dot products | ||
---|---|---|---|
Product: | Mesa | Reporter: | Aras Pranckevicius <aras> |
Component: | glsl-compiler | Assignee: | Matt Turner <mattst88> |
Status: | RESOLVED FIXED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Aras Pranckevicius
2014-02-19 19:01:49 UTC
Oh, I definitely saw this problem before. I'll handle it. Locally I could fix this with: /* Upon entering an ir_binop_dot, remove the current assignment from * further consideration. Dot product is "horizontal" instruction * that we can't vectorize. */ ir_visitor_status ir_vectorize_visitor::visit_enter(ir_expression *ir) { if (ir->operation == ir_binop_dot) { this->current_assignment = NULL; return visit_continue_with_parent; } return visit_continue; } But not sure if that's the correct approach. I've sent two patches to fix this: http://patchwork.freedesktop.org/patch/20935/ http://patchwork.freedesktop.org/patch/20936/ LGTM Committed. I think Ian's picked it over to the release branch too. |
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.