Updating parts 3 through 6 (1 and 2 are still current) based on review comments. Since we're only targeting linux at the moment, I've removed the scons build and libgl-gdi changes to simplify the review process. In the future when we get windows working as well we'll get the scons build system changes ready for review.
Tim Rowley (6): OpenSWR driver OpenSWR rasterizer gallium/auxilary: more __cplusplus exports gallium/target-helpers: add OpenSWR driver mesa/build: add OpenSWR to build gallium/docs - add OpenSWR documentation configure.ac | 38 + m4/ax_cxx_compile_stdcxx.m4 | 558 ++ src/gallium/Makefile.am | 6 + 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 | 12 +- src/gallium/auxiliary/util/u_dl.h | 6 + src/gallium/docs/source/drivers/openswr.rst | 21 + src/gallium/docs/source/drivers/openswr/faq.rst | 141 + src/gallium/docs/source/drivers/openswr/knobs.rst | 114 + .../docs/source/drivers/openswr/profiling.rst | 67 + src/gallium/docs/source/drivers/openswr/usage.rst | 38 + src/gallium/drivers/swr/.clang-format | 64 + src/gallium/drivers/swr/Makefile.am | 31 + src/gallium/drivers/swr/Makefile.sources | 23 + src/gallium/drivers/swr/Makefile.sources-arch | 111 + src/gallium/drivers/swr/avx/Makefile.am | 99 + src/gallium/drivers/swr/avx2/Makefile.am | 99 + .../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-xlib/Makefile.am | 5 + src/gallium/targets/osmesa/Makefile.am | 6 + 133 files changed, 55418 insertions(+), 1 deletion(-) create mode 100644 m4/ax_cxx_compile_stdcxx.m4 create mode 100644 src/gallium/docs/source/drivers/openswr.rst create mode 100644 src/gallium/docs/source/drivers/openswr/faq.rst create mode 100644 src/gallium/docs/source/drivers/openswr/knobs.rst create mode 100644 src/gallium/docs/source/drivers/openswr/profiling.rst create mode 100644 src/gallium/docs/source/drivers/openswr/usage.rst create mode 100644 src/gallium/drivers/swr/.clang-format 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/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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev