[Mesa-dev] [PATCH v2 00/45] OpenSWR driver misc changes

George Kyriazis george.kyriazis at intel.com
Wed Apr 18 01:31:40 UTC 2018


Lots of SWR-specifc changes, including:
- work for 16-wide simd operation across all avx flavors
- separate avx instrinsics into a separate x86 lowering pass
- stats work
- misc other cleanup

v2: mostly editorial changes

George Kyriazis (45):
  swr/rast: Add some instructions to jitter
  swr/rast: Introduce JIT_MEM_CLIENT
  swr/rast: Use blend context struct to pass params
  swr/rast: Add debug type info for i128
  swr/rast: Silence some unused variable warnings
  swr/rast: Add some archrast stats
  swr/rast: Changes to allow jitter to compile with LLVM5
  swr/rast: LLVM 6 fix
  swr/rast: WIP builder rewrite.
  swr/rast: Add autogen of helper llvm intrinsics.
  swr/rast: WIP builder rewrite (2)
  swr/rast: Permute work for simd16
  swr/rast: Add MEM_ADD helper function to Builder.
  swr/rast: Add "Num Instructions Executed" stats intrinsic.
  swr/rast: Code cleanup
  swr/rast: Add some archrast counters
  swr/rast: Fix name mangling for LLVM pow intrinsic
  swr/rast: Move CallPrint() to a separate file
  swr/rast: Simplify #define usage in gen source file
  swr/rast: Start refactoring of builder/packetizer.
  swr/rast: Lower PERMD and PERMPS to x86.
  swr/rast: Cleanup of JitManager convenience types
  swr/rast: Lower VGATHERPS and VGATHERPS_16 to x86.
  swr/rast: Add builder_gfx_mem.{h|cpp}
  swr/rast: Enable generalized fetch jit
  swr: add x86 lowering pass to fragment shader
  swr/rast: Fix codegen for typedef types
  swr/rast: Adding translate call to builder_gfx_mem.
  swr/rast: Add support for setting optimization level
  swr/rast: Fix byte offset for non-indexed draws
  swr/rast: Change gfx pointers to gfxptr_t
  swr/rast: Fix alloca usage in jitter
  swr/rast: add cvt instructions in x86 lowering pass
  swr/rast: fix comment
  swr/rast: Add vgather to x86 lowering pass.
  swr/rast: Type-check TemplateArgUnroller
  swr/rast: Add shader stats infrastructure (WIP)
  swr/rast: Fix 64bit float loads in x86 lowering pass
  swr/rast: double-pump in x86 lowering pass
  swr/rast: minimize codegen redundant work
  swr/rast: Refactor to improve code sharing.
  swr/rast: Implement VROUND intrinsic in x86 lowering pass
  swr/rast: Optimize late/bindless JIT of samplers
  swr/rast: Replace x86 VMOVMSK with llvm-only implementation
  swr/rast: Fix VGATHERPD lowering

 src/gallium/drivers/swr/Makefile.am                |   14 +-
 src/gallium/drivers/swr/Makefile.sources           |    6 +-
 src/gallium/drivers/swr/SConscript                 |   13 +-
 src/gallium/drivers/swr/meson.build                |    6 +-
 .../drivers/swr/rasterizer/archrast/archrast.cpp   |   97 +-
 .../drivers/swr/rasterizer/archrast/events.proto   |   54 +
 .../swr/rasterizer/archrast/events_private.proto   |   45 +
 .../drivers/swr/rasterizer/codegen/gen_archrast.py |  111 +-
 .../drivers/swr/rasterizer/codegen/gen_backends.py |   97 +-
 .../drivers/swr/rasterizer/codegen/gen_common.py   |  131 +-
 .../drivers/swr/rasterizer/codegen/gen_knobs.py    |   53 +-
 .../swr/rasterizer/codegen/gen_llvm_ir_macros.py   |  180 ++-
 .../swr/rasterizer/codegen/gen_llvm_types.py       |   30 +-
 .../drivers/swr/rasterizer/codegen/knob_defs.py    |   35 +
 .../drivers/swr/rasterizer/codegen/meson.build     |    2 +-
 .../rasterizer/codegen/templates/gen_builder.hpp   |   29 +-
 .../drivers/swr/rasterizer/common/simd16intrin.h   |    1 +
 .../drivers/swr/rasterizer/common/simdintrin.h     |    1 +
 .../swr/rasterizer/common/simdlib_256_avx.inl      |    6 +
 .../swr/rasterizer/common/simdlib_256_avx2.inl     |    7 +
 .../swr/rasterizer/common/simdlib_512_avx512.inl   |    6 +
 .../swr/rasterizer/common/simdlib_512_emu.inl      |   16 +-
 src/gallium/drivers/swr/rasterizer/core/api.cpp    |   15 +-
 src/gallium/drivers/swr/rasterizer/core/api.h      |   47 +-
 .../drivers/swr/rasterizer/core/backend.cpp        |   10 +-
 src/gallium/drivers/swr/rasterizer/core/backend.h  |    4 +-
 .../drivers/swr/rasterizer/core/backend_clear.cpp  |   19 +-
 .../drivers/swr/rasterizer/core/backend_impl.h     |   73 +-
 .../drivers/swr/rasterizer/core/backend_sample.cpp |   14 +-
 .../swr/rasterizer/core/backend_singlesample.cpp   |   15 +-
 src/gallium/drivers/swr/rasterizer/core/binner.cpp |    4 +-
 src/gallium/drivers/swr/rasterizer/core/context.h  |    5 +-
 .../drivers/swr/rasterizer/core/frontend.cpp       |   78 +-
 src/gallium/drivers/swr/rasterizer/core/pa_avx.cpp |   42 +-
 .../drivers/swr/rasterizer/core/rasterizer.cpp     |    4 +-
 .../drivers/swr/rasterizer/core/rasterizer_impl.h  |   15 +-
 src/gallium/drivers/swr/rasterizer/core/state.h    |   91 +-
 .../drivers/swr/rasterizer/core/threads.cpp        |   68 +-
 src/gallium/drivers/swr/rasterizer/core/threads.h  |    5 +-
 .../drivers/swr/rasterizer/core/tilemgr.cpp        |   21 +-
 src/gallium/drivers/swr/rasterizer/core/tilemgr.h  |    4 +-
 src/gallium/drivers/swr/rasterizer/core/utils.h    |   39 +-
 .../drivers/swr/rasterizer/jitter/JitManager.cpp   |   44 +-
 .../drivers/swr/rasterizer/jitter/JitManager.h     |   21 -
 .../drivers/swr/rasterizer/jitter/blend_jit.cpp    |   70 +-
 .../drivers/swr/rasterizer/jitter/builder.cpp      |   50 +-
 .../drivers/swr/rasterizer/jitter/builder.h        |   39 +-
 .../swr/rasterizer/jitter/builder_gfx_mem.cpp      |  203 +++
 .../swr/rasterizer/jitter/builder_gfx_mem.h        |   84 ++
 .../drivers/swr/rasterizer/jitter/builder_mem.cpp  |  322 +----
 .../drivers/swr/rasterizer/jitter/builder_mem.h    |   66 +-
 .../drivers/swr/rasterizer/jitter/builder_misc.cpp |  142 +--
 .../drivers/swr/rasterizer/jitter/builder_misc.h   |   26 +-
 .../drivers/swr/rasterizer/jitter/fetch_jit.cpp    | 1341 ++++----------------
 .../drivers/swr/rasterizer/jitter/fetch_jit.h      |    6 +-
 .../rasterizer/jitter/functionpasses/lower_x86.cpp |  619 +++++++++
 .../swr/rasterizer/jitter/functionpasses/passes.h  |   37 +
 .../drivers/swr/rasterizer/jitter/jit_pch.hpp      |   18 +-
 .../drivers/swr/rasterizer/jitter/meson.build      |   19 +-
 .../rasterizer/jitter/shader_lib/DebugOutput.cpp   |   51 +
 .../swr/rasterizer/jitter/streamout_jit.cpp        |   21 +-
 .../drivers/swr/rasterizer/memory/ClearTile.cpp    |    1 +
 .../drivers/swr/rasterizer/memory/LoadTile.cpp     |    1 +
 .../drivers/swr/rasterizer/memory/StoreTile.cpp    |    1 +
 src/gallium/drivers/swr/swr_memory.h               |    9 +-
 src/gallium/drivers/swr/swr_shader.cpp             |   16 +
 src/gallium/drivers/swr/swr_state.cpp              |    2 +-
 67 files changed, 2707 insertions(+), 2015 deletions(-)
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/functionpasses/passes.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp

-- 
2.7.4



More information about the mesa-dev mailing list