Mesa (master): 41 new commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Apr 30 17:19:12 UTC 2019


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce57f4f7c4d672a88527d0d346e27b902cfc3c6a
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 27 15:33:22 2019 +0200

    st/nine: Check discard_delayed_release is set before allocating more
    
    When discard_delayed_release is set (default), we allocate more buffers
    and use a different buffer wait path.
    Check if it is set, and use the old paths if not
    (the alternative buffer wait path could still be used, but there is no
    advantage to using it in this case).
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b71c300c70fa33705ddd795998e0fe25452cb2af
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 27 15:25:35 2019 +0200

    st/nine: Throttle rendering similarly for thread_submit
    
    thread_submit's throttling depending on the number of internal
    back buffers, and wasn't affected by the driver requested
    throttling value.
    Now it is.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=562f5a35c88f0de62bb6f6c65fa668b6211e4bd0
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 24 23:24:40 2019 +0200

    st/nine: Optimize a bit writeonly buffers
    
    Optimize writeonly by passing PIPE_TRANSFER_WRITE
    for these buffers instead of the safer
    PIPE_TRANSFER_READ_WRITE.
    
    This seems to improve the performance of d3d8 games
    using d3d8to9.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=92117c989ca46ec01b58aec630bcca8cab1e8d15
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Tue Apr 9 22:52:28 2019 +0200

    st/nine: Use TGSI_SEMANTIC_GENERIC for fog
    
    We used TGSI_SEMANTIC_FOG for fog,
    however on vs/ps 3, fog is allowed to have
    4 components (even on the ff pipeline according
    to a wine test).
    Since gallium's TGSI_SEMANTIC_FOG has only one
    component, use TGSI_SEMANTIC_GENERIC instead.
    
    Fixes:
    https://github.com/iXit/Mesa-3D/issues/346
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bade3bf6153ecf7adda445a50b0b7009f63e367e
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Mon Jan 21 22:59:24 2019 +0100

    st/nine: Enable computing const_ranges
    
    All the pieces for constant compact are ready,
    thus enable the path.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c67db68897843885ac1502c85995527288613f1
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Mon Jan 21 22:50:01 2019 +0100

    st/nine: Handle const_ranges in nine_state
    
    Handle slot mapping if there is one.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9942ba2ea3bdfc55e2c832c8a03623d35e3bfe1f
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Jan 23 22:48:17 2019 +0100

    st/nine: Cache constant buffer size
    
    The shader constant buffer size with the
    constant compaction code can vary depending
    on the shader variant compiled (for example if
    fog constants are required, etc).
    Thus instead of using fixed size for the shader,
    add in the variant cache the size required, pass it
    to the context, and use this value.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3cdc466e75814cf5e18b51c760d17385771938d
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Mon Jan 21 22:40:25 2019 +0100

    st/nine: Propagate const_range to context
    
    As with the constant compaction we map the constant
    slots to new slots, we need to pass that information
    to the context which is in charge of uploading
    the constants.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7761cda686d8cb59c39d363ed5b6d95d1591bb66
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 22:55:01 2019 +0100

    st/nine: Prepare constant compaction in nine_shader
    
    When indirect addressing is not used, we know exactly
    which constants are accessed, and thus can
    have them located in consecutive slots.
    We thus parse again the shader with a slot map
    for compaction.
    
    The path contains the work inside nine_shader.c for this
    path, but it needs some other commits to work, and thus
    is not enabled yet by this commit.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=db404507b4adc39a2f67fcd3c28c80f41ad2d46a
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 21:35:45 2019 +0100

    st/nine: Refactor counting of constants
    
    Track the number of slots used
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=737df40a6387939f47eff38ab5294c24d7661bc7
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 22:05:54 2019 +0100

    st/nine: Track constant slots used
    
    This tracking will be useful for constant compaction
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d2cab4562cc82f3f6dd2436513f647b1ea271d50
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 22:05:30 2019 +0100

    st/nine: Refactor ct_ctor
    
    The refactoring will make it easier to parse the shader
    twice for the constant compaction path.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f3da226e67051d92825554bdc6eb7caa8bd9365
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 21:43:19 2019 +0100

    st/nine: Make swvp_on imply IS_VS
    
    swvp cannot happen with ps, thus it makes
    sense to force it to false with ps.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d57d1436d3e57748770803cdb148609825cb5a3e
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 20:57:01 2019 +0100

    st/nine: Refactor shader constants ureg_src computation
    
    Put the shader constant code in one place to better change
    that code in future commits.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d86292f8acd96c3ac4f6e7c52c9f66475953790
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 20:44:17 2019 +0100

    st/nine: Manually upload vs and ps constants
    
    In future commits we will introduce more fine-grained
    uploads
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ddeb43537f2f1d702372b65aa8bf83b83f10ba8
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 20 11:25:47 2019 +0100

    st/nine: use helper ureg_DECL_sampler everywhere
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3717ec415779746b66b47a0dda28c2c5ea9fcef8
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 13 22:25:46 2019 +0100

    st/nine: Compact pixel shader key
    
    Compact the shader key to make room for new
    elements.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2acbd977d793fe8f2886b1f6f9b9c7f793a675b5
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Jan 13 22:16:35 2019 +0100

    st/nine: Compact nine_ff_get_projected_key
    
    Only the first four sampler slots can be used
    by ff ps < 0x14, thus the size of the key
    can be reduced.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a92a43d41dd2ae4719ee314cbf831583c751754a
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Thu Apr 5 22:38:03 2018 +0200

    st/nine: Refactor param->rel
    
    Refactor param->rel to enable different paths
    for constants and inputs relative addressing.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5974401a4adba2373232fc72940db96c32bbb4b6
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Thu Apr 5 22:31:27 2018 +0200

    st/nine: Regroup param->rel tests
    
    Regroup all the param->rel assertions into one assertion for better clarity
    and better covering.
    param->rel on an input can only happen with float constants for vs,
    or with inputs on vs/ps 3.0.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=12654a2fda53d46246d4f0f1f792377b57ad769e
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 27 18:30:02 2019 +0200

    st/nine: Control shader constant inlining with drirc
    
    Until we use async shader compilation for constant inlining,
    don't enable it unless user asks for it.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=95f25bef546806c8d0e6670aceadf28eb64aea1a
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sun Apr 8 17:06:00 2018 +0200

    st/nine: Recompile optimized shaders based on b/i consts
    
    Boolean and Integer constants are used in d3d9 for flow control.
    
    Boolean are used for if/then/else and Integer constants
    for loops.
    The compilers can generate better code if these values are known
    at compilation.
    I haven't met so far a game that would change the values of these
    constants frequently (and when they do, they set to the values used
    for the previous draw call, and thus the changes get filtered out).
    
    Thus it makes sense to inline these constants and recompile the shaders.
    The commit sets a bound to the number of variants for a given shader
    to avoid too many shaders to be generated.
    
    One drawback is it means more shader compilations. It would probably
    make sense to compile these shaders asynchronously or let the user
    control the behaviour with an env var, but this is not done here.
    
    The games I tested hit very few shader variants, and the performance
    impact was negligible, but it could help for games with uber shaders.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e57267a09ee2daf13d54539679e2e322943a58dd
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 27 19:18:00 2019 +0200

    drirc: Add Gallium nine workaround for Rayman Legends
    
    The game requires it to display many textures properly.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c097ff36174d77df9b641be392c5f15d4ab930fd
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 23:09:08 2019 +0200

    st/nine: Add drirc option to use data_internal for dynamic textures
    
    dynamic textures seem to have predictable stride. This stride
    should be the same as for a ram buffer.
    
    It seems some game don't check the actual stride value, assuming
    it to be the expected one.
    Thus this workaround (protected by drirc option) is to use an intermediate
    ram buffer.
    
    Fixes Rayman Legends texture issues when enabled.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7dcc85b46e2253c1efd425e55749e1714a260a21
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 23:05:58 2019 +0200

    st/nine: Support internal compressed format for volumes
    
    Reuse the generic path to support compressed formats.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b0a7d05575bccaf73f0e558c0ea4cf5aae0a76a
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 23:03:06 2019 +0200

    st/nine: Support internal compressed format for surfaces
    
    Reuse the generic path to support compressed formats.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=22c41d2d81efd233b2cde33d6664acc5b48323da
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 22:53:02 2019 +0200

    st/nine: Refactor volume GetSystemMemPointer
    
    It will make it easier to reuse in another place.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=85c9d92067d28ce07c3a0c41f4ea225b3768db9c
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 22:48:51 2019 +0200

    st/nine: Refactor surface GetSystemMemPointer
    
    It will make it easier to reuse in another place.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ba4f73911a80f1dd377e5041d90e8da72d61478
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 22:38:43 2019 +0200

    st/nine: rename *_conversion to *_internal
    
    Rename these variables to a new name which will
    fit new usages introduced in later commits.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a51a7c1da54e853dbd59d1ae714d0acf14f3593
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 22:21:48 2019 +0200

    st/nine: Optimize volume upload with conversion
    
    Use nine_context_box_upload instead of locking the pipe
    for volume upload with format conversion.
    nine_context_box_upload already handles format
    conversion.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fac3f993772edc9be1682b439b45ddbe3463bd4f
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 22:16:54 2019 +0200

    st/nine: Optimize surface upload with conversion
    
    Use nine_context_box_upload instead of locking the pipe
    for surface upload with format conversion.
    nine_context_box_upload already handles format
    conversion.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ca6b1dfd1055f7eb1679deb3e7194c19e4584e8
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 13 12:25:57 2019 +0200

    st/nine: Fix SINCOS input
    
    SINCOS takes an input with replicated swizzle.
    the swizzle can be on any component, not just x.
    Enable it to read from any component, but also
    use a temporary register to avoid dst/src aliasing.
    
    No known game is fixed by this change as it seems
    the input swizzle is commonly on x for this instruction,
    and src and dst don't alias.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4ae483c44ffdc56f990f6ebff7b9b4dde2cd54f
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 13 00:39:59 2019 +0200

    st/nine: Ignore nooverwrite for systemmem
    
    Systemmem has a specific behaviour we don't
    mimick exactly.
    That makes Halo feel free to use nooverwrite
    with it all the time, even when reading again
    at the same location.
    Ignore nooverwrite to have proper synchronization.
    
    Fixes: https://github.com/iXit/Mesa-3D/issues/348
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd3a870401acd0fd3ff2369659a77e42aab81489
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 10 21:07:29 2019 +0200

    st/nine: Enable modifiers on ps 1.X texcoords
    
    For many ps 1.X instructions, we were reading the
    texcoords directly, instead of through tx_src_param,
    resulting in modifiers getting ignored.
    Use tx_src_param for all these instructions.
    
    Fixes: https://github.com/iXit/Mesa-3D/issues/337
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1fc0714039ce5fced2317d258fbc467af39f3dca
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Tue Apr 9 23:57:37 2019 +0200

    st/nine: Always return OK on SetSoftwareVertexProcessing
    
    This would need more tests to know exactly
    if INVALIDCALL can be returned in some
    situations.
    It seems some games expect D3D_OK,
    even when noop and illegal.
    
    Fixes:
    https://github.com/iXit/Mesa-3D/issues/302
    https://github.com/iXit/Mesa-3D/issues/338
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9a4025fa3232876b586fd80f4d77681abf923ec
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Wed Apr 24 23:58:38 2019 +0200

    st/nine: Finish if nooverwrite after normal mapping
    
    d3d's nooverwrite and gallium's unsynchronized
    have different semantics.
    Indeed nooverwrite says the applications won't
    write to locations needed by previous draws,
    which is less strong than unsynchronized which
    won't synchronize previous writes.
    
    Thus in case app is locking without discard/nooverwrite,
    then using nooverwrite, we need to add a
    synchronization.
    
    Fixes: https://github.com/iXit/wine-nine-standalone/issues/29
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e502c4d89254439d5f026375737cb7af3f9ec5b7
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Thu Apr 4 23:08:35 2019 +0200

    st/nine: Fix buffer/texture unbinding in nine_state_clear
    
    Previously nine_state_clear was not using
    NineBindBufferToDevice and NineBindTextureToDevice
    to unbind buffers and textures (but used nine_bind)
    
    This was resulting in an uncorrect bind count for these
    resources.
    
    Combined with
    0ec4e5f630ed68ece3f176b174cfd66eff023904
    Some buffers were scheduled to be uploaded directly
    after they were locked (because the bind count incorrectly
    assumed they were needed for the next draw call),
    which resulted in uploads before the data was written.
    
    To simplify a bit the code (and because I needed to
    add a pointer to device),
    remove the stateblock usage from nine_state_clear and
    rename to nine_device_state_clear.
    
    Fixes:
    https://github.com/iXit/Mesa-3D/issues/345
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb3b8f8e01129ed35ea47463716def7c375f0f19
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Thu Apr 4 23:06:44 2019 +0200

    st/nine: Upload managed buffers only at draw using them
    
    When a draw call is emited, buffers in the
    device->update_buffers list are uploaded.
    
    This patch removes buffers from the list if they
    are not bound anymore.
    
    Behaviour found studying:
    https://github.com/iXit/Mesa-3D/issues/345
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5df96995efc37260b2675f61804c94a1a632609f
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Thu Apr 4 23:01:08 2019 +0200

    st/nine: Upload managed textures only at draw using them
    
    When a draw call is emited, textures in the
    device->update_textures list are uploaded.
    
    This patch removes textures from the list if they
    are not bound anymore.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=394420ebb3eec6d8956588ee13380d5059e14bea
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Fri Feb 22 20:41:00 2019 +0100

    st/nine: Use FLT_MAX/2 for RCP clamping
    
    This seems to fix Rayman (which adds things
    to the RCP result, and thus gets an Inf),
    while not having regressions.
    
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=64a45ba7f83095a8a44a7b1104f31bab68b259fe
Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Apr 27 15:45:12 2019 +0200

    st/nine: Fix D3DWindowBuffer_release for old wine nine support
    
    No-one reported bugs for that, but is seems
    c442dd789066104e5e84cc90d98a7ff5cd6296cf
    and previous commits used APIs not defined until
    nine minor version 3.
    This patch should prevent crash in this case.
    
    Also turn off the resize feature in this case,
    as we won't prevent a buffer leak anymore.
    
    Cc: "19.0" mesa-stable at lists.freedesktop.org
    Signed-off-by: Axel Davy <davyaxel0 at gmail.com>




More information about the mesa-commit mailing list