Summary: | Crash in library libswrAVX.so when assigning vertex buffer object pointers with elements of type GL_DOUBLE | ||
---|---|---|---|
Product: | Mesa | Reporter: | chris |
Component: | Drivers/Gallium/swr | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | mesa-dev |
Severity: | critical | ||
Priority: | medium | CC: | chris |
Version: | 13.0 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
chris
2016-12-28 20:53:04 UTC
I suspect this is due to dynamic detection of AVX2. This is not an issue on AVX2 enabled CPUs. The particular machine in question does not have the AVX2 flag, however this should not end in a crash. (In reply to chris from comment #1) > I suspect this is due to dynamic detection of AVX2. Not at all. GL_DOUBLE is just plain not supported on swr. If AVX2 presence/absence causes changes in behaviour, you have some configuration issue on your end (e.g. perhaps you're using llvmpipe with one, and swr with the other). [Note that GL_DOUBLE is an almost completely pointless feature - the "GPU" will still convert your doubles to 32-bit floats. If you want to feed actual fp64 values to your vertices, you need GL_ARB_vertex_attrib_fp64 or whatever.] Yes, you are correct. Just confirmed my other config is llvm-pipe as you mentioned. That's unfortunate. Spec indicates GL_DOUBLE as an accepted value. https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml Noted, will avoid in the future. Thanks for the info! (In reply to chris from comment #3) > That's unfortunate. Spec indicates GL_DOUBLE as an accepted value. > https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml Correct - it was one of the features added in GL 2.0, I believe. But swr is not a fully conformant driver, and this is one of the items that's lacking. Patches welcome! (In reply to Ilia Mirkin from comment #4) > (In reply to chris from comment #3) > > That's unfortunate. Spec indicates GL_DOUBLE as an accepted value. > > https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml > > Correct - it was one of the features added in GL 2.0, I believe. But swr is > not a fully conformant driver, and this is one of the items that's lacking. > Patches welcome! double type for vertex attributes is a 1.0 feature, actually. Albeit prior to 1.1 you couldn't use glVertexPointer and friends... Not to mention buffer objects... (Albeit I'd say you really should avoid it usually in any case, it will just get converted to float somewhere. Unless your data naturally comes as doubles, so it has to be converted somewhere no matter what.) GL_DOUBLE support added to mesa-master as commit 33fa4c99f7fa68fd8c33c75c4fe66c4cca76779f |
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.