Summary: | [bisected IVB SNB]Ogles1conform mustpass.c regressed | ||
---|---|---|---|
Product: | Mesa | Reporter: | lu hua <huax.lu> |
Component: | Drivers/DRI/i965 | Assignee: | Eric Anholt <eric> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | high | CC: | idr, xunx.fang |
Version: | git | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
lu hua
2012-05-24 22:48:51 UTC
This should be the fix: commit ff3eef1affd0d3b56d4ce689947947be97c5d0f6 Author: Oliver McFadden <oliver.mcfadden@linux.intel.com> Date: Sat May 26 10:13:07 2012 +0300 mesa: don't compile integer clear shaders for unsupported APIs Following cases still fail on ivybridge and sandybridge,and following cases also fail on ironlake with mesa master branch. mustpass.c xformmix.c vorder.c bclear.c mask.c scissor.c apfunc.c spclear.c spcorner.c spop.c spfunc.c zbclear.c linerast.c trirast.c tritile.c polycull.c packpix.c xformw.c clip.c userclip.c bufobj.c I can confirm this - switching to _mesa_meta_Clear instead of _mesa_meta_glsl_Clear fixes the ES tests. Still need to investigate why it's broken. The problem is simple enough. In api_validate.c, on line 120, we have: #if FEATURE_ES1 case API_OPENGLES: /* For OpenGL ES, only draw if we have vertex positions */ if (!ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_POS].Enabled) return GL_FALSE; break; #endif This rejects any drawing from _mesa_meta_glsl_Clear(), as it doesn't use VERT_ATTRIB_POS...it uses a custom attribute. Simply deleting the code and letting it fall through to the API_OPENGL case works. This may even be the right thing to do. If there's a shader program (we're using GLSL internally), the API_OPENGL case does the right thing. If not, it checks if VERT_ATTRIB_POS is enabled (the same as the ES1 check) or a generic attribute is enabled (which don't exist in ES1, so it should be safe). The only trouble there, as far as I can tell, is making it compile if FEATURE_ES1 && !FEATURE_GL. Punting it back to Eric to decide what to do, but hopefully the analysis should save him some time. Fixed on commit 34665381713249c29b7da5028396222dfea477c2. Verified .Fixed. |
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.