in shader and fetch dump files
---
src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp | 2 +-
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp
b/src/gallium/d
Added support for Fetch / Sample / LD functions
Added DLL link to JitCache implementation
---
.../drivers/swr/rasterizer/jitter/JitManager.cpp | 92 ++
.../drivers/swr/rasterizer/jitter/JitManager.h | 7 +-
.../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 2 +
.../d
Adds ability to step into jitted llvm IR in Visual Studio.
- Updated llvm type generation script to also generate corresponding debug
types.
- New module pass inserts debug metadata into the IR for each function
Disabled by default.
---
.../swr/rasterizer/codegen/gen_llvm_types.py | 10 +-
---
.../drivers/swr/rasterizer/jitter/JitManager.cpp | 20
.../drivers/swr/rasterizer/jitter/JitManager.h | 1 +
2 files changed, 21 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp
b/src/gallium/drivers/swr/rasterizer/jitter/Jit
Properly validate DLL matches OBJ for jitted function
---
.../drivers/swr/rasterizer/jitter/JitManager.cpp | 111 +++--
1 file changed, 81 insertions(+), 30 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp
b/src/gallium/drivers/swr/rasterizer/j
+ ZeroMemory() macro definition for non win32-compilation in common/os.h
---
src/gallium/drivers/swr/rasterizer/common/os.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h
b/src/gallium/drivers/swr/rasterizer/common/os.h
index 358cb33..c7e87e2 1
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(+),
---
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
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
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 |
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
---
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
---
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
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
---
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
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
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(
LLVM 3.9 was not taken into in initial check-in.
Fixes: 01ab218bbc ("swr/rast: Initial work for debugging support.")
cc: mesa-sta...@lists.freedesktop.org
---
src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 14 ++
1 file changed, 14 insertions(+)
diff --git a/src/gallium/d
on knob-related files.
---
src/gallium/drivers/swr/rasterizer/codegen/knob_defs.py| 2 +-
src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp | 2 +-
src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.h | 2 +-
3 files changed, 3 insertions(+), 3 deletions(
Hides console window creation during JIT linker execution in apps that
don't have a console. Remove hooking of CreateProcessInternalA - the
MSFT implementation just turns around and calls CreateProcessInternalW
which, we do hook.
---
src/gallium/drivers/swr/rasterizer/common/os.cpp | 158 ++
Now also takes in an additional parameter (draw context) for future
expansion.
---
src/gallium/drivers/swr/rasterizer/jitter/builder.h| 2 ++
src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 2 +-
src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 2 +-
src/gallium/dr
Move them to their own file (builder_mem.{h|cpp}). Add builder_mem.cpp
to the build system.
---
src/gallium/drivers/swr/Makefile.sources | 2 +
src/gallium/drivers/swr/meson.build| 2 +
.../drivers/swr/rasterizer/jitter/builder.h| 1 +
.../drivers/swr/raste
Early Rasterization did not initially work with USE_SIMD16_FRONTEND=0.
Fix it so it works there, too. Please note that the default setting
is USE_SIMD16_FRONTEND=1.
---
.../drivers/swr/rasterizer/core/frontend.cpp | 66 +++---
1 file changed, 33 insertions(+), 33 deletions(-
LLVM 3.9 was not taken into account in initial check-in.
Fixes: 01ab218bbc ("swr/rast: Initial work for debugging support.")
cc: mesa-sta...@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104749
Acked-by: Emil Velikov
---
src/gallium/drivers/swr/rasterizer/jitter/Ji
Modify DumpToFile to only dump the function, not the entire module.
Reduces file sizes and speeds up the dumping.
---
src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.
Move generated files from codegen/meson.build to other directories, in order
to satisfy generated include file dependencies
Add correct file lists for architecture-specific libraries.
cc: mesa-sta...@lists.freedesktop.org
cc: dy...@pnwbakers.com
---
src/gallium/drivers/swr/meson.build
cc: mesa-sta...@lists.freedesktop.org
cc: dy...@pnwbakers.com
---
src/gallium/drivers/swr/meson.build | 2 +-
src/gallium/drivers/swr/rasterizer/codegen/meson.build | 2 +-
src/gallium/drivers/swr/rasterizer/core/backends/meson.build | 2 +-
src/gallium/drivers/swr/r
We now pass pDawContext as a default parameter
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 12 ++--
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 10 +-
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/gallium/drivers/swr/raster
Provide access functions for mpPrivateContext in Builder.
---
src/gallium/drivers/swr/rasterizer/jitter/builder.cpp | 3 ++-
src/gallium/drivers/swr/rasterizer/jitter/builder.h | 10 ++
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 5 +++--
3 files changed, 15 insertion
Begin/End events not needed anymore.
---
.../drivers/swr/rasterizer/archrast/archrast.cpp | 4 --
.../drivers/swr/rasterizer/archrast/events.proto | 76 --
2 files changed, 80 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
b/src/galliu
Batch patchset of SWR rasterizer-related changes
George Kyriazis (31):
swr/rast: Add missing parameter to a few gather functions
swr/rast: Cleanup knob definitions
swr/rast: Don't include private context in gathers
swr/rast: Remove some JIT debug code
swr/rast: Clean
Split into two proto files and modify appropriate build rules for
configure / scons / meson builds.
There are private internal events (proxy) that communicate information
from rasterizer to ArchRast. ArchRast can use these events to calculate
a final answer and then emit other public events which
Move mpPrivateContext to compensate
---
src/gallium/drivers/swr/rasterizer/jitter/builder.h | 4
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 14 +++---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 10 +-
src/gallium/drivers/swr/rasterizer/
---
src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 4 ++--
src/gallium/drivers/swr/rasterizer/core/pa.h | 1 +
2 files 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
---
.../drivers/swr/rasterizer/jitter/JitManager.cpp | 45 --
1 file changed, 45 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp
b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp
index 7105766..8092c14 100644
--- a/src/gallium/dri
---
src/gallium/drivers/swr/rasterizer/core/backend_impl.h | 4 +++-
src/gallium/drivers/swr/rasterizer/core/binner.cpp | 17 +
2 files changed, 4 insertions(+), 17 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/core/backend_impl.h
b/src/gallium/drivers/swr/ras
---
src/gallium/drivers/swr/rasterizer/core/state.h | 2 +-
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 10 ++
src/gallium/drivers/swr/swr_state.cpp | 2 +-
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/swr/rast
Rename some of the categories and move some options around.
---
.../drivers/swr/rasterizer/codegen/knob_defs.py| 90 ++
1 file changed, 40 insertions(+), 50 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/knob_defs.py
b/src/gallium/drivers/swr/rasteri
Clipper event is now:
event ClipperEvent
{
uint32_t drawId;
uint32_t trivialRejectCount;
uint32_t trivialAcceptCount;
uint32_t mustClipCount;
};
---
.../drivers/swr/rasterizer/archrast/archrast.cpp | 18 +++---
.../drivers/swr/rasterizer/archrast/events.proto
Renamed rdstc defines more appropriately
---
src/gallium/drivers/swr/rasterizer/core/api.cpp| 40
.../drivers/swr/rasterizer/core/backend.cpp| 24 +-
.../drivers/swr/rasterizer/core/backend_clear.cpp | 8 ++--
.../drivers/swr/rasterizer/core/backend_impl.h
Use a new function to denote that we want to get offset to next component
and hide the fact that GEP is used underneath.
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 13 +
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 2 ++
2 files changed, 11 insertio
We were passing a garbage handle. Let's not do that.
---
src/gallium/drivers/swr/rasterizer/core/api.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp
b/src/gallium/drivers/swr/rasterizer/core/api.cpp
index 5e27e4d..f45da96 100
Together with correct detection of clipDistance NaNs when no cullDistance is set
---
src/gallium/drivers/swr/rasterizer/core/clip.h| 2 +-
src/gallium/drivers/swr/rasterizer/core/context.h | 26
src/gallium/drivers/swr/rasterizer/core/state.h | 81 +--
3 files c
Don't count on the compiler automagically converting an srli call to
srl if the shift count isn't an immediate.
---
src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx.inl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/common/simdli
Fix invalid number of attributes passed into tesselation PA.
Needs to take into account any offsets from the shader.
nnocuous issue, but removes an assert firing in debug.
---
src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/s
---
src/gallium/drivers/swr/rasterizer/core/api.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp
b/src/gallium/drivers/swr/rasterizer/core/api.cpp
index f45da96..99d3cd5 100644
--- a/src/gallium/drivers/swr/rasterizer/core/a
Gets rid of zillions of unused variable warnings, made worse by templates.
---
src/gallium/drivers/swr/rasterizer/core/backend.cpp | 2 --
src/gallium/drivers/swr/rasterizer/core/backend_impl.h | 3 ---
src/gallium/drivers/swr/rasterizer/core/backend_sample.cpp | 2 --
Use llvm intrinsic masked.gather instead of manual unroll for the cases
where we have vector of pointers. Improves llvm IR debug experience by
reducing a ton of IR to a single intrinsic call. Also seems to reduce
overall stack use considerably.
---
src/gallium/drivers/swr/rasterizer/jitter/builde
---
.../drivers/swr/rasterizer/jitter/JitManager.h | 38 +++---
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h
b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h
index ddd6864..3660249 100644
--- a/s
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
index 491fb98..617cf33 100644
--- a/src/g
Consolidate archrst draw events into single draw event with an attribute
that represents the type of draw
- Add handlers for new private proto versions of DrawInstancedEvent,
DrawIndexedInstancedEvent, DrawInstancedSplitEvent, and
DrawIndexedInstancedSplitEvent
- Convert the draw events to gen
in template gen_llvm.hpp
---
src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp
b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hp
GEP was given the wrong type, and asserting.
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
in
Added support for another full translation path in fetch jitter.
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 1 +
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 4
2 files changed, 5 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem
"typename SIMD_T::TypeName" --> "TypeName"
---
.../drivers/swr/rasterizer/common/simdlib.hpp | 9 +
src/gallium/drivers/swr/rasterizer/core/binner.cpp | 338 ++---
src/gallium/drivers/swr/rasterizer/core/binner.h | 18 +-
src/gallium/drivers/swr/rasterizer/core/clip.h
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h
b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h
index 14dc22d..f31cb4a 100644
--- a/src/gallium/drivers
fix gcc8 compiler error for KNL.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105029
---
src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512.inl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512.inl
Convert portions of the C sampler to the rasty SIMD lib.
---
src/gallium/drivers/swr/rasterizer/common/intrin.h | 3 +++
.../drivers/swr/rasterizer/common/simdlib_128_avx.inl| 16
2 files changed, 19 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/common/
Performance optimization, and fixes some clipping issues.
---
src/gallium/drivers/swr/rasterizer/core/clip.h | 4
1 file changed, 4 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/core/clip.h
b/src/gallium/drivers/swr/rasterizer/core/clip.h
index 1d336b6..5193672 100644
--- a/
Remove allocation of > 2kbyte buffers into context memory in
swr_copy_to_scatch_space() (which is used to copy small vertex/index buffers
and shader constants to a scratch space to be used by the upcoming draw.)
Large shader constant allocations need to be done in the circular scratch
buffer inste
Help assist with usage tracking of memory accesses
---
.../drivers/swr/rasterizer/jitter/builder_mem.cpp | 58 ++
.../drivers/swr/rasterizer/jitter/builder_mem.h| 47 --
.../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 6 +--
3 files changed, 71 insert
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
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/
Lots of SWR-specifc changes, including:
- work for 16-wide simd operation across all avx flavors
- separate avx instrinsics into a separate x86 lowering pass
- stats work
- misc other cleanup
George Kyriazis (45):
swr/rast: Add some instructions to jitter
swr/rast: Introduce JIT_MEM_CLIENT
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
---
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
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
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
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 +--
...
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
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
---
.../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/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
---
.../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
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
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 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
Needed because soem FP paths (namely stipple) use gather intrinsics
that now need to be lowered to x86.
---
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/drivers/swr/swr_shader.cpp
index 477fa
---
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/
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
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
---
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
---
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/
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
---
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
---
.../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
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
---
.../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/
---
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
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
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
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
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_
101 - 200 of 314 matches
Mail list logo