[Mesa-dev] [PATCH v2 00/18] nir/vtn/compiler: first batch of compute support

Karol Herbst kherbst at redhat.com
Thu Mar 8 15:25:46 UTC 2018


first series here:
https://lists.freedesktop.org/archives/mesa-dev/2018-February/187275.html

change summery since v1:
 * removed 64 bit shift patch
 * reworked new intrinsics
 * fixed some int8/uint8 issues
 * add handling for CL types
 * add support for lowering loading kernel args in nir_lower_io

The biggest addition to the last series is the code for lowering load_vars of
kernel arguments. For this we have to calculate the size and alignment of types
correctly according to C rules. With that it is possible to lower a load_var
into a load_kernel_param with the correct offset as its source.

Rob still wants to rework his pointer support patch afaik.

One of the biggest problems we currently have is handling of pointers into
Function Memory to load struct members.

Karol Herbst (9):
  compiler: int8/uint8 support
  vtn: handle SpvExecutionModelKernel
  nir: add load/store_global intrinsics
  nir/vtn: implement BuiltInGlobalSize
  glsl: add packed for struct types
  glsl: add glsl_base_get_byte_size
  RFC glsl: add cl_size and cl_alignment
  nir: add load_kernel_param
  RFC nir/lower_io: lower kernel entry param load_vars to
    load_kernel_param

Rob Clark (9):
  nir/vtn: Use imov where we might have 8 bit types
  nir: kernel entrypoints can have arguments
  nir/vtn: implement SpvOpCopyMemorySized
  nir/vtn: handle WorkGroupSize for kernels
  nir/vtn: add OpLifetime*
  nir/vtn: add OpConvertPtrToU
  nir/vtn: print extension name in fail msg
  nir: use load_local_group_size
  RFC: nir/vtn: "raw" pointer support

 src/compiler/builtin_type_macros.h              |  10 +
 src/compiler/glsl/ast_to_hir.cpp                |   2 +
 src/compiler/glsl/ir_clone.cpp                  |   2 +
 src/compiler/glsl/link_uniform_initializers.cpp |   2 +
 src/compiler/glsl_types.cpp                     |  98 +++++++++-
 src/compiler/glsl_types.h                       |  60 +++++-
 src/compiler/nir/nir.h                          |   5 +-
 src/compiler/nir/nir_intrinsics.h               |  10 +-
 src/compiler/nir/nir_lower_io.c                 |  39 +++-
 src/compiler/nir/nir_lower_system_values.c      |  31 ++-
 src/compiler/nir_types.cpp                      |  29 ++-
 src/compiler/nir_types.h                        |  35 +---
 src/compiler/shader_enums.c                     |   1 +
 src/compiler/shader_enums.h                     |   2 +
 src/compiler/spirv/spirv_to_nir.c               | 128 +++++++++---
 src/compiler/spirv/vtn_alu.c                    |   1 +
 src/compiler/spirv/vtn_private.h                |  28 ++-
 src/compiler/spirv/vtn_variables.c              | 249 +++++++++++++++++++++---
 src/intel/compiler/brw_fs.cpp                   |   3 +
 src/intel/compiler/brw_shader.cpp               |   4 +
 src/intel/compiler/brw_vec4_visitor.cpp         |   2 +
 src/mesa/program/ir_to_mesa.cpp                 |   4 +
 src/mesa/state_tracker/st_glsl_types.cpp        |   2 +
 23 files changed, 650 insertions(+), 97 deletions(-)

-- 
2.14.3



More information about the mesa-dev mailing list