Bug 43864

Summary: src/gallium/drivers/llvmpipe/lp_state_so.c:46: error: ‘struct pipe_stream_output_info’ has no member named ‘output_buffer’
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: mesa-dev
Status: CLOSED FIXED QA Contact:
Severity: blocker    
Priority: highest CC: e0425955, maraeo
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2011-12-15 10:38:57 UTC
mesa: 14bd9d764802b5fedb652c791faafe4d13b65262 (master)

$ scons
[...]
src/gallium/drivers/llvmpipe/lp_state_so.c: In function ‘llvmpipe_create_stream_output_state’:
src/gallium/drivers/llvmpipe/lp_state_so.c:46: error: ‘struct pipe_stream_output_info’ has no member named ‘output_buffer’
src/gallium/drivers/llvmpipe/lp_state_so.c:47: error: ‘const struct pipe_stream_output_info’ has no member named ‘output_buffer’
src/gallium/drivers/llvmpipe/lp_state_so.c:49: error: ‘struct pipe_stream_output_info’ has no member named ‘register_index’
src/gallium/drivers/llvmpipe/lp_state_so.c:50: error: ‘const struct pipe_stream_output_info’ has no member named ‘register_index’
src/gallium/drivers/llvmpipe/lp_state_so.c:52: error: ‘struct pipe_stream_output_info’ has no member named ‘register_mask’
src/gallium/drivers/llvmpipe/lp_state_so.c:53: error: ‘const struct pipe_stream_output_info’ has no member named ‘register_mask’
Comment 1 Vinson Lee 2011-12-15 10:46:10 UTC
861a029ddb31e91bb4d8e18ab708d0d172f63aad is the first bad commit
commit 861a029ddb31e91bb4d8e18ab708d0d172f63aad
Author: Marek Olšák <maraeo@gmail.com>
Date:   Thu Dec 15 18:42:21 2011 +0100

    gallium: interface changes necessary to implement transform feedback (v5)
    
    Namely:
    - EXT_transform_feedback
    - ARB_transform_feedback2
    - ARB_transform_feedback_instanced
    
    The old interface was not useful for OpenGL and had to be reworked.
    
    This interface was originally designed for OpenGL, but additional
    changes have been made in order to make st/d3d1x support easier.
    
    The most notable change is the stream-out info must be linked
    with a vertex or geometry shader and cannot be set independently.
    This is due to limitations of existing hardware (special shader
    instructions must be used to write into stream-out buffers),
    and it's also how OpenGL works (stream outputs must be specified
    prior to linking shaders).
    
    Other than that, each stream output buffer has a "view" into it that
    internally maintains the number of bytes which have been written
    into it. (one buffer can be bound in several different transform
    feedback objects in OpenGL, so we must be able to have several views
    around) The set_stream_output_targets function contains a parameter
    saying whether new data should be appended or not.
    
    Also, the view can optionally be used to provide the vertex
    count for draw_vbo. Note that the count is supposed to be stored
    in device memory and the CPU never gets to know its value.
    
    OpenGL way | Gallium way
    ------------------------------------
    BeginTF    = set_so_targets(append_bitmask = 0)
    PauseTF    = set_so_targets(num_targets = 0)
    ResumeTF   = set_so_targets(append_bitmask = ~0)
    EndTF      = set_so_targets(num_targets = 0)
    DrawTF     = use pipe_draw_info::count_from_stream_output
    
    v2: * removed the reset_stream_output_targets function
        * added a parameter append_bitmask to set_stream_output_targets,
          each bit specifies whether new data should be appended to each
          buffer or not.
    v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2,
          note that the draw-auto subset is always required (for d3d10),
          only the pause/resume functionality is limited if the CAP is not
          advertised
    v4: * update gallium/docs
    v5: * compactified struct pipe_stream_output_info, updated dump/trace

:040000 040000 d6f5d1a415057bae4ea6ebf55a892eb499f2cd49 0e27123f5b6e2fe920c151d83a807911589b2b22 M	src
bisect run success
Comment 2 Christoph Bumiller 2011-12-15 12:49:37 UTC
That was my fault, I made v5 of that commit and forgot to compile-test llvmpipe. But I'd patched it up again pretty soon thanks to Fredrik Höglund who reported it on IRC.
Comment 3 Vinson Lee 2011-12-21 15:25:21 UTC
mesa: f1d89638c02afafbf82ef657cd6ba9965dad6738 (master)

Build works now.

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.