GBE: add ocl 2.0 work_group_barrier support

Graphics / Beignet - Ruiling Song [intel.com] - 8 November 2016 06:38 UTC

to do an image barrier, we need to: 1. flush L3 RW cache. 2. do a barrier gateway. 3. flush sampler cache.

Note the fence argument maybe ORed together. We need to support non-immediate barrier() argument in future.

v2: change syncField to 6, and modify syncStr.

9318ac9 GBE: add ocl 2.0 work_group_barrier support.
backend/src/backend/gen8_encoder.cpp | 24 ++++++++++++++++++++++++
backend/src/backend/gen8_encoder.hpp | 2 ++
backend/src/backend/gen8_instruction.hpp | 6 +++++-
backend/src/backend/gen9_context.cpp | 9 +++++++--
backend/src/backend/gen_context.cpp | 11 ++++++++---
backend/src/backend/gen_defs.hpp | 1 +
backend/src/backend/gen_encoder.cpp | 8 ++++++--
backend/src/backend/gen_encoder.hpp | 3 ++-
backend/src/ir/instruction.cpp | 5 +++--
backend/src/ir/instruction.hpp | 6 ++++--
backend/src/libocl/include/ocl_sync.h | 1 +
backend/src/libocl/src/ocl_barrier.ll | 27 ++-------------------------
backend/src/libocl/src/ocl_sync.cl | 1 -
backend/src/llvm/llvm_gen_backend.cpp | 28 ++++++++++++++++++++++++++--
backend/src/llvm/llvm_gen_ocl_function.hxx | 2 +-
15 files changed, 92 insertions(+), 42 deletions(-)

Upstream: cgit.freedesktop.org


  • Share