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

Reply via email to