[Mesa-dev] [PATCH 4/7] swr/rast: Add ConcatLists()

2018-05-04 Thread George Kyriazis
for concatenating lists --- src/gallium/drivers/swr/rasterizer/codegen/gen_common.py | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_common.py b/src/gallium/drivers/swr/rasterizer/codegen/gen_common.py index 44a0cc8..60b749d 100644 ---

[Mesa-dev] [PATCH 6/7] swr/rast: Add Builder::GetVectorType()

2018-05-04 Thread George Kyriazis
--- .../drivers/swr/rasterizer/jitter/builder.cpp | 44 ++ .../drivers/swr/rasterizer/jitter/builder.h| 1 + 2 files changed, 45 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder.cpp

[Mesa-dev] [PATCH 0/7] SWR changes

2018-05-04 Thread George Kyriazis
Misc OpenSWR changes George Kyriazis (7): swr/rast: Change formatting swr/rast: Use binner topology to assemble backend attributes swr/rast: Add constant initializer for uint64_t swr/rast: Add ConcatLists() swr/rast: Prepend the console output with a newline swr/rast: Add Builder

[Mesa-dev] [PATCH 5/7] swr/rast: Prepend the console output with a newline

2018-05-04 Thread George Kyriazis
It can get jumbled with output from other threads. --- .../swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp

[Mesa-dev] [PATCH 3/7] swr/rast: Add constant initializer for uint64_t

2018-05-04 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 5 + src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp

[Mesa-dev] [PATCH 2/7] swr/rast: Use binner topology to assemble backend attributes

2018-05-04 Thread George Kyriazis
Previously was using the draw topology, which may change if GS or Tess are active. Only affected attributes marked with constant interpolation, which limited the impact. --- src/gallium/drivers/swr/rasterizer/core/binner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[Mesa-dev] [PATCH 1/7] swr/rast: Change formatting

2018-05-04 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/core/api.cpp | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp index a2ee85d..3458793 100644 ---

[Mesa-dev] [PATCH 7/7] swr/rast: Thread locked tiles improvement

2018-05-04 Thread George Kyriazis
- Change tilemgr TILE_ID encoding to use Morton-order (Z-order). - Change locked tiles set to bitset. Makes clear, set, get much faster. --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 11 ++- src/gallium/drivers/swr/rasterizer/core/context.h | 2 +-

[Mesa-dev] [PATCH 12/21] swr/rast: Fix init in EventHandlerWorkerStats

2018-04-25 Thread George Kyriazis
Make sure we initialize variables. --- src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp index

[Mesa-dev] [PATCH 15/21] swr/rast: Fix regressions.

2018-04-25 Thread George Kyriazis
Bump jit cache revision number to force recompile. --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp

[Mesa-dev] [PATCH 11/21] swr/rast: Fix return type of VCVTPS2PH.

2018-04-25 Thread George Kyriazis
expecting <8xi16> return. --- src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py

[Mesa-dev] [PATCH 03/21] swr/rast: Fix wrong type allocation

2018-04-25 Thread George Kyriazis
ALLOCA pointer elements, not pointers. --- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp index

[Mesa-dev] [PATCH 18/21] swr/rast: Output rasterizer dir to console since it's process specific

2018-04-25 Thread George Kyriazis
--- .../swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp

[Mesa-dev] [PATCH 17/21] swr/rast: Add TranslateGfxAddress for shader

2018-04-25 Thread George Kyriazis
Also add GFX_MEM_CLIENT_SHADER --- .../drivers/swr/rasterizer/jitter/builder_gfx_mem.cpp | 2 +- .../drivers/swr/rasterizer/jitter/builder_gfx_mem.h | 17 - src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 3 ++- 3 files changed, 19 insertions(+), 3 deletions(-)

[Mesa-dev] [PATCH 06/21] swr/rast: Internal core change

2018-04-25 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/core/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/swr/rasterizer/core/utils.h b/src/gallium/drivers/swr/rasterizer/core/utils.h index d6cbf24..7769e05 100644 --- a/src/gallium/drivers/swr/rasterizer/core/utils.h +++

[Mesa-dev] [PATCH 05/21] swr/rast: Fix x86 lowering 64-bit float handling

2018-04-25 Thread George Kyriazis
- 64-bit cvt-to-float needs to be explicitly handled - gathers need the right parameter types to work with doubles Fixes draw-vertices piglit tests --- .../drivers/swr/rasterizer/jitter/builder_misc.h | 12 ++ .../rasterizer/jitter/functionpasses/lower_x86.cpp | 50 +++---

[Mesa-dev] [PATCH 20/21] swr/rast: Small editorial changes

2018-04-25 Thread George Kyriazis
--- .../swr/rasterizer/jitter/builder_gfx_mem.cpp | 33 ++ .../swr/rasterizer/jitter/builder_gfx_mem.h| 1 + .../rasterizer/jitter/functionpasses/lower_x86.cpp | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git

[Mesa-dev] [PATCH 16/21] swr/rast: jit PRINT improvements.

2018-04-25 Thread George Kyriazis
Sign-extend integer types to 32bit when specifying "%d" and add new %u which zero-extends to 32bit. Improves printing of sub 32bit integer types (i1 specifically). --- .../drivers/swr/rasterizer/jitter/builder_misc.cpp| 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-)

[Mesa-dev] [PATCH 07/21] swr/rast: Add support for TexelMask evaluation

2018-04-25 Thread George Kyriazis
--- .../drivers/swr/rasterizer/jitter/builder.cpp | 42 ++ .../drivers/swr/rasterizer/jitter/builder.h| 2 ++ 2 files changed, 44 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder.cpp

[Mesa-dev] [PATCH 21/21] swr/rast: No need to export GetSimdValidIndicesGfx

2018-04-25 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 4 1 file changed, 4 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp index 48f0961..7b0b80a 100644 ---

[Mesa-dev] [PATCH 19/21] swr/rast: Use new processor detection mechanism

2018-04-25 Thread George Kyriazis
Use specific avx512 selection mechanism based on avx512er bit instead of getHostCPUName(). LLVM 6.0.0 has a bug that reports wrong string for KNL (fixed in 6.0.1). --- .../drivers/swr/rasterizer/jitter/JitManager.cpp | 50 +- .../drivers/swr/rasterizer/jitter/JitManager.h

[Mesa-dev] [PATCH 10/21] swr/rast: WIP Translation handling

2018-04-25 Thread George Kyriazis
--- .../swr/rasterizer/jitter/builder_gfx_mem.cpp | 41 +- .../swr/rasterizer/jitter/builder_gfx_mem.h| 3 +- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.cpp

[Mesa-dev] [PATCH 02/21] swr: touch generated files to update timestamp

2018-04-25 Thread George Kyriazis
previous change in generators necessitates this change --- src/gallium/drivers/swr/Makefile.am | 11 +++ 1 file changed, 11 insertions(+) diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am index c22f09e..8b31502 100644 ---

[Mesa-dev] [PATCH 00/21] OpenSWR batch change

2018-04-25 Thread George Kyriazis
Misc changes. Include: - fix KNL behavior with LLVm 6.0.0 - fix byte offset for non-indexed draws - fix 64-bit float handling with code generator - misc cleanup George Kyriazis (21): swr/rast: Fix byte offset for non-indexed draws swr: touch generated files to update timestamp swr/rast

[Mesa-dev] [PATCH 01/21] swr/rast: Fix byte offset for non-indexed draws

2018-04-25 Thread George Kyriazis
for the case when USE_SIMD16_SHADERS == FALSE --- src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index

[Mesa-dev] [PATCH 14/21] swr/rast: Cleanup old windows cruft.

2018-04-25 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 16 ++-- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp index 284eb27..bfc3e42 100644 ---

[Mesa-dev] [PATCH 09/21] swr/rast: Use different handing for stream masks

2018-04-25 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/common/os.h | 3 +++ src/gallium/drivers/swr/rasterizer/core/api.cpp | 4 ++-- src/gallium/drivers/swr/rasterizer/core/frontend.cpp| 6 +++--- src/gallium/drivers/swr/rasterizer/core/state.h | 2 +-

[Mesa-dev] [PATCH 04/21] swr/rast: Add some SIMD_T utility functors

2018-04-25 Thread George Kyriazis
VecEqual and VecHash --- .../drivers/swr/rasterizer/common/simdlib.hpp | 66 ++ 1 file changed, 66 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/common/simdlib.hpp b/src/gallium/drivers/swr/rasterizer/common/simdlib.hpp index 4114645..24cf27d 100644 ---

[Mesa-dev] [PATCH 08/21] swr/rast: Silence warnings

2018-04-25 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp| 2 -- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp| 1 - src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp | 3 ++- 3 files changed, 2 insertions(+), 4 deletions(-) diff

[Mesa-dev] [PATCH 13/21] swr/rast: Package events.proto with core output

2018-04-25 Thread George Kyriazis
However only if the file exists in DEBUG_OUTPUT_DIR. The expectation is that AR rasterizerLauncher will start placing it there when launching a workload (which is in a subsequent checkin) --- .../drivers/swr/rasterizer/archrast/archrast.cpp | 30 +-

[Mesa-dev] [PATCH v2 32/45] swr/rast: Fix alloca usage in jitter

2018-04-17 Thread George Kyriazis
Fix issue where temporary allocas were getting hoisted to function entry unnecessarily. We now explicitly mark temporary allocas and skip hoisting during the hoist pass. Shuold reduce stack usage. --- src/gallium/drivers/swr/rasterizer/jitter/builder.cpp | 17 +

[Mesa-dev] [PATCH v2 25/45] swr/rast: Enable generalized fetch jit

2018-04-17 Thread George Kyriazis
Enable generalized fetch jit with 8 or 16 wide SIMD target. Still some work needed to remove some simd8 double pumping for 16-wide target. Also removed unused non-gather load vertices path. --- .../drivers/swr/rasterizer/jitter/builder.cpp | 26 +-

[Mesa-dev] [PATCH v2 30/45] swr/rast: Fix byte offset for non-indexed draws

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index 25d1073..2076859 100644 ---

[Mesa-dev] [PATCH v2 41/45] swr/rast: Refactor to improve code sharing.

2018-04-17 Thread George Kyriazis
--- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 79 ++ 1 file changed, 36 insertions(+), 43 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp index 767866f..af97b83 100644 ---

[Mesa-dev] [PATCH v2 27/45] swr/rast: Fix codegen for typedef types

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_types.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_types.py b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_types.py index a127976..d8863c0 100644 ---

[Mesa-dev] [PATCH v2 20/45] swr/rast: Start refactoring of builder/packetizer.

2018-04-17 Thread George Kyriazis
Move x86 intrinsic lowering to a separate pass. Builder now instantiates generic intrinsics for features not supported by llvm. The separate x86 lowering pass is responsible for lowering to valid x86 for the target SIMD architecture. Currently it's a port of existing code to get it up and running

[Mesa-dev] [PATCH v2 40/45] swr/rast: minimize codegen redundant work

2018-04-17 Thread George Kyriazis
Move filtering of redundant codegen operations into gen scripts themselves --- .../drivers/swr/rasterizer/codegen/gen_archrast.py | 111 + .../drivers/swr/rasterizer/codegen/gen_backends.py | 97 +-- .../drivers/swr/rasterizer/codegen/gen_common.py | 131

[Mesa-dev] [PATCH v2 12/45] swr/rast: Permute work for simd16

2018-04-17 Thread George Kyriazis
Fix slow permutes in PA tri lists under SIMD16 emulation on AVX Added missing permute (interlane, immediate) to SIMDLIB --- .../drivers/swr/rasterizer/common/simd16intrin.h | 1 + .../drivers/swr/rasterizer/common/simdintrin.h | 1 + .../swr/rasterizer/common/simdlib_256_avx.inl |

[Mesa-dev] [PATCH v2 14/45] swr/rast: Add "Num Instructions Executed" stats intrinsic.

2018-04-17 Thread George Kyriazis
Added a SWR_SHADER_STATS structure which is passed to each shader. The stats pass will instrument the shader to populate this. --- src/gallium/drivers/swr/rasterizer/core/state.h | 28 ++--- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git

[Mesa-dev] [PATCH v2 29/45] swr/rast: Add support for setting optimization level

2018-04-17 Thread George Kyriazis
for JIT compilation --- .../drivers/swr/rasterizer/codegen/knob_defs.py| 35 ++ .../swr/rasterizer/common/simdlib_512_emu.inl | 2 +- src/gallium/drivers/swr/rasterizer/core/state.h| 13 .../drivers/swr/rasterizer/jitter/JitManager.cpp | 10 +--

[Mesa-dev] [PATCH v2 02/45] swr/rast: Introduce JIT_MEM_CLIENT

2018-04-17 Thread George Kyriazis
Add assert for correct usage of memory accesses v2: reworded commit message; renamed enum more appropriately --- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 58 ++ .../drivers/swr/rasterizer/jitter/builder_mem.h| 47 --

[Mesa-dev] [PATCH v2 37/45] swr/rast: Add shader stats infrastructure (WIP)

2018-04-17 Thread George Kyriazis
--- .../drivers/swr/rasterizer/archrast/archrast.cpp | 64 +++-- .../drivers/swr/rasterizer/archrast/events.proto | 65 -- .../swr/rasterizer/archrast/events_private.proto | 30 ++ .../drivers/swr/rasterizer/jitter/builder.h| 23

[Mesa-dev] [PATCH v2 18/45] swr/rast: Move CallPrint() to a separate file

2018-04-17 Thread George Kyriazis
Needed work for jit code debug. --- src/gallium/drivers/swr/Makefile.sources | 3 +- src/gallium/drivers/swr/meson.build| 1 + .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 22 +- .../rasterizer/jitter/shader_lib/DebugOutput.cpp | 51

[Mesa-dev] [PATCH v2 36/45] swr/rast: Type-check TemplateArgUnroller

2018-04-17 Thread George Kyriazis
Allows direct use of enum values in conversion to template args. --- src/gallium/drivers/swr/rasterizer/core/utils.h | 39 + 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/utils.h

[Mesa-dev] [PATCH v2 16/45] swr/rast: Add some archrast counters

2018-04-17 Thread George Kyriazis
Hook up archrast counters for shader stats: instructions executed. --- .../drivers/swr/rasterizer/archrast/archrast.cpp | 4 +-- .../drivers/swr/rasterizer/archrast/events.proto | 30 ++ .../drivers/swr/rasterizer/core/backend.cpp| 1 +

[Mesa-dev] [PATCH v2 35/45] swr/rast: Add vgather to x86 lowering pass.

2018-04-17 Thread George Kyriazis
Add support for generic VGATHERPD intrinsic in x86 lowering pass. --- .../rasterizer/jitter/functionpasses/lower_x86.cpp | 85 +++--- 1 file changed, 76 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp

[Mesa-dev] [PATCH v2 31/45] swr/rast: Change gfx pointers to gfxptr_t

2018-04-17 Thread George Kyriazis
Changing type to gfxptr for indices and related changes to fetch and mem builder code. --- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 4 +- src/gallium/drivers/swr/rasterizer/core/api.cpp| 8 +- src/gallium/drivers/swr/rasterizer/core/context.h | 2 +-

[Mesa-dev] [PATCH v2 24/45] swr/rast: Add builder_gfx_mem.{h|cpp}

2018-04-17 Thread George Kyriazis
Abstract usage scenarios for memory accesses into builder_gfx_mem. Builder_gfx_mem will convert gfxptr_t from 64-bit int to regular pointer types for use by builder_mem. v2: reworded commit message; renamed enum more appropriately --- src/gallium/drivers/swr/Makefile.sources | 2 +

[Mesa-dev] [PATCH v2 15/45] swr/rast: Code cleanup

2018-04-17 Thread George Kyriazis
Removing some code that doesn't seem to do anything meaningful. --- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 9 + 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp

[Mesa-dev] [PATCH v2 11/45] swr/rast: WIP builder rewrite (2)

2018-04-17 Thread George Kyriazis
Finish up the remaining explicit intrinsic uses. At this point all explicit Intrinsic::getDeclaration() usage has been replaced with auto generated macros generated with gen_llvm_ir_macros.py. Going forward, make sure to only use the intrinsics here, adding new ones as needed. Next step is to

[Mesa-dev] [PATCH v2 43/45] swr/rast: Optimize late/bindless JIT of samplers

2018-04-17 Thread George Kyriazis
Add per-worker thread private data to all shader calls Add per-worker sampler cache and jit context Add late LoadTexel JIT support Add per-worker-thread Sampler / LoadTexel JIT --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 7 ++- src/gallium/drivers/swr/rasterizer/core/api.h | 47

[Mesa-dev] [PATCH v2 26/45] swr: add x86 lowering pass to fragment shader

2018-04-17 Thread George Kyriazis
Needed because some FP paths (namely stipple) use gather intrinsics that now need to be lowered to x86. v2: fix typo in commit message --- src/gallium/drivers/swr/swr_shader.cpp | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/swr/swr_shader.cpp

[Mesa-dev] [PATCH v2 45/45] swr/rast: Fix VGATHERPD lowering

2018-04-17 Thread George Kyriazis
Also Implement VHSUBPS in x86 lowering pass. --- .../rasterizer/jitter/functionpasses/lower_x86.cpp | 82 ++ 1 file changed, 69 insertions(+), 13 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp

[Mesa-dev] [PATCH v2 44/45] swr/rast: Replace x86 VMOVMSK with llvm-only implementation

2018-04-17 Thread George Kyriazis
--- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 1 - .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 2 +- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 25 -- .../drivers/swr/rasterizer/jitter/builder_misc.h | 2 ++

[Mesa-dev] [PATCH v2 38/45] swr/rast: Fix 64bit float loads in x86 lowering pass

2018-04-17 Thread George Kyriazis
--- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 39 +- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 31 + 2 files changed, 25 insertions(+), 45 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp

[Mesa-dev] [PATCH v2 13/45] swr/rast: Add MEM_ADD helper function to Builder.

2018-04-17 Thread George Kyriazis
mem[offset] += value This function will be heavily used by all stats intrinsics. --- src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 7 +++ src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 2 ++ 2 files changed, 9 insertions(+) diff --git

[Mesa-dev] [PATCH v2 04/45] swr/rast: Add debug type info for i128

2018-04-17 Thread George Kyriazis
Help support debug info in 16 wide shaders. --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp index 0cefa43..bfb1d2e

[Mesa-dev] [PATCH v2 08/45] swr/rast: LLVM 6 fix

2018-04-17 Thread George Kyriazis
for getting masked gather intrinsic (also compatible with LLVM 4) --- src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp

[Mesa-dev] [PATCH v2 33/45] swr/rast: add cvt instructions in x86 lowering pass

2018-04-17 Thread George Kyriazis
Support generic VCVTPD2PS and VCVTPH2PS in x86 lowering pass. --- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 70 -- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 14 - .../drivers/swr/rasterizer/jitter/builder_mem.h| 3 -

[Mesa-dev] [PATCH v2 22/45] swr/rast: Cleanup of JitManager convenience types

2018-04-17 Thread George Kyriazis
Small cleanup. Remove convenience types from JitManager and standardize on the Builder's convenience types. --- .../drivers/swr/rasterizer/jitter/JitManager.cpp | 19 --- .../drivers/swr/rasterizer/jitter/JitManager.h | 20

[Mesa-dev] [PATCH v2 28/45] swr/rast: Adding translate call to builder_gfx_mem.

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.cpp | 5 + src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.cpp

[Mesa-dev] [PATCH v2 39/45] swr/rast: double-pump in x86 lowering pass

2018-04-17 Thread George Kyriazis
Add support for double-pumping a smaller SIMD width intrinsic. --- .../rasterizer/jitter/functionpasses/lower_x86.cpp | 30 ++ 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp

[Mesa-dev] [PATCH v2 34/45] swr/rast: fix comment

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp index 8d659d0..cdfddf3 100644 ---

[Mesa-dev] [PATCH v2 42/45] swr/rast: Implement VROUND intrinsic in x86 lowering pass

2018-04-17 Thread George Kyriazis
--- .../rasterizer/jitter/functionpasses/lower_x86.cpp | 38 +- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp b/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp index

[Mesa-dev] [PATCH v2 09/45] swr/rast: WIP builder rewrite.

2018-04-17 Thread George Kyriazis
Start removing avx2 macros for functionality that exists in llvm. --- src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py | 5 - src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 9 - 2 files changed, 14 deletions(-) diff --git

[Mesa-dev] [PATCH v2 23/45] swr/rast: Lower VGATHERPS and VGATHERPS_16 to x86.

2018-04-17 Thread George Kyriazis
Some more work to do before we can support simultaneous 8-wide and 16-wide and remove the VGATHERPS_16 version. --- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 69 +- 1 file changed, 2 insertions(+), 67 deletions(-) diff --git

[Mesa-dev] [PATCH v2 10/45] swr/rast: Add autogen of helper llvm intrinsics.

2018-04-17 Thread George Kyriazis
Replace sqrt, maskload, fp min/max, cttz, ctlz with llvm equivalent. Replace AVX maskedstore intrinsic with LLVM intrinsic. Add helper llvm macros for stacksave, stackrestore, popcnt. --- src/gallium/drivers/swr/Makefile.am| 8 ++ src/gallium/drivers/swr/SConscript

[Mesa-dev] [PATCH v2 07/45] swr/rast: Changes to allow jitter to compile with LLVM5

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp b/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp index 031bced..b1d6076 100644 ---

[Mesa-dev] [PATCH v2 21/45] swr/rast: Lower PERMD and PERMPS to x86.

2018-04-17 Thread George Kyriazis
Add support for providing an emulation callback function for arch/width combinations that don't map cleanly to an x86 intrinsic. --- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 8 +-- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 70 --

[Mesa-dev] [PATCH v2 17/45] swr/rast: Fix name mangling for LLVM pow intrinsic

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py index 0245584..324f24a

[Mesa-dev] [PATCH v2 19/45] swr/rast: Simplify #define usage in gen source file

2018-04-17 Thread George Kyriazis
Removed preprocessor defines from structures passed to LLVM jitted code. The python scripts do not understand the preprocessor defines and ignores them. So for fields that are compiled out due to a preprocessor define the LLVM script accounts for them anyway because it doesn't know what the

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

2018-04-17 Thread George Kyriazis
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

[Mesa-dev] [PATCH v2 06/45] swr/rast: Add some archrast stats

2018-04-17 Thread George Kyriazis
Add stats for degenerate and backfacing primitive counts Wire archrast stats for alpha blend and alpha test. pass value to jitter, upon return have archrast event increment a value --- .../drivers/swr/rasterizer/archrast/archrast.cpp | 35 +-

[Mesa-dev] [PATCH v2 05/45] swr/rast: Silence some unused variable warnings

2018-04-17 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp index 5feb5fa..1ee6691 100644 ---

[Mesa-dev] [PATCH v2 01/45] swr/rast: Add some instructions to jitter

2018-04-17 Thread George Kyriazis
VPHADDD, PMAXUD, PMINUD --- .../drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py | 1 + src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 12 src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 2 ++ 3 files changed, 15 insertions(+) diff --git

[Mesa-dev] [PATCH v2 03/45] swr/rast: Use blend context struct to pass params

