[Mesa-dev] [Bug 85467] [llvmpipe] piglit gl-1.0-dlist-beginend failure with llvm-3.6.0svn

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Oct 28 07:10:10 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=85467

José Fonseca <jfonseca at vmware.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|mesa-dev at lists.freedesktop. |sroland at vmware.com
                   |org                         |

--- Comment #4 from José Fonseca <jfonseca at vmware.com> ---
$ GALLIUM_TRACE=gl-1.0-dlist-beginend.gtrace ./bin/gl-1.0-dlist-beginend -auto
$ vim gl-1.0-dlist-beginend.gtrace # manually add the </call> and </trace> tags
$ python mesa/src/gallium/tools/trace/dump_state.py -d 1
gl-1.0-dlist-beginend.gtrace
[...]
    "vertex_buffers": [
        {
            "buffer": {
                "array_size": 1,
                "bind": 16,
                "data": [
                    "000000000000803f000000000000803f",
                    "000080bf000080bf000000000000803f",
                    "000000000000803f0000803f000080bf",
                    "000000000000803f000000000000803f",
                    "0000803f0000803f000000000000803f",
                    "000000000000803f000080bf0000803f",
    [...]
                ],
                "depth": 1,
                "flags": 0,
                "height": 1,
                "last_level": 0,
                "nr_samples": 1,
                "target": 0,
                "usage": 3,
                "width": 65536
            },
            "buffer_offset": 0,
            "stride": 24,                     <===========================
            "user_buffer": null
        }
    ],
    "vertex_elements": [
        {
            "src_format": "PIPE_FORMAT_R32G32_FLOAT",
            "src_offset": 16,
            "vertex_buffer_index": 0
        },
        {
            "src_format": "PIPE_FORMAT_R32G32B32A32_FLOAT",
<===================== but llvmpipe/draw/gallivm is probably generating code
that assumes this attribute is 16-byte aligned...
            "src_offset": 0,
            "vertex_buffer_index": 0
        }
    ],


In short:
- vertex stride is not multiple of 16bytes
- but llvmpipe/draw/gallivm is probably generating code that assumes that the
R32G32B32A32_FLOAT attribute is 16-byte aligned...


I think the bug is draw llvm code -- it can't assume that vertex elements are
16byte aligned.

In face, unless it advertises TRUE to
  PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY
  PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY
  PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY
it shouldn't even assume it's 4-byte aligned. (And BTW, llvpipe should probably
advertise TRUE for these.)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141028/4de75274/attachment.html>


More information about the mesa-dev mailing list