nir/lower_io: Add support for nir_var_mem_global

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
Jason Ekstrand 2019-01-19 18:50:48 -06:00
parent 314d2c90c3
commit 5f5503d498
1 changed files with 12 additions and 0 deletions

View File

@ -676,6 +676,10 @@ build_explicit_io_load(nir_builder *b, nir_intrinsic_instr *intrin,
else
op = nir_intrinsic_load_ssbo;
break;
case nir_var_mem_global:
assert(addr_format_is_global(addr_format));
op = nir_intrinsic_load_global;
break;
default:
unreachable("Unsupported explicit IO variable mode");
}
@ -722,6 +726,10 @@ build_explicit_io_store(nir_builder *b, nir_intrinsic_instr *intrin,
else
op = nir_intrinsic_store_ssbo;
break;
case nir_var_mem_global:
assert(addr_format_is_global(addr_format));
op = nir_intrinsic_store_global;
break;
default:
unreachable("Unsupported explicit IO variable mode");
}
@ -767,6 +775,10 @@ build_explicit_io_atomic(nir_builder *b, nir_intrinsic_instr *intrin,
else
op = ssbo_atomic_for_deref(intrin->intrinsic);
break;
case nir_var_mem_global:
assert(addr_format_is_global(addr_format));
op = global_atomic_for_deref(intrin->intrinsic);
break;
default:
unreachable("Unsupported explicit IO variable mode");
}