Mesa (master): 24 new commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Sep 3 18:18:50 UTC 2020


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=21fbffc5425e7ee2912285737ef68398bb156732
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Fri Aug 28 15:42:45 2020 -0500

    anv: Set alignments on UBO/SSBO root derefs
    
    This doesn't really do anything for us today.  One day, I suppose we
    could use it to do something with wide loads with non-uniform offsets.
    The big reason to do this is to get better testing to make sure that NIR
    doesn't blow up on the deref paths.
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7dec0548af8374328fe459d25838d50790e629e
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 16:00:26 2020 -0500

    spirv: Drop the OpenCL type layout code
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=796d3fe9e0f628fd57a68dc0448ba1a182ca5725
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 15:56:38 2020 -0500

    clover/nir: Use lower_vars_to_explicit for uniform and global
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1ed5a12c5161cbd06d7a4a4897432a0f7690ffa
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug 31 20:09:42 2020 -0500

    spirv: Stop counting inputs in entry_point_wrapper
    
    nir_shader::num_inputs isn't supposed to be a count of how many input
    variables we have.  It's a size of the lowered input space.
    
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8bea5aaa149a349af55552f47dc248a327ea7929
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Tue Sep 1 10:30:17 2020 -0500

    clover: Use args.size() to compute new var locations
    
    This is better than using num_uniforms as it guarantees what we want: a
    mapping from nir_variable to the args vector.
    
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9641f483e94a18e5eba5f6d251aa75af8660454e
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 16:00:00 2020 -0500

    nir: Allow uniform in nir_lower_vars_to_explicit_types
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3719b69dfc496cdacfe857e1a42984c435eb8a6c
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 16:12:57 2020 -0500

    nir: Allow var_mem_global in nir_lower_vars_to_explicit_types
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3135984ad0bde072b25e1641e2a9e154fb62a087
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 18:34:50 2020 -0500

    spirv: Propagate alignments to deref chains via casts
    
    This commit propagates the alignment information provided either through
    the Alignment decoration on pointers or via the alignment mem operands
    to OpLoad, OpStore, and OpCopyMemory to the NIR deref chain.  It does so
    by wrapping the deref in a cast.  NIR should be able to clean up most
    unnecessary casts only leaving us with the useful alignment information.
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=207b462e9326b4e7aab8e3c4aead7ca23147e527
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 18:33:50 2020 -0500

    spirv: Add pointer helper vars to OpCopyMemory
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e7fbec0e090be3e796f7a38819fb99bbc1744787
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug 24 11:27:31 2020 -0500

    nir/opt_deref: Remove restrictive alignment information from casts
    
    If we have a cast deref with alignment information and we can get equal
    or better alignment information from something further up the deref
    chain, we can strip the alignment information from the cast and allow
    other optimizations to potentially eliminate the cast.
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=99bb2a4de66fa662fb4bcb29df8e2749972ee986
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug 24 11:26:18 2020 -0500

    nir/opt_deref: Don't remove casts with alignment information
    
    Generally, if a cast has alignment information, that information is
    useful and we don't want to loose it.
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=beefd37021edd707274625def137bed0df6fb65f
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug 24 10:57:57 2020 -0500

    nir/lower_io: Apply alignments from derefs when available
    
    If the deref has no explicit alignment in the chain, we assume component
    alignment which is what we currently assume for all derefs today.  This
    should be correct for all APIs in the sense that we can usually assume
    at least component alignment.  However, for some APIs such as OpenCL, we
    could potentially make larger alignment assumptions.  The intention is
    that those will be handled via alignment-increasing casts.
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=480329cf8b319983ee96f2b57bd2648be19e5570
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug 24 10:48:51 2020 -0500

    nir: Add a helper for getting the alignment of a deref
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0654a9e82307b854824fc1092a8b79632a2703c0
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 27 11:59:54 2020 -0500

    nir: Handle all array stride cases in nir_deref_instr_array_stride
    
    This renames it to drop the ptr_as and makes it handle all of the stride
    cases.  There's a bit of a tricky bit in here around Booleans but we
    currently use 32-bit for those always.
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=878a8daca6bfc856308dda7d265964d93feb05ae
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug 24 09:51:04 2020 -0500

    nir: Add alignment information to cast derefs
    
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a0b82c24b6d08cc3f07b4ddad16c7e1b986ad983
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Sat Aug 29 18:01:46 2020 -0500

    nir/glsl: Add an explicit_alignment field to glsl_type
    
    When creating explicit type, the alignment information is lost, thus
    forcing explicit type users to recalculate the alignment using the same
    size_align() function. Let's add a new field to cache this information.
    
    Only structs, matrices, and vectors have and explicit alignment.  Arrays
    alignment is implicitly set to its element alignment and matrices are
    required to have an alignment that matches that of its vector columns.
    the concept of alignment simply doesn't apply to other types.
    
    We make the strategic choice to not allow explicit alignments on
    scalars.  This is for a couple of reasons:
    
     1. There are no cases today where we use explicit types where we want
        any other alignment for scalars than natural alignment.
    
     2. Vectors don't have a component alignment that's separate from the
        explicit_alignment so it's impossible to get an explicitly aligned
        scalar type which is the component of the explicitly aligned vector
        type.
    
    This choice may cause problems if we ever want to use explicitly laid
    out types for things like varyings where we sometimes want vec4
    alignment of scalars.  We can deal with that when the time comes.
    
    Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca11b17b7b796db7077ed166ba2e33e77ec7088c
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Tue Sep 1 16:24:19 2020 -0500

    compiler/types: Make booleans 32-bit for cl_size/align
    
    OpenCL doesn't mandate a size and this is consistent with the rest of
    the glsl_type system.  While we're here, we also clean ::cl_size() up a
    bit and use a new explicit_type_scalar_byte_size() helper.
    
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3be890a3a6844292177b5524bd94b6c88fb5fb6e
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Mon Jun 29 09:29:09 2020 +0200

    nir: Expose the packed attribute attached to glsl_type objects
    
    This should help code calculating field offsets to get it right when
    the structure is marked packed.
    
    Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=42f97f8ce3a9c119ccf960c5cad399f18114e924
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Tue Jun 30 12:03:00 2020 +0200

    nir/glsl: Consider block interfaces as structs when it comes to size/align calculation
    
    Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=be68de81abb3cf2d6944c4c5273c453a61437208
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Fri Jun 26 10:27:16 2020 +0200

    glsl: Propagate packed info in get_explicit_type_for_size_align()
    
    Right now, when calling get_explicit_type_for_size_align() on a packed
    struct, the packed attribute is lost and field offsets are wrong.
    
    Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0c2958f882a9644d98d61c49f3b8a842ea2c48f
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Tue Jun 23 12:51:49 2020 +0200

    spirv: Propagate packed information to glsl_type
    
    We need to parse the CPacked decoration early enough to apply it when
    calculating field offsets and creating the struct type.
    
    Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=938d6ceb8300b194a7cbaf640e2c899cbecc6c5a
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Tue Jun 23 12:49:23 2020 +0200

    spirv: Don't accept CPacked decoration on struct members
    
    CPacked decoration is only allowed on struct definitions, not struct
    members.
    
    Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bcfeead5f31d29ae6ba3e78ce5186c0481d235b5
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Wed Sep 2 17:43:07 2020 -0500

    clover: Call nir_lower_mem_constant_vars
    
    Fixes: 26a4c8f375e "clover/nir: Use nir_var_mem_constant for..."
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9414cbc13c964b567a15637eaa7dc32899391594
Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Wed Sep 2 17:38:23 2020 -0500

    nir: Don't bail too early in lower_mem_constant_vars
    
    If there were no constant variables, we would bail out entirely.
    However, we may still have constant input pointers coming in from the
    client.
    
    Fixes: 4360a8a2b3fce "nir/lower_io: Add support for nir_var_mem_constant"
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>



More information about the mesa-commit mailing list