From: Samuel Iglesias Gonsalvez Date: Tue, 15 Sep 2015 09:16:29 +0000 (+0200) Subject: i965/vec4/nir: add nir_intrinsic_memory_barrier support X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=023165a734b3bae52a449ad01bc1ea5ba4384ec1;p=mesa.git i965/vec4/nir: add nir_intrinsic_memory_barrier support Fix OpenGL ES 3.1 conformance tests: advanced-readWrite-case1-vsfs and advanced-matrix-vsfs. v2: - Fix SHADER_OPCODE_MEMORY_FENCE emission and the allocation of 'tmp' (Francisco). Signed-off-by: Samuel Iglesias Gonsalvez Tested-by: Tapani Pälli Reviewed-by: Francisco Jerez --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp index 94906d2e705..2555038f221 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp @@ -921,6 +921,15 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr) break; } + case nir_intrinsic_memory_barrier: { + const vec4_builder bld = + vec4_builder(this).at_end().annotate(current_annotation, base_ir); + const dst_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UD, 2); + bld.emit(SHADER_OPCODE_MEMORY_FENCE, tmp) + ->regs_written = 2; + break; + } + default: unreachable("Unknown intrinsic"); }