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
--- a/sr
---
.../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.
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
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
---
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
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
---
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
- 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
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
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
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
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
---
.../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
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
---
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
- 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
---
.../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
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(-)
---
.../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
---
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
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
---
.../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/
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
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
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
---
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
---
---
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
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
---
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 --
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_
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
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
---
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
---
.../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
---
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/
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
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
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
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/
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 +--
...
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
---
.../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
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 +++
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
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/
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
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/
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
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
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
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
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
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
---
.../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
---
.../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
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
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
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
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
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/
---
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
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/
---
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
---
.../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
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
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
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
---
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
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
---
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
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
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
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
---
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
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
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/
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
---
.../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
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 +++
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
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
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/
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 +
.../swr/rasterizer/jitter/builder_
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/
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
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
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
---
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
---
.../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
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/
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
---
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
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
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
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/
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
---
.../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
---
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
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
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/
1 - 100 of 314 matches
Mail list logo