[Mesa-dev] [PATCH v2 0/6] OpenSWR driver addition

Tim Rowley timothy.o.rowley at intel.com
Fri Feb 19 04:23:25 UTC 2016


Thanks for review comments.  Changes since v1:
  * split patch 3/4 (mesa changes) into two patches
  * restore llvmpipe as the default software renderer
  * add documentation

Not resending old patches still current:
  * 1/4 (OpenSWR driver)
  * 2/4 (OpenSWR rasterizer)
  * 4/4 (OpenSWR build changes)

Tim Rowley (6):
  OpenSWR driver
  OpenSWR rasterizer
  __cplusplus exports around more gallium utilities
  OpenSWR added to mesa software renderers
  OpenSWR build changes
  OpenSWR documentation

 configure.ac                                       |   18 +
 scons/custom.py                                    |    2 +-
 scons/llvm.py                                      |    8 +-
 src/gallium/Makefile.am                            |    6 +
 src/gallium/SConscript                             |    3 +
 src/gallium/auxiliary/gallivm/lp_bld_flow.h        |    7 +
 src/gallium/auxiliary/gallivm/lp_bld_init.h        |    7 +
 src/gallium/auxiliary/gallivm/lp_bld_sample.h      |    6 +
 src/gallium/auxiliary/gallivm/lp_bld_tgsi.h        |    8 +
 .../auxiliary/target-helpers/inline_sw_helper.h    |   11 +
 .../target-helpers/inline_wrapper_sw_helper.h      |    2 +-
 src/gallium/auxiliary/util/u_dl.h                  |    6 +
 src/gallium/docs/source/openswr.rst                |   21 +
 src/gallium/docs/source/openswr/faq.rst            |  141 +
 src/gallium/docs/source/openswr/knobs.rst          |  114 +
 src/gallium/docs/source/openswr/profiling.rst      |   67 +
 src/gallium/docs/source/openswr/usage.rst          |   42 +
 src/gallium/drivers/swr/.clang-format              |   64 +
 src/gallium/drivers/swr/Automake.inc               |   30 +
 src/gallium/drivers/swr/Makefile.am                |   37 +
 src/gallium/drivers/swr/Makefile.sources           |   23 +
 src/gallium/drivers/swr/Makefile.sources-arch      |  111 +
 src/gallium/drivers/swr/SConscript                 |   31 +
 src/gallium/drivers/swr/SConscript-arch            |  117 +
 src/gallium/drivers/swr/avx/Makefile.am            |  112 +
 src/gallium/drivers/swr/avx2/Makefile.am           |  112 +
 .../drivers/swr/rasterizer/common/containers.hpp   |  208 +
 .../drivers/swr/rasterizer/common/formats.cpp      | 5469 ++++++++++++++++++++
 .../drivers/swr/rasterizer/common/formats.h        |  251 +
 src/gallium/drivers/swr/rasterizer/common/isa.hpp  |  235 +
 src/gallium/drivers/swr/rasterizer/common/os.h     |  221 +
 .../swr/rasterizer/common/rdtsc_buckets.cpp        |  188 +
 .../drivers/swr/rasterizer/common/rdtsc_buckets.h  |  229 +
 .../swr/rasterizer/common/rdtsc_buckets_shared.h   |  167 +
 .../drivers/swr/rasterizer/common/simdintrin.h     |  787 +++
 .../drivers/swr/rasterizer/common/swr_assert.cpp   |  238 +
 .../drivers/swr/rasterizer/common/swr_assert.h     |  109 +
 src/gallium/drivers/swr/rasterizer/core/api.cpp    | 1511 ++++++
 src/gallium/drivers/swr/rasterizer/core/api.h      |  500 ++
 src/gallium/drivers/swr/rasterizer/core/arena.cpp  |  166 +
 src/gallium/drivers/swr/rasterizer/core/arena.h    |   69 +
 .../drivers/swr/rasterizer/core/backend.cpp        | 1899 +++++++
 src/gallium/drivers/swr/rasterizer/core/backend.h  |   59 +
 src/gallium/drivers/swr/rasterizer/core/blend.h    |  318 ++
 src/gallium/drivers/swr/rasterizer/core/clip.cpp   |  201 +
 src/gallium/drivers/swr/rasterizer/core/clip.h     |  868 ++++
 src/gallium/drivers/swr/rasterizer/core/context.h  |  495 ++
 .../drivers/swr/rasterizer/core/depthstencil.h     |  245 +
 src/gallium/drivers/swr/rasterizer/core/fifo.hpp   |  136 +
 .../swr/rasterizer/core/format_conversion.h        |  196 +
 .../drivers/swr/rasterizer/core/format_traits.h    | 3548 +++++++++++++
 .../drivers/swr/rasterizer/core/format_types.h     | 1075 ++++
 .../drivers/swr/rasterizer/core/frontend.cpp       | 2345 +++++++++
 src/gallium/drivers/swr/rasterizer/core/frontend.h |  327 ++
 src/gallium/drivers/swr/rasterizer/core/knobs.h    |  142 +
 .../drivers/swr/rasterizer/core/knobs_init.h       |   98 +
 .../drivers/swr/rasterizer/core/multisample.cpp    |   51 +
 .../drivers/swr/rasterizer/core/multisample.h      |  620 +++
 src/gallium/drivers/swr/rasterizer/core/pa.h       | 1208 +++++
 src/gallium/drivers/swr/rasterizer/core/pa_avx.cpp | 1177 +++++
 .../drivers/swr/rasterizer/core/rasterizer.cpp     | 1393 +++++
 .../drivers/swr/rasterizer/core/rasterizer.h       |   35 +
 .../drivers/swr/rasterizer/core/rdtsc_core.cpp     |   91 +
 .../drivers/swr/rasterizer/core/rdtsc_core.h       |  177 +
 src/gallium/drivers/swr/rasterizer/core/state.h    | 1027 ++++
 .../drivers/swr/rasterizer/core/tessellator.h      |   88 +
 .../drivers/swr/rasterizer/core/threads.cpp        |  962 ++++
 src/gallium/drivers/swr/rasterizer/core/threads.h  |   63 +
 .../drivers/swr/rasterizer/core/tilemgr.cpp        |  105 +
 src/gallium/drivers/swr/rasterizer/core/tilemgr.h  |  390 ++
 src/gallium/drivers/swr/rasterizer/core/utils.cpp  |  148 +
 src/gallium/drivers/swr/rasterizer/core/utils.h    |  831 +++
 .../drivers/swr/rasterizer/jitter/JitManager.cpp   |  313 ++
 .../drivers/swr/rasterizer/jitter/JitManager.h     |  186 +
 .../drivers/swr/rasterizer/jitter/blend_jit.cpp    |  772 +++
 .../drivers/swr/rasterizer/jitter/blend_jit.h      |   93 +
 .../drivers/swr/rasterizer/jitter/builder.cpp      |   71 +
 .../drivers/swr/rasterizer/jitter/builder.h        |   71 +
 .../drivers/swr/rasterizer/jitter/builder_math.h   |   34 +
 .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 1447 ++++++
 .../drivers/swr/rasterizer/jitter/builder_misc.h   |  149 +
 .../drivers/swr/rasterizer/jitter/fetch_jit.cpp    | 1431 +++++
 .../drivers/swr/rasterizer/jitter/fetch_jit.h      |  128 +
 .../drivers/swr/rasterizer/jitter/jit_api.h        |  108 +
 .../jitter/scripts/gen_llvm_ir_macros.py           |  401 ++
 .../rasterizer/jitter/scripts/gen_llvm_types.py    |  341 ++
 .../swr/rasterizer/jitter/streamout_jit.cpp        |  357 ++
 .../drivers/swr/rasterizer/jitter/streamout_jit.h  |   94 +
 .../drivers/swr/rasterizer/memory/ClearTile.cpp    |  287 +
 .../drivers/swr/rasterizer/memory/Convert.h        |  698 +++
 .../drivers/swr/rasterizer/memory/LoadTile.cpp     |  396 ++
 .../drivers/swr/rasterizer/memory/StoreTile.cpp    | 1717 ++++++
 .../swr/rasterizer/memory/TilingFunctions.h        |  581 +++
 .../drivers/swr/rasterizer/memory/tilingtraits.h   |  263 +
 .../drivers/swr/rasterizer/scripts/gen_knobs.py    |   79 +
 .../drivers/swr/rasterizer/scripts/knob_defs.py    |  226 +
 .../swr/rasterizer/scripts/mako/__init__.py        |    8 +
 .../swr/rasterizer/scripts/mako/_ast_util.py       |  845 +++
 .../drivers/swr/rasterizer/scripts/mako/ast.py     |  178 +
 .../drivers/swr/rasterizer/scripts/mako/cache.py   |  238 +
 .../drivers/swr/rasterizer/scripts/mako/cmd.py     |   62 +
 .../drivers/swr/rasterizer/scripts/mako/codegen.py | 1237 +++++
 .../drivers/swr/rasterizer/scripts/mako/compat.py  |  174 +
 .../swr/rasterizer/scripts/mako/exceptions.py      |  373 ++
 .../drivers/swr/rasterizer/scripts/mako/filters.py |  201 +
 .../drivers/swr/rasterizer/scripts/mako/lexer.py   |  441 ++
 .../drivers/swr/rasterizer/scripts/mako/lookup.py  |  359 ++
 .../swr/rasterizer/scripts/mako/parsetree.py       |  594 +++
 .../drivers/swr/rasterizer/scripts/mako/pygen.py   |  299 ++
 .../swr/rasterizer/scripts/mako/pyparser.py        |  232 +
 .../drivers/swr/rasterizer/scripts/mako/runtime.py |  878 ++++
 .../swr/rasterizer/scripts/mako/template.py        |  705 +++
 .../drivers/swr/rasterizer/scripts/mako/util.py    |  360 ++
 .../rasterizer/scripts/templates/knobs.template    |  141 +
 src/gallium/drivers/swr/swr_clear.cpp              |  142 +
 src/gallium/drivers/swr/swr_context.cpp            |  407 ++
 src/gallium/drivers/swr/swr_context.h              |  182 +
 src/gallium/drivers/swr/swr_context_llvm.h         |  124 +
 src/gallium/drivers/swr/swr_draw.cpp               |  271 +
 src/gallium/drivers/swr/swr_fence.cpp              |  143 +
 src/gallium/drivers/swr/swr_fence.h                |   70 +
 src/gallium/drivers/swr/swr_loader.cpp             |   67 +
 src/gallium/drivers/swr/swr_memory.h               |   99 +
 src/gallium/drivers/swr/swr_public.h               |   46 +
 src/gallium/drivers/swr/swr_query.cpp              |  334 ++
 src/gallium/drivers/swr/swr_query.h                |   46 +
 src/gallium/drivers/swr/swr_resource.h             |   97 +
 src/gallium/drivers/swr/swr_scratch.cpp            |  116 +
 src/gallium/drivers/swr/swr_scratch.h              |   63 +
 src/gallium/drivers/swr/swr_screen.cpp             |  746 +++
 src/gallium/drivers/swr/swr_screen.h               |   52 +
 src/gallium/drivers/swr/swr_shader.cpp             |  591 +++
 src/gallium/drivers/swr/swr_shader.h               |   60 +
 src/gallium/drivers/swr/swr_state.cpp              | 1370 +++++
 src/gallium/drivers/swr/swr_state.h                |  307 ++
 src/gallium/drivers/swr/swr_tex_sample.cpp         |  338 ++
 src/gallium/drivers/swr/swr_tex_sample.h           |   47 +
 src/gallium/targets/libgl-gdi/SConscript           |    8 +-
 src/gallium/targets/libgl-gdi/libgl_gdi.c          |   28 +-
 src/gallium/targets/libgl-xlib/Makefile.am         |    5 +
 src/gallium/targets/libgl-xlib/SConscript          |    4 +
 src/gallium/targets/osmesa/Makefile.am             |    6 +
 src/gallium/targets/osmesa/SConscript              |    4 +
 143 files changed, 55103 insertions(+), 10 deletions(-)
 create mode 100644 src/gallium/docs/source/openswr.rst
 create mode 100644 src/gallium/docs/source/openswr/faq.rst
 create mode 100644 src/gallium/docs/source/openswr/knobs.rst
 create mode 100644 src/gallium/docs/source/openswr/profiling.rst
 create mode 100644 src/gallium/docs/source/openswr/usage.rst
 create mode 100644 src/gallium/drivers/swr/.clang-format
 create mode 100644 src/gallium/drivers/swr/Automake.inc
 create mode 100644 src/gallium/drivers/swr/Makefile.am
 create mode 100644 src/gallium/drivers/swr/Makefile.sources
 create mode 100644 src/gallium/drivers/swr/Makefile.sources-arch
 create mode 100644 src/gallium/drivers/swr/SConscript
 create mode 100644 src/gallium/drivers/swr/SConscript-arch
 create mode 100644 src/gallium/drivers/swr/avx/Makefile.am
 create mode 100644 src/gallium/drivers/swr/avx2/Makefile.am
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/containers.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/formats.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/formats.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/isa.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/os.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets_shared.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/simdintrin.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/swr_assert.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/common/swr_assert.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/api.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/api.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/arena.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/arena.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/backend.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/backend.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/blend.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/clip.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/clip.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/context.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/depthstencil.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/fifo.hpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/format_conversion.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/format_traits.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/format_types.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/frontend.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/frontend.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/knobs.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/knobs_init.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/multisample.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/multisample.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/pa.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/pa_avx.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/rasterizer.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/rasterizer.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/rdtsc_core.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/rdtsc_core.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/state.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/tessellator.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/threads.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/threads.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/tilemgr.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/tilemgr.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/utils.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/core/utils.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/JitManager.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/blend_jit.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder_math.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/jit_api.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/scripts/gen_llvm_ir_macros.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/scripts/gen_llvm_types.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/streamout_jit.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/streamout_jit.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/memory/ClearTile.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/memory/Convert.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/memory/LoadTile.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/memory/StoreTile.cpp
 create mode 100644 src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/memory/tilingtraits.h
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/gen_knobs.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/knob_defs.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/__init__.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/_ast_util.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/ast.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/cache.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/cmd.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/codegen.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/compat.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/exceptions.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/filters.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/lexer.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/lookup.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/parsetree.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/pygen.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/pyparser.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/runtime.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/template.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/mako/util.py
 create mode 100644 src/gallium/drivers/swr/rasterizer/scripts/templates/knobs.template
 create mode 100644 src/gallium/drivers/swr/swr_clear.cpp
 create mode 100644 src/gallium/drivers/swr/swr_context.cpp
 create mode 100644 src/gallium/drivers/swr/swr_context.h
 create mode 100644 src/gallium/drivers/swr/swr_context_llvm.h
 create mode 100644 src/gallium/drivers/swr/swr_draw.cpp
 create mode 100644 src/gallium/drivers/swr/swr_fence.cpp
 create mode 100644 src/gallium/drivers/swr/swr_fence.h
 create mode 100644 src/gallium/drivers/swr/swr_loader.cpp
 create mode 100644 src/gallium/drivers/swr/swr_memory.h
 create mode 100644 src/gallium/drivers/swr/swr_public.h
 create mode 100644 src/gallium/drivers/swr/swr_query.cpp
 create mode 100644 src/gallium/drivers/swr/swr_query.h
 create mode 100644 src/gallium/drivers/swr/swr_resource.h
 create mode 100644 src/gallium/drivers/swr/swr_scratch.cpp
 create mode 100644 src/gallium/drivers/swr/swr_scratch.h
 create mode 100644 src/gallium/drivers/swr/swr_screen.cpp
 create mode 100644 src/gallium/drivers/swr/swr_screen.h
 create mode 100644 src/gallium/drivers/swr/swr_shader.cpp
 create mode 100644 src/gallium/drivers/swr/swr_shader.h
 create mode 100644 src/gallium/drivers/swr/swr_state.cpp
 create mode 100644 src/gallium/drivers/swr/swr_state.h
 create mode 100644 src/gallium/drivers/swr/swr_tex_sample.cpp
 create mode 100644 src/gallium/drivers/swr/swr_tex_sample.h

-- 
1.9.1



More information about the mesa-dev mailing list