intel/compiler: Lower SSBO and shared loads/stores in NIR

We have a bunch of code to do this in the back-end compiler but it's
fairly specific to typed surface messages and the way we emit them.
This breaks it out into NIR were it's easier to do things a bit more
generally.  It also means we can easily share the code between the vec4
and FS back-ends if we wish.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
This commit is contained in:
Jason Ekstrand
2018-11-12 18:48:10 -06:00
parent d34fd81e76
commit 6339aba775
7 changed files with 421 additions and 405 deletions

View File

@@ -119,6 +119,8 @@ bool brw_nir_lower_image_load_store(nir_shader *nir,
void brw_nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin,
nir_ssa_def *index);
bool brw_nir_lower_mem_access_bit_sizes(nir_shader *shader);
nir_shader *brw_postprocess_nir(nir_shader *nir,
const struct brw_compiler *compiler,
bool is_scalar);