[Mesa-dev] [PATCH v2 00/13] swr: update rasterizer

Tim Rowley timothy.o.rowley at intel.com
Tue Jun 27 18:09:02 UTC 2017


Highlights include splitting the heavily templated files into multiple
chunks to speed compile (2x for a large machine), and switching the
simd intrinsic usage from a macro-based header to a more c++ feeling
library.

No regressions on piglit or vtk tests, passes "make dist"/compile.

v2:
  * split changes to generators to seperate functionality/cleanups
  * add scons patch so that .inl files can be handled
  * add comments explaining makefile .INTERMEDIATE usage

Tim Rowley (13):
  swr/rast: generators will create target directories
  swr/rast: gen_backends.py quote cleanup
  swr/rast: gen_backends.py removal of commented debug prints
  swr/rast: Split backend.cpp to improve compile time
  swr/rast: Support dynamically sized vertex layout
  swr/rast: gen_backends.py remove extraneous semicolon
  swr/rast: Split rasterizer.cpp to improve compile time
  swr/rast: Fix unused variable warnings
  scons: allow .inl file extension
  swr/rast: Switch intrinsic usage to SIMDLib
  swr/rast: Fix missing setup of psContext.pColorBuffer
  swr/rast: move default split size from driver to rasterizer
  swr/rast: increase number of possible draws in flight

 scons/custom.py                                    |    2 +-
 src/gallium/drivers/swr/Makefile.am                |   66 +-
 src/gallium/drivers/swr/Makefile.sources           |   19 +-
 src/gallium/drivers/swr/SConscript                 |   41 +-
 .../drivers/swr/rasterizer/codegen/gen_backends.py |   55 +-
 .../drivers/swr/rasterizer/codegen/gen_common.py   |    7 +
 .../drivers/swr/rasterizer/codegen/knob_defs.py    |    4 +-
 .../rasterizer/codegen/templates/gen_backend.cpp   |    1 +
 .../codegen/templates/gen_header_init.hpp          |   43 +
 .../codegen/templates/gen_rasterizer.cpp           |   42 +
 src/gallium/drivers/swr/rasterizer/common/intrin.h |  102 +-
 .../drivers/swr/rasterizer/common/simd16intrin.h   | 1223 ++-----------
 .../drivers/swr/rasterizer/common/simdintrin.h     | 1257 +++-----------
 .../drivers/swr/rasterizer/common/simdlib.hpp      |  550 ++++++
 .../swr/rasterizer/common/simdlib_128_avx.inl      |  545 ++++++
 .../swr/rasterizer/common/simdlib_128_avx2.inl     |   68 +
 .../swr/rasterizer/common/simdlib_128_avx512.inl   |  408 +++++
 .../swr/rasterizer/common/simdlib_256_avx.inl      |  757 +++++++++
 .../swr/rasterizer/common/simdlib_256_avx2.inl     |  234 +++
 .../swr/rasterizer/common/simdlib_256_avx512.inl   |  409 +++++
 .../swr/rasterizer/common/simdlib_512_avx512.inl   |  682 ++++++++
 .../rasterizer/common/simdlib_512_avx512_masks.inl |   27 +
 .../swr/rasterizer/common/simdlib_512_emu.inl      |  842 +++++++++
 .../rasterizer/common/simdlib_512_emu_masks.inl    |   28 +
 .../swr/rasterizer/common/simdlib_interface.hpp    |  428 +++++
 .../swr/rasterizer/common/simdlib_types.hpp        |  377 +++++
 src/gallium/drivers/swr/rasterizer/core/api.cpp    |    8 +-
 .../drivers/swr/rasterizer/core/backend.cpp        |  809 +--------
 src/gallium/drivers/swr/rasterizer/core/backend.h  | 1033 +----------
 .../drivers/swr/rasterizer/core/backend_clear.cpp  |  281 +++
 .../drivers/swr/rasterizer/core/backend_impl.h     | 1067 ++++++++++++
 .../drivers/swr/rasterizer/core/backend_sample.cpp |  344 ++++
 .../swr/rasterizer/core/backend_singlesample.cpp   |  320 ++++
 src/gallium/drivers/swr/rasterizer/core/binner.cpp |  293 ++--
 src/gallium/drivers/swr/rasterizer/core/clip.cpp   |    6 +-
 src/gallium/drivers/swr/rasterizer/core/clip.h     |   50 +-
 src/gallium/drivers/swr/rasterizer/core/context.h  |    2 +-
 .../swr/rasterizer/core/format_conversion.h        |    8 +-
 .../drivers/swr/rasterizer/core/format_types.h     |   30 +-
 .../drivers/swr/rasterizer/core/format_utils.h     |  268 +--
 .../drivers/swr/rasterizer/core/frontend.cpp       |   16 +-
 src/gallium/drivers/swr/rasterizer/core/frontend.h |    4 +-
 .../drivers/swr/rasterizer/core/multisample.cpp    |   48 -
 src/gallium/drivers/swr/rasterizer/core/pa.h       |   16 +-
 src/gallium/drivers/swr/rasterizer/core/pa_avx.cpp |  106 +-
 .../drivers/swr/rasterizer/core/rasterizer.cpp     | 1788 +++-----------------
 .../drivers/swr/rasterizer/core/rasterizer.h       |   31 +-
 .../drivers/swr/rasterizer/core/rasterizer_impl.h  | 1376 +++++++++++++++
 src/gallium/drivers/swr/rasterizer/core/state.h    |   12 +
 .../drivers/swr/rasterizer/memory/StoreTile.h      |  156 +-
 src/gallium/drivers/swr/swr_screen.cpp             |    4 -
 src/gallium/drivers/swr/swr_shader.cpp             |    2 +
 src/gallium/drivers/swr/swr_state.cpp              |    2 +
 53 files changed, 10145 insertions(+), 6152 deletions(-)
 create mode 100644 src/gallium/drivers/swr/rasterizer/codegen/templates/gen_header_init.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/codegen/templates/gen_rasterizer.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx2.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx512.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx2.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx512.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_masks.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_512_emu.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_512_emu_masks.inl
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_interface.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdlib_types.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/backend_clear.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/backend_impl.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/backend_sample.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/backend_singlesample.cpp
 delete mode 100644 src/gallium/drivers/swr/rasterizer/core/multisample.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/rasterizer_impl.h

-- 
2.7.4



More information about the mesa-dev mailing list