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
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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev