[Mesa-dev] [PATCH 18/20] swr/rast: Enable simd16 vertex shaders

2018-01-19 Thread George Kyriazis
Flip the switch(es) to enable simd16 vertex shaders: USE_SIMD16_SHADERS and USE_SIMD16_VS Both have to be enabled at the same time. Currently, just setting USE_SIMD16_SHADERS does not work correctly. --- src/gallium/drivers/swr/rasterizer/core/knobs.h | 4 ++-- 1 file changed, 2 insertions(+),

[Mesa-dev] [PATCH 16/20] swr/rast: changed jit debug magic number

2018-01-19 Thread George Kyriazis
--- 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 index ed4193e..a9a416a 100644 --- a/src/gallium/driv

[Mesa-dev] [PATCH 12/20] swr/rast: jit shader lib debug work

2018-01-19 Thread George Kyriazis
Create shader_lib during build, link with shaders at DLL generation time --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 5 + src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 6 ++ 2 files changed, 11 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/j

[Mesa-dev] [PATCH 10/20] swr/rast: x86 autogenerated macro work

2018-01-19 Thread George Kyriazis
Add name argument to x86 autogenerated macros. Add useful variable names for DCL_inputVec implementation. --- .../swr/rasterizer/codegen/gen_llvm_ir_macros.py| 2 +- .../swr/rasterizer/codegen/templates/gen_builder.hpp| 2 +- .../drivers/swr/rasterizer/jitter/builder_misc.cpp |

[Mesa-dev] [PATCH 19/20] swr/rast: Implement Early Rasterization optimization

2018-01-19 Thread George Kyriazis
Early Rasterization is an optimization for small triangles. Scientific workloads often contain very small triangles that has non-zero area and cannot be trivially rejected as falling between pixel centers, but does not cover any pixel center. Those triangles can be initially rasterized as early as

[Mesa-dev] [PATCH 13/20] swr/rast: silence generated file warnings

2018-01-19 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp index 61c3132..9db6c61 100644 --- a/src/g

[Mesa-dev] [PATCH 20/20] swr/rast: Enable early rasterization

2018-01-19 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/core/knobs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/knobs.h b/src/gallium/drivers/swr/rasterizer/core/knobs.h index 23a2876..d88a3aa 100644 --- a/src/gallium/drivers/swr/rasterizer/core/kno

[Mesa-dev] [PATCH 11/20] swr/rast: AVX-512 changes to enable 16-wide VS

2018-01-19 Thread George Kyriazis
Add a new define (USE_SIMD16_VS), to denote calling a 16-wide vertex shader. This is needed because the mesa driver can do 16-wide shaders, but rasty cannot yet, so we need to distinguish. Create a new VertexID entry (VertexID16) for the USE_SIMD16_VS case, since we need to format the vertex id in

[Mesa-dev] [PATCH 15/20] swr/rast: Added ICLAMP builder function

2018-01-19 Thread George Kyriazis
--- src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 4 ++-- src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/rasterize

[Mesa-dev] [PATCH 17/20] swr: Support simd16 vertex shaders

2018-01-19 Thread George Kyriazis
Supporting simd16 vertex shaders involves packing the output of the fetch shader appropriately, especially the vertexID buffers that have to be formatted in one simd16 register, needed by the VS. As part of this support, we needed to remove the 2nd JitManager, since it was not accounting for vecto

[Mesa-dev] [PATCH] swr/rast: Fix llvm5 behavior

2018-01-19 Thread George Kyriazis
For some reason llvm5 is picky about accepting a void * type in the case of building an argument list. Since we don't care about the type (we ignore the argument for now), pick another pointer type --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 3 ++- 1 file changed, 2 insertions(

[Mesa-dev] [PATCH 1/2] swr: Handle resource across context changes

