On 5/10/18, Roland Scheidegger <srol...@vmware.com> wrote: > Quite a sneaky little bug, can't hurt to make undefined behavior a bit > more defined :-).
Actually, this behavior is completely defined in Direct3D, where out-of-bound access is expected to always return 0.0 . This is why Witcher1 has the issue in both Gallium Nine and WineD3D OpenGL. (Curiously, only the Linux native OpenGL version of Trine1 EE has that issue.) In OpenGL there is "ARB_robust_buffer_access_behavior" that Mesa3D claims to support. https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robust_buffer_access_behavior.txt Here is a quote that might be relevant to these cases: --- Add to Section 2.8 "Vertex Arrays" before 2.8.1 (Packed Vertex Data Formats): "Robust buffer access can be enabled by creating a context with robust access enabled through the window system binding APIs. When enabled, indices within the elements array that reference vertex data that lies outside the enabled attributes vertex buffer objects, result in reading zero.[...] --- It might be good idea to add some piglit test that checks to test for that, as some reports say that Tahiti (GCN 1) might have issues too. All D3D compatible hardware should already support that. Best Regards _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev