i965: Use nir_lower_atomics_to_ssbos and delete ABO compiler code.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 3 Nov 2017 21:52:05 +0000 (14:52 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 15 Nov 2017 17:37:32 +0000 (09:37 -0800)
commitff964916dc5424495a3e884e02c3b2c8f285b78b
tree4dd36238871ef6891324e6dfaa3914c3cda056fe
parentf48f52b0306e37d4d41dbf6a32970ee468298b2b
i965: Use nir_lower_atomics_to_ssbos and delete ABO compiler code.

We use the same hardware mechanism for both atomic counters and SSBO
atomics, so there's really no benefit to maintaining separate code to
handle each case.  Instead, we can just use Rob's shiny new NIR pass to
convert atomic_uints to SSBOs, and delete piles of code.

The ssbo_start section of the binding table becomes a combined ABO and
SSBO section, with ABOs first, then SSBOs.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/compiler/brw_compiler.h
src/intel/compiler/brw_fs_nir.cpp
src/intel/compiler/brw_shader.cpp
src/intel/compiler/brw_shader.h
src/intel/compiler/brw_vec4_nir.cpp
src/mesa/drivers/dri/i965/brw_link.cpp
src/mesa/drivers/dri/i965/brw_program.c
src/mesa/drivers/dri/i965/brw_wm_surface_state.c