2017-09-25 Thread George Kyriazis
Swr caches fb contents in tiles. Those tiles are stored on a per-context basis. When switching contexts that share resources we need to make sure that the tiles of the old context are being stored and the tiles of the new context are being invalidated (marked as invalid, hence contents need to be

[Mesa-dev] [PATCH 2/2] swr: Remove unneeeded comparison

2017-09-25 Thread George Kyriazis
No need to check if screen->pipe != pipe, so we can just assign it. Just do it. --- src/gallium/drivers/swr/swr_state.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp index 893bd6e..c6da4fc 100

[Mesa-dev] [PATCH] gallium/u_tests: fix ifdef for sync_file fences

2017-10-03 Thread George Kyriazis
include libsync.h only when libdrm is compiled in --- src/gallium/auxiliary/util/u_tests.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_tests.c b/src/gallium/auxiliary/util/u_tests.c index 2e931c0..3cc79af 100644 --- a/src/gallium/auxiliary/util

[Mesa-dev] [PATCH] swr: fix windows build break

2017-01-04 Thread George Kyriazis
Explicitly declare lp_native_vector_width inside an extern "C", since we cannot include the correct header file inside extern "C". --- src/gallium/drivers/swr/swr_screen.cpp | 16 +--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/swr/swr_screen.cpp

[Mesa-dev] [PATCH v2] swr: fix windows build break

2017-01-04 Thread George Kyriazis
wrap lp_native_vector_width around extern "C" for C++. Windows decorates global variables, so when used from .cpp files, need to use an undecorated version. --- src/gallium/auxiliary/gallivm/lp_bld_type.h | 7 +++ src/gallium/drivers/swr/swr_screen.cpp | 4 2 files changed, 7 inserti

[Mesa-dev] [PATCH v3] swr: fix windows build break

2017-01-04 Thread George Kyriazis
wrap lp_bld_type.h around extern "C". Windows decorates global variables, so when used from .cpp files, need to use an undecorated version. --- src/gallium/auxiliary/gallivm/lp_bld_type.h | 7 +++ src/gallium/drivers/swr/swr_screen.cpp | 4 2 files changed, 7 insertions(+), 4 deletio

[Mesa-dev] [PATCH] [swr] Always defer memory free in swr_resource_destroy

2017-01-11 Thread George Kyriazis
Defer delete on regular resources. This ensures that any work being done on the resource is completed before freeing up the resource's memory. --- src/gallium/drivers/swr/swr_screen.cpp | 17 + 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/swr/

[Mesa-dev] [PATCH] [swr] Align query results allocation

2017-01-20 Thread George Kyriazis
Some query results struct contents are declared as cache line aligned. Use aligned malloc, and align the whole struct, to be safe. Fixes crash when compiling with clang. CC: --- src/gallium/drivers/swr/swr_query.cpp | 7 --- src/gallium/drivers/swr/swr_query.h | 2 +- 2 files changed, 5

[Mesa-dev] [PATCH] [swr] Update fs texture & sampler state logic

2017-01-24 Thread George Kyriazis
In swr_update_derived() update texture and sampler state on a new fragment shader. GALLIUM_HUD can update fs using a previously bound texture and sampler. --- src/gallium/drivers/swr/swr_state.cpp | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/s

[Mesa-dev] [PATCH v2 10/10] swr: [rasterizer codegen] Fix windows build

2017-03-27 Thread George Kyriazis
Fix codegen build break that was introduced earlier v2: update rules for gen_knobs.cpp and gen_knobs.h --- src/gallium/drivers/swr/Makefile.am| 4 +-- src/gallium/drivers/swr/SConscript | 15 ++- .../drivers/swr/rasterizer/codegen/gen_backends.py | 30 +++

[Mesa-dev] [PATCH v3] swr: [rasterizer codegen] Fix windows build

2017-03-28 Thread George Kyriazis
Fix codegen build break that was introduced earlier v2: update rules for gen_knobs.cpp and gen_knobs.h v3: Introduce bldroot and revert generator file changes, making patch simpler. --- src/gallium/drivers/swr/SConscript | 38 +++--- 1 file changed, 31 insertions(

[Mesa-dev] [PATCH] swr: add linux to scons build

2017-04-13 Thread George Kyriazis
Make swr compile for both linux and windows. --- src/gallium/drivers/swr/SConscript| 7 +-- src/gallium/targets/libgl-xlib/SConscript | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/swr/SConscript b/src/gallium/drivers/swr/SConscript index ec

[Mesa-dev] [PATCH] swr: Add polygon stipple support

2017-04-13 Thread George Kyriazis
Add polygon stipple functionality to the fragment shader. Explicitly turn off polygon stipple for lines and points, since we do them using tris. --- src/gallium/drivers/swr/swr_context.h | 4 ++- src/gallium/drivers/swr/swr_shader.cpp | 56 ++ src/gallium/drivers

[Mesa-dev] [PATCH] swr: Fix swr osmesa build

2017-04-14 Thread George Kyriazis
--- src/gallium/targets/osmesa/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/targets/osmesa/SConscript b/src/gallium/targets/osmesa/SConscript index 47937a2..7be1b48 100644 --- a/src/gallium/targets/osmesa/SConscript +++ b/src/gallium/targets/osmesa/SC

[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 ++-- .../drivers/

[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 define

[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 +- .../drivers/swr/rasterizer/archr

[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 --- a/src/ga

[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 10064

[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 a/src

[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 --- a/src/ga

[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 -- .../drivers/swr/rasteriz

[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 a/src/gallium/drivers/swr/rasterizer/jitt

[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 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 a/src/gallium/drivers/swr/r

[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 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 b/src/gallium/

[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 a/src/gallium/drivers/swr/rast

[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 1

[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 b/src/gallium/drivers/swr/rasterizer/jitter

[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 --- a/src/gallium/drivers

[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 - .../drivers/swr/rasterizer/jit

[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 .../drivers/swr/rasterizer/

[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 b/src/gallium/drivers/swr/rasterizer/jitt

[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 b/src/gallium/d

[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 remo

[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 b/src/gallium/driver

[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 b/src/gallium/drivers/swr/raster

[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 ++ .../rasterizer/jitter/functionpasse

[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 + sr

[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 b/src/gallium/drivers/swr/rasterizer/jitt

[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 b/src/galliu

[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 +- .../drivers/swr/rasterizer/

[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 + .../drivers/swr/rasterizer/

[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 b/src/gallium/drivers/swr/rasterizer

[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 -- .../drivers/swr/rasterizer/j

[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 a/src/gallium/drivers/swr/

[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 4

[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 | 6

[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 --- a/src/gallium/drivers/

[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 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 q

[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 --- a/src/gallium/drivers/swr

[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 --- a

[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 +- .../drivers/swr/rasterizer/jitter/builder

[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 + src/gallium/drive

[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 +- .../codegen/templates/gen_

[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 --- a

[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 +- src/gallium/dri

[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 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 9630af

[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 --- a/src/gallium/drivers/swr/Mak

[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 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 --- a/src/gallium/drivers/swr/rasteriz

[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 b/src/gallium/drivers/swr/

[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 b/src/gallium/drivers/swr/rasterizer/jitter/builder

[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 +++ b/src/g

[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 +++--- 2

[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 in

[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 09590b7..a

[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 b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventha

[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(-) d

[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 a/src/gallium/drivers/swr/raster

[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 871db79

[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 i

[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 a/src/g

[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 --- a/src/gallium/drivers/swr/rasterizer/co

[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 +- .../drivers/swr/rasterizer/core/t

[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 b/src/gallium/drivers/swr/rasterizer/jitter/builder.

[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 b/src/gallium/drive

[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 b/src/gallium/drivers/swr/rasterizer/jitter/builder

<    1   2   3   4   >