Mesa (master): 22 new commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jul 12 21:43:10 UTC 2019


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8419621176502f906aac80601eecfcdce5324ff4
Author: Neil Roberts <nroberts at igalia.com>
Date:   Tue Jun 12 22:24:00 2018 +0200

    mesa/glspirv: Validate that compute shaders are not linked with other stages
    
    The test is based on link_shaders().
    
    For example, it allows the following test (when run on SPIR-V mode) to
    pass:
       spec/arb_compute_shader/linker/mix_compute_and_non_compute.shader_test
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=022e9ddd1af810083b847b307baadb6bad7735da
Author: Neil Roberts <nroberts at igalia.com>
Date:   Fri May 25 15:34:26 2018 +0200

    mesa/glspirv: Validate that there is a VS when there is a TCS, TES or GS
    
    The shader combination tests are copied from link_shaders().
    
    For example, it allows the following tests (when run on SPIR-V mode) to
    pass:
       spec/arb_tessellation_shader/linker/no-vs
       spec/arb_tessellation_shader/linker/tcs-no-vs
       spec/arb_tessellation_shader/linker/tes-no-vs
       spec/glsl-1.50/linker/gs-without-vs
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e4210b93e441c85bf8d54d0605294a97459bad8a
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Wed Feb 27 15:28:47 2019 +0100

    i965: don't use disk cache with SPIR-V shaders
    
    Right now we don't support disk cache for SPIR-V shaders (from
    ARB_gl_spirv), so let's avoid writing the program data to or reading
    it from the disk if any in-use shaders use SPIR-V.
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb3bbdfbbdb3eb1d4750ffcb2e6827a01872fdab
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Wed Feb 27 15:29:15 2019 +0100

    glsl/shader_cache: handle SPIR-V shaders
    
    Right now we don't have cache support for SPIR-V shaders (from
    ARB_gl_spirv). Right now they are properly skipped because they fall
    on the ff shader code path (no key, no name), but it would be better
    to update current comments, and add some guards.
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=637b168470190507c89eca8a7d0479103fe236ae
Author: Arcady Goldmints-Orlov <agoldmints at igalia.com>
Date:   Mon Jan 28 10:19:28 2019 -0600

    nir/linker: Initialize UniformDataDefaults when using SPIR-V
    
    Allocate UniformDataDefaults and fill in the data defaults when
    linking a SPIR-V program. Among other things, this allows program
    serialization to work.
    
    It allows the following piglit test (when run on SPIR-V mode) to pass:
      spec/arb_get_program_binary/execution/uniform-after-restore.shader_test
    
    v2: use memcpy to initialize UniformDataDefaults
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=761b0fe95f00a9a5adfd0369326eeffb23af449a
Author: Arcady Goldmints-Orlov <agoldmints at igalia.com>
Date:   Thu Dec 20 02:12:25 2018 +0100

    glsl/serialize: Update write_program_resource_data() to handle NULL input and output variable names
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3122d24318632b124cf6b065b19d5c863537057
Author: Arcady Goldmints-Orlov <agoldmints at igalia.com>
Date:   Thu Nov 29 15:16:34 2018 +0100

    glsl/serialize: Handle NULL uniform name in write_uniforms()
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0baa553fab5cfbee3410ca9f311e2bf61ccec5d4
Author: Antia Puentes <apuentes at igalia.com>
Date:   Tue Dec 18 11:55:04 2018 +0100

    mesa/main: Fix UBO/SSBO ACTIVE_VARIABLES query (ARB_gl_spirv)
    
    When querying MAX_NUM_ACTIVE_VARIABLES, NUM_ACTIVE_VARIABLES and
    ACTIVE_VARIABLES over SSBO and UBO interfaces, we filter the variables
    which are active using the variable's name and looking for it in the
    program resource list. If it is in the program resource list, the
    variable will be considered active.
    
    However due to ARB_gl_spirv where name reflection information is not
    mandatory, we can use the UBO/SSBO binding and variable offset to
    filter which variables which are active.
    
    v2: use RESOURCE_UBO/UNI macros instead of direct castings, update
        comment (Alejandro)
    
    v3: Change signature of _mesa_program_resource_find_active_variable
        to simplify calling it. Also, squash the fix for find_binding_offset
        for arrays of blocks (Arcady)
    
    Signed-off-by: Antia Puentes <apuentes at igalia.com>
    Signed-off-by: Alejandro Piñeiro <apinheiro at igalia.com>
    Signed-off-by: Arcady Goldmints-Orlov <agoldmints at igalia.com>
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=161de77e0feeab365f1a53464cb60eb3608ebe2e
Author: Antia Puentes <apuentes at igalia.com>
Date:   Fri Sep 14 08:55:24 2018 +0200

    mesa/shader_query: Fix LOCATION_INDEX query (ARB_gl_spirv)
    
    When querying GL_LOCATION_INDEX using glGetProgramResourceiv
    we already know the index of the resource, we do not need to find
    it using the name, which is convenient for shaders coming from
    SPIR-V binaries where names are optional.
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8818553f1809d25c08ad44826313352e54453717
Author: Antia Puentes <apuentes at igalia.com>
Date:   Mon Aug 13 14:13:38 2018 +0200

    mesa/shaderapi: Fix TRANSFORM_FEEDBACK_VARYING program query
    
    Fixes the program queries API (glGetProgramiv):
    TRANSFORM_FEEDBACK_VARYINGS and TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
    in two cases:
    
      1. ARB_enhaced_layouts:
    
    The queries were not working for GLSL shaders which specify the
    varyings using enhanced layouts. We were returning the info as if the
    varyings could only be specified using the API.
    
      2. ARB_gl_spirv:
    
    TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH should return 1 if there is no
    name reflection information available.
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8792abff9de8a6767fdd97bd4b5d0c3a1ef1b1e2
Author: Antia Puentes <apuentes at igalia.com>
Date:   Wed Aug 8 17:52:04 2018 +0200

    mesa/uniforms: Fix GetUniformLocation (ARB_gl_spirv)
    
    From the ARB_gl_spirv specification, glGetUniformLocation should
    return -1 when no name reflection is available.
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=96d6156678929d3d480fca3b4458767df31f4ee7
Author: Antia Puentes <apuentes at igalia.com>
Date:   Mon Aug 13 18:48:37 2018 +0200

    mesa/shader_query: Fix NAME_LENGTH queries (ARB_gl_spirv)
    
    For shaders constructed from SPIR-V binaries, it is possible that
    no name reflection information is available. In that case,
    
     - glGetProgramInterfaceiv(.., pname=MAX_NAME_LENGTH, ..)
     - gletProgramResourceiv(.., props=NAME_LENGTH, ..)
    
    should return 1.
    
    Signed-off-by: Antia Puentes <apuentes at igalia.com>
    Signed-off-by: Andres Gomez <agomez at igalia.com>
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ebd60b4917bb45d5b5339a10ba3aa4561925c66
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Sat Nov 18 10:04:42 2017 +0100

    mesa: Fix ACTIVE_*_MAX_LENGTH program queries (ARB_gl_spirv)
    
    Since ARB_gl_spirv it is possible to miss a lot of name reflection
    information, so it is needed to add NULL name checks for several
    queries, and return a specific value on those cases. This commit add
    them for ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
    ACTIVE_ATTRIBUTE_MAX_LENGTH and ACTIVE_UNIFORM_MAX_LENGTH.
    
    From ARB_gl_spirv spec:
    
       "If pname is ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, the length of
        the longest active uniform block name, including the null
        terminator, is returned. If no active uniform blocks exist, zero
        is returned. If no name reflection information is available, one
        is returned.
    
        If pname is ACTIVE_ATTRIBUTE_MAX_LENGTH, the length of the longest
        active attribute name, including a null terminator, is returned.
        If no active attributes exist, zero is returned. If no name
        reflection information is available, one is returned.
    
        If pname is ACTIVE_UNIFORM_MAX_LENGTH, the length of the longest
        active uniform name, including a null terminator, is returned. If
        no active uniforms exist, zero is returned. If no name reflection
        information is available, one is returned."
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cafc1a40d465a42805bb2ae45b18997e87bbac75
Author: Antia Puentes <apuentes at igalia.com>
Date:   Thu Nov 15 09:13:08 2018 +0100

    nir/types: Add glsl_type_is_unsized_array helper
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfc5e467467e2accb5f9877e3dbaca35825846ca
Author: Antia Puentes <apuentes at igalia.com>
Date:   Sun Jun 30 18:27:59 2019 -0500

    nir/linker: Fill TOP_LEVEL_ARRAY_SIZE and STRIDE
    
    From the ARB_program_interface_query specification:
    
        "For the property TOP_LEVEL_ARRAY_SIZE, a single integer
        identifying the number of active array elements of the top-level
        shader storage block member containing to the active variable is
        written to <params>.  If the top-level block member is not
        declared as an array, the value one is written to <params>.  If
        the top-level block member is an array with no declared size, the
        value zero is written to <params>."
    
        "For the property TOP_LEVEL_ARRAY_STRIDE, a single integer
        identifying the stride between array elements of the top-level
        shader storage block member containing the active variable is
        written to <params>.  For top-level block members declared as
        arrays, the value written is the difference, in basic machine
        units, between the offsets of the active variable for consecutive
        elements in the top-level array.  For top-level block members not
        declared as an array, zero is written to <params>."
    
    v2: move top_level_array_size and stride into nir_link_uniforms_state
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ae2ea5ec1f6630c2712ad48e8e03737b7efc74e7
Author: Antia Puentes <apuentes at igalia.com>
Date:   Wed Sep 12 13:51:57 2018 +0200

    nir/linker: Compute the offset for non-trivial uniform types.
    
    ARB_gl_spirv points that the offset must be explicit, however this is
    true for 'root' types. For complex types, like struct members or
    arrays of arraya, it needs to be computed.
    
    We are not using the offset stored in the gl_buffer_variables during
    the uniform blocks linking because currently we do not have a way to
    relate a gl_buffer_variable with its corresponding gl_uniform_storage.
    The GLSL path uses the name for that, but we can not rely on that
    because names are optional in SPIR-V.
    
    Notice that uniforms non-backed by a buffer object will have an offset
    equal to -1, like in the GLSL path.
    
    v2: add offset and var_is_in_block as per-variable state in
        nir_link_uniforms_state (Arcady)
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e15c663d8e80bd75331336ecba49ce6791d8d1fd
Author: Antia Puentes <apuentes at igalia.com>
Date:   Sat Dec 15 18:34:11 2018 +0100

    nir/linker: Add atomic counters to the program resource list
    
    Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1464a1cf892b08902785d81c2e1f1c95e1083de
Author: Antia Puentes <apuentes at igalia.com>
Date:   Sat Dec 15 18:33:18 2018 +0100

    nir/linker: Add XFB resources to the program resource list
    
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=53087a89acafc340c3368d72267e8abf98b22dec
Author: Antia Puentes <apuentes at igalia.com>
Date:   Sat Dec 15 18:25:41 2018 +0100

    nir/linker: Add BUFFER_VARIABLEs to the prog resource list
    
    v2: use link_util_should_add_buffer_variable() (Arcady)
    Signed-off-by: Arcady Goldmints-Orlov <agoldmints at igalia.com>
    
    Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffdb44d3a0a2199487f17ff566c51280c9708c60
Author: Antia Puentes <apuentes at igalia.com>
Date:   Wed Aug 8 14:29:38 2018 +0200

    nir/linker: Add inputs/outputs to the program resource list
    
    v2: added TODO comment hinting possible future refactoring of
        nir_build_program_resource_list and build_program_resource_list,
        to avoid code duplication (Alejandro, to explicitly reflect a
        valid concern from Timothy during the review).
    
    Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=691cee751a93aa100594a8fcede0869047d86674
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Fri Mar 23 12:35:48 2018 +0100

    nir/linker: add ubo/ssbo to the program resource list
    
    v2: "nir/linker: Use the stageref when adding UBO/SSBO resources"
         squashed on this one (Timothy)
    
    Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
    Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a638971929a4f7a3f3f4796f92c4edec8ec4c8ae
Author: Antia Puentes <apuentes at igalia.com>
Date:   Sat Aug 25 15:15:30 2018 +0200

    nir/linker: Fill the uniform's BLOCK_INDEX
    
    Binding comparison is used to determine the block the uniform is part
    of. Note that to do the binding comparison we need the information in
    UniformBlocks[] and ShaderStorageBlocks[] to be available, so we have
    to call gl_nir_link_uniform_blocks() before linking the uniforms.
    
    v2: add missing break (Timothy)
    
    Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>




More information about the mesa-commit mailing list