arb_gl_spirv: add calls to several nir lowerings
authorAlejandro Piñeiro <apinheiro@igalia.com>
Fri, 20 Jul 2018 11:03:05 +0000 (13:03 +0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Tue, 31 Jul 2018 11:33:37 +0000 (13:33 +0200)
commit739bb9e3d4da6b46e7a076a7aad7eb4ea919e7c7
treebd4828f8a5a5f2c04ac5ef9c1b232134cc4556db
parentd69027536ca04b5270eae4c1621aded1e581a64e
arb_gl_spirv: add calls to several nir lowerings

For now we are just adding nir lowerings that are needed/mandatory to
get things working. After everything is settled, we would start to add
good-to-have lowerings.

This patch adds the following calls:

  * nir_split_var_copits and nir_split_per_member_structs: as vulkan
    drivers are doing now. See commit
    b0c643d8f579a3e1e45a08f6d9de099f2c45898b ("spirv: Use NIR
    per-member splitting") for more info.

    Without this commit, piglit tests like this crashes:
    spec/arb_gl_spirv/execution/varying/block

    And in general most of the shaders that includes any kind of
    struct.

   * nir_copy_prop: after nir_deref_instr introduction, function calls
    need this. See commit "nir,spirv: Rework function calls"
    (c11833ab24dcba26de1b0a5805e35a5d6761514e) for more info.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mesa/main/glspirv.c