2018-04-17 Thread George Kyriazis
Stuff parameters into a blend context struct before passing down through the PFN_BLEND_JIT_FUNC function pointer. Needed for stat changes. --- .../drivers/swr/rasterizer/core/backend_impl.h | 44 ++- src/gallium/drivers/swr/rasterizer/core/state.h| 17 ++--

[Mesa-dev] [PATCH 15/45] swr/rast: Code cleanup

2018-04-13 Thread George Kyriazis
Removing some code that doesn't seem to do anything meaningful. --- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 9 + 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp

[Mesa-dev] [PATCH 38/45] swr/rast: Fix 64bit float loads in x86 lowering pass

2018-04-13 Thread George Kyriazis
--- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 39 +- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 31 + 2 files changed, 25 insertions(+), 45 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp

[Mesa-dev] [PATCH 18/45] swr/rast: Move CallPrint() to a separate file

2018-04-13 Thread George Kyriazis
Needed work for jit code debug. --- src/gallium/drivers/swr/Makefile.sources | 3 +- src/gallium/drivers/swr/meson.build| 1 + .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 22 +- .../rasterizer/jitter/shader_lib/DebugOutput.cpp | 51

[Mesa-dev] [PATCH 23/45] swr/rast: Lower VGATHERPS and VGATHERPS_16 to x86.

2018-04-13 Thread George Kyriazis
Some more work to do before we can support simultaneous 8-wide and 16-wide and remove the VGATHERPS_16 version. --- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 69 +- 1 file changed, 2 insertions(+), 67 deletions(-) diff --git

[Mesa-dev] [PATCH 33/45] swr/rast: add cvt instructions in x86 lowering pass

2018-04-13 Thread George Kyriazis
Support generic VCVTPD2PS and VCVTPH2PS in x86 lowering pass. --- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 70 -- .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 14 - .../drivers/swr/rasterizer/jitter/builder_mem.h| 3 -

[Mesa-dev] [PATCH 31/45] swr/rast: Change gfx pointers to gfxptr_t

2018-04-13 Thread George Kyriazis
Changing type to gfxptr for indices and related changes to fetch and mem builder code. --- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 4 +- src/gallium/drivers/swr/rasterizer/core/api.cpp| 8 +- src/gallium/drivers/swr/rasterizer/core/context.h | 2 +-

[Mesa-dev] [PATCH 24/45] swr/rast: Add builder_gfx_mem.{h|cpp}

2018-04-13 Thread George Kyriazis
Needed to support full translation. Builder_gfx_mem will convert gfxptr_t from 64 bit int to regular pointer types for use by builder_mem. --- src/gallium/drivers/swr/Makefile.sources | 2 + src/gallium/drivers/swr/meson.build| 2 +

[Mesa-dev] [PATCH 14/45] swr/rast: Add "Num Instructions Executed" stats intrinsic.

2018-04-13 Thread George Kyriazis
Added a SWR_SHADER_STATS structure which is passed to each shader. The stats pass will instrument the shader to populate this. --- src/gallium/drivers/swr/rasterizer/core/state.h | 28 ++--- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git

[Mesa-dev] [PATCH 43/45] swr/rast: Optimize late/bindless JIT of samplers

2018-04-13 Thread George Kyriazis
Add per-worker thread private data to all shader calls Add per-worker sampler cache and jit context Add late LoadTexel JIT support Add per-worker-thread Sampler / LoadTexel JIT --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 7 ++- src/gallium/drivers/swr/rasterizer/core/api.h | 47

[Mesa-dev] [PATCH 09/45] swr/rast: WIP builder rewrite.

2018-04-13 Thread George Kyriazis
Start removing avx2 macros for functionality that exists in llvm. --- src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py | 5 - src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 9 - 2 files changed, 14 deletions(-) diff --git

[Mesa-dev] [PATCH 32/45] swr/rast: Fix alloca usage in jitter

2018-04-13 Thread George Kyriazis
Fix issue where temporary allocas were getting hoisted to function entry unnecessarily. We now explicitly mark temporary allocas and skip hoisting during the hoist pass. Shuold reduce stack usage. --- src/gallium/drivers/swr/rasterizer/jitter/builder.cpp | 17 +

[Mesa-dev] [PATCH 30/45] swr/rast: Fix byte offset for non-indexed draws

2018-04-13 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index 25d1073..2076859 100644 ---

[Mesa-dev] [PATCH 42/45] swr/rast: Implement VROUND intrinsic in x86 lowering pass

2018-04-13 Thread George Kyriazis
--- .../rasterizer/jitter/functionpasses/lower_x86.cpp | 38 +- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp b/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp index

[Mesa-dev] [PATCH 22/45] swr/rast: Cleanup of JitManager convenience types

2018-04-13 Thread George Kyriazis
Small cleanup. Remove convenience types from JitManager and standardize on the Builder's convenience types. --- .../drivers/swr/rasterizer/jitter/JitManager.cpp | 19 --- .../drivers/swr/rasterizer/jitter/JitManager.h | 20

[Mesa-dev] [PATCH 20/45] swr/rast: Start refactoring of builder/packetizer.

2018-04-13 Thread George Kyriazis
Move x86 intrinsic lowering to a separate pass. Builder now instantiates generic intrinsics for features not supported by llvm. The separate x86 lowering pass is responsible for lowering to valid x86 for the target SIMD architecture. Currently it's a port of existing code to get it up and running

[Mesa-dev] [PATCH 34/45] swr/rast: fix comment

2018-04-13 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp index 8d659d0..cdfddf3 100644 ---

[Mesa-dev] [PATCH 40/45] swr/rast: minimize codegen redundant work

2018-04-13 Thread George Kyriazis
Move filtering of redundant codegen operations into gen scripts themselves --- .../drivers/swr/rasterizer/codegen/gen_archrast.py | 111 + .../drivers/swr/rasterizer/codegen/gen_backends.py | 97 +-- .../drivers/swr/rasterizer/codegen/gen_common.py | 131

[Mesa-dev] [PATCH 36/45] swr/rast: Type-check TemplateArgUnroller

2018-04-13 Thread George Kyriazis
Allows direct use of enum values in conversion to template args. --- src/gallium/drivers/swr/rasterizer/core/utils.h | 39 + 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/utils.h

[Mesa-dev] [PATCH 16/45] swr/rast: Add some archrast counters

2018-04-13 Thread George Kyriazis
Hook up archrast counters for shader stats: instructions executed. --- .../drivers/swr/rasterizer/archrast/archrast.cpp | 4 +-- .../drivers/swr/rasterizer/archrast/events.proto | 30 ++ .../drivers/swr/rasterizer/core/backend.cpp| 1 +

[Mesa-dev] [PATCH 25/45] swr/rast: Enable generalized fetch jit

2018-04-13 Thread George Kyriazis
Enable generalized fetch jit with 8 or 16 wide SIMD target. Still some work needed to remove some simd8 double pumping for 16-wide target. Also removed unused non-gather load vertices path. --- .../drivers/swr/rasterizer/jitter/builder.cpp | 26 +-

[Mesa-dev] [PATCH 44/45] swr/rast: Replace x86 VMOVMSK with llvm-only implementation

2018-04-13 Thread George Kyriazis
--- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 1 - .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 2 +- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 25 -- .../drivers/swr/rasterizer/jitter/builder_misc.h | 2 ++

[Mesa-dev] [PATCH 07/45] swr/rast: Changes to allow jitter to compile with LLVM5

2018-04-13 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp b/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp index 031bced..b1d6076 100644 ---

[Mesa-dev] [PATCH 08/45] swr/rast: LLVM 6 fix

2018-04-13 Thread George Kyriazis
for getting masked gather intrinsic (also compatible with LLVM 4) --- src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp

[Mesa-dev] [PATCH 39/45] swr/rast: double-pump in x86 lowering pass

2018-04-13 Thread George Kyriazis
Add support for double-pumping a smaller SIMD width intrinsic. --- .../rasterizer/jitter/functionpasses/lower_x86.cpp | 30 ++ 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp

  1   2   3   4   >