[Mesa-dev] [PATCH v2 00/42] Computer shader shared variables

Jordan Justen jordan.l.justen at intel.com
Tue Nov 17 21:54:32 PST 2015


git://people.freedesktop.org/~jljusten/mesa cs-shared-variables-v2
http://patchwork.freedesktop.org/bundle/jljusten/cs-shared-variables-v2

11 of the 42 patches have a Reviewed-by

Patches 1 - 14:

 * curro's "i965: L3 cache partitioning." (sent Sept 6)
   I split one patch and changed a comment.

 * 1 - 5 have Reviewed-by

Patches 15 - 21:

 * Rework lower_ubo_reference to allow code sharing with
   lower_shared_reference

 * Added a new patch since v1 to remove mem_ctx as a member of the
   lower_ubo_reference_helper class.

 * 16, 18 & 19 have Reviewed-by

Patches 22 - 30:

 * Add shared variable support for i965. Add lower_shared_reference,
   which works similar to lower_ubo_reference for SSBOs, except it
   merges all shared variable into one shared variable region. (Rather
   than separate BOs like SSBOs allows.)

Patches 31 - 39:

 * Adds atomic support for shared variable on i965, which is
   implemented similar to SSBOs.

 * 31 - 33 have Reviewed-by

Patches 40 - 42:

 * Shared variables are the last major feature, so mark the extension
   as done

Francisco Jerez (14):
  i965: Define symbolic constants for some useful L3 cache control
    registers.
  i965: Keep track of whether LRI is allowed in the context struct.
  i965: Adjust gen check in can_do_pipelined_register_writes
  i965: Define state flag to signal that the URB size has been altered.
  i965/gen8: Don't add workaround bits to PIPE_CONTROL stalls if DC
    flush is set.
  i965: Import tables enumerating the set of validated L3
    configurations.
  i965: Implement programming of the L3 configuration.
  i965/hsw: Enable L3 atomics.
  i965: Implement selection of the closest L3 configuration based on a
    vector of weights.
  i965: Calculate appropriate L3 partition weights for the current
    pipeline state.
  i965: Implement L3 state atom.
  i965: Add debug flag to print out the new L3 state during transitions.
  i965: Work around L3 state leaks during context switches.
  i965: Hook up L3 partitioning state atom.

Jordan Justen (28):
  glsl ubo/ssbo: Use enum to track current buffer access type
  glsl ubo/ssbo: Split buffer access to insert_buffer_access
  glsl ubo/ssbo: Add lower_buffer_access class
  glsl ubo/ssbo: Move is_dereferenced_thing_row_major into
    lower_buffer_access
  glsl ubo/ssbo: Move common code into
    lower_buffer_access::setup_buffer_access
  glsl: Remove mem_ctx as member variable in lower_ubo_reference_visitor
  glsl: Add default matrix ordering in lower_buffer_access
  glsl: Don't lower_variable_index_to_cond_assign for shared variables
  glsl: Add lowering pass for shared variable references
  nir: Translate glsl shared var load intrinsic to nir intrinsic
  nir: Translate glsl shared var store intrinsic to nir intrinsic
  i965: Disable vector splitting on shared variables
  i965/fs: Handle nir shared variable load intrinsic
  i965/fs: Handle nir shared variable store intrinsic function
  i965: Enable shared local memory for CS shared variables
  i965: Lower shared variable references to intrinsic calls
  glsl: Allow atomic functions to be used with shared variables
  glsl: Replace atomic_ssbo and ssbo_atomic with atomic
  glsl: Check for SSBO variable in SSBO atomic lowering
  glsl: Check for SSBO variable in check_for_ssbo_store
  glsl: Translate atomic intrinsic functions on shared variables
  glsl: Buffer atomics are supported for compute shaders
  glsl: Disable several optimizations on shared variables
  nir: Add nir intrinsics for shared variable atomic operations
  i965/nir: Implement shared variable atomic operations
  i965: Enable ARB_compute_shader extension on supported hardware
  docs: Mark ARB_compute_shader as done for i965
  docs: Add ARB_compute_shader to 11.1.0 release notes

 docs/GL3.txt                                       |   4 +-
 docs/relnotes/11.1.0.html                          |   1 +
 src/glsl/Makefile.sources                          |   3 +
 src/glsl/ast_function.cpp                          |  18 +-
 src/glsl/builtin_functions.cpp                     | 236 ++++----
 src/glsl/ir_optimization.h                         |   1 +
 src/glsl/linker.cpp                                |   4 +
 src/glsl/lower_buffer_access.cpp                   | 486 +++++++++++++++++
 src/glsl/lower_buffer_access.h                     |  72 +++
 src/glsl/lower_shared_reference.cpp                | 516 ++++++++++++++++++
 src/glsl/lower_ubo_reference.cpp                   | 599 ++++-----------------
 src/glsl/lower_variable_index_to_cond_assign.cpp   |   3 +
 src/glsl/nir/glsl_to_nir.cpp                       | 131 ++++-
 src/glsl/nir/nir_intrinsics.h                      |  29 +-
 src/glsl/opt_constant_propagation.cpp              |   3 +-
 src/glsl/opt_constant_variable.cpp                 |   3 +-
 src/glsl/opt_copy_propagation.cpp                  |   3 +-
 src/mesa/drivers/dri/i965/Makefile.sources         |   1 +
 src/mesa/drivers/dri/i965/brw_compiler.h           |   1 +
 src/mesa/drivers/dri/i965/brw_context.c            |  11 +-
 src/mesa/drivers/dri/i965/brw_context.h            |  17 +-
 src/mesa/drivers/dri/i965/brw_cs.c                 |   2 +
 src/mesa/drivers/dri/i965/brw_defines.h            |   4 +
 src/mesa/drivers/dri/i965/brw_fs.h                 |   2 +
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp           | 147 +++++
 .../drivers/dri/i965/brw_fs_vector_splitting.cpp   |   1 +
 src/mesa/drivers/dri/i965/brw_pipe_control.c       |   4 +-
 src/mesa/drivers/dri/i965/brw_shader.cpp           |   3 +
 src/mesa/drivers/dri/i965/brw_state.h              |   5 +
 src/mesa/drivers/dri/i965/brw_state_upload.c       |   5 +
 src/mesa/drivers/dri/i965/gen7_cs_state.c          |  12 +
 src/mesa/drivers/dri/i965/gen7_l3_state.c          | 545 +++++++++++++++++++
 src/mesa/drivers/dri/i965/gen7_urb.c               |   3 +
 src/mesa/drivers/dri/i965/intel_batchbuffer.c      |   7 +
 src/mesa/drivers/dri/i965/intel_batchbuffer.h      |   6 +-
 src/mesa/drivers/dri/i965/intel_debug.c            |   1 +
 src/mesa/drivers/dri/i965/intel_debug.h            |   1 +
 src/mesa/drivers/dri/i965/intel_extensions.c       |  13 +-
 src/mesa/drivers/dri/i965/intel_reg.h              |  53 ++
 src/mesa/main/mtypes.h                             |   7 +
 40 files changed, 2328 insertions(+), 635 deletions(-)
 create mode 100644 src/glsl/lower_buffer_access.cpp
 create mode 100644 src/glsl/lower_buffer_access.h
 create mode 100644 src/glsl/lower_shared_reference.cpp
 create mode 100644 src/mesa/drivers/dri/i965/gen7_l3_state.c

-- 
2.6.2



More information about the mesa-dev mailing list