r600/sfn: Handle store_global when lowering 64 bit ops to vec2
authorGert Wollny <gert.wollny@collabora.com>
Wed, 14 Dec 2022 09:59:04 +0000 (10:59 +0100)
committerGert Wollny <gert.wollny@collabora.com>
Fri, 9 Jun 2023 06:49:49 +0000 (08:49 +0200)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20252>

src/gallium/drivers/r600/sfn/sfn_nir_lower_64bit.cpp

index 54ecd94..1cb0287 100644 (file)
@@ -842,6 +842,8 @@ Lower64BitToVec2::filter(const nir_instr *instr) const
             return true;
          return (var->type->without_array()->components() != intr->num_components);
       }
+      case nir_intrinsic_store_global:
+         return nir_src_bit_size(intr->src[0]) == 64;
       default:
          return false;
       }
@@ -1082,6 +1084,7 @@ r600_nir_64_to_vec2(nir_shader *sh)
                   auto ir = nir_instr_as_intrinsic(instr);
                   switch (ir->intrinsic) {
                   case nir_intrinsic_store_output:
+                  case nir_intrinsic_store_global:
                   case nir_intrinsic_store_ssbo: {
                      bool success = false;
                      nir_foreach_src(instr, store_64bit_intr, &success);