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
Populate pLastIndex, even for the non-indexed case. A zero pLastIndex
can cause the index offsets inside the fetcher to have non-sensical values
that can be either very large positive or very large negative numbers.
cc: mesa-sta...@lists.freedesktop.org
---
src/gallium/drivers/swr/rasterizer/cor
Translate is now part of an overloaded LOAD call which required a change to
the code gen to skip the load functions in order to handle them manually
to make them virtual.
---
.../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 3 ++-
.../drivers/swr/rasterizer/jitter/builder_mem.cpp| 20 ++
Fix clipper validMask setting. We don't need to run frustum rejected
primitives through the clipper. Perform frustum culling with only
frustum clip codes. Guardband clip codes cannot be used because they
overlap frustum codes.
---
src/gallium/drivers/swr/rasterizer/core/clip.h | 10 +++---
1
- Have the draw type sent to DrawInfoEvent in handlers created in
archrast.cpp. The draw type no longer needs to be sent during during
AR_API_EVENT() call in api.cpp.
- Remove draw type from event defintions in events_private.proto, no
longer needed
---
src/gallium/drivers/swr/rasterizer/a
Breaks a whole bunch of piglit tests
---
src/gallium/drivers/swr/rasterizer/core/backend_impl.h | 4 +---
src/gallium/drivers/swr/rasterizer/core/binner.cpp | 17 -
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/core/backend_
Generate more compact code from gen_llvm.hpp.
---
.../swr/rasterizer/codegen/templates/gen_llvm.hpp | 36 +-
1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp
b/src/gallium/drivers/swr/rasterizer/
Populate pLastIndex, even for the non-indexed case. A zero pLastIndex
can cause the index offsets inside the fetcher to have non-sensical values
that can be either very large positive or very large negative numbers.
v2
remove cc mesa-stable, since the stable patch needs to be different from
this
fferent, and the same patch won't work
on both branches.
George Kyriazis (7):
swr/rast: Fix index buffer overfetch issue for non-indexed draws
swr/rast: whitespace change
swr/rast: Remove draw type from event definitions
swr/rast: Code generation cleanup
swr/rast: Consolidate TRANSL
Populate pLastIndex, even for the non-indexed case. An zero pLastIndex
can cause the index offsets inside the fetcher to have non-sensical values
that can be either very large positive or very large negative numbers.
v2: split whitespace change into new commit
---
src/gallium/drivers/swr/rasteri
v2: this commit contains whitespace change split from another commit
---
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/
Generate more compact code from gen_llvm.hpp.
---
.../swr/rasterizer/codegen/templates/gen_llvm.hpp | 36 +-
1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp
b/src/gallium/drivers/swr/rasterizer/
Breaks a whole bunch of piglit tests
---
src/gallium/drivers/swr/rasterizer/core/backend_impl.h | 4 +---
src/gallium/drivers/swr/rasterizer/core/binner.cpp | 17 -
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/core/backend_
Fix clipper validMask setting. We don't need to run frustum rejected
primitives through the clipper. Perform frustum culling with only
frustum clip codes. Guardband clip codes cannot be used because they
overlap frustum codes.
---
src/gallium/drivers/swr/rasterizer/core/clip.h | 10 +++---
1
Translate is now part of an overloaded LOAD call which required a change to
the code gen to skip the load functions in order to handle them manually
to make them virtual.
---
.../swr/rasterizer/codegen/gen_llvm_ir_macros.py | 3 ++-
.../drivers/swr/rasterizer/jitter/builder_mem.cpp| 20 ++
- Have the draw type sent to DrawInfoEvent in handlers created in
archrast.cpp. The draw type no longer needs to be sent during during
AR_API_EVENT() call in api.cpp.
- Remove draw type from event defintions in events_private.proto, no
longer needed
---
src/gallium/drivers/swr/rasterizer/a
Populate pLastIndex, even for the non-indexed case. An zero pLastIndex
can cause the index offsets inside the fetcher to have non-sensical values
that can be either very large positive or very large negative numbers.
Cherry-pick of 539de78633 for 18.0. Surrounding context is different for
18.0 b
---
.../drivers/swr/rasterizer/archrast/archrast.cpp | 45 ++
.../drivers/swr/rasterizer/archrast/events.proto | 28 ++
2 files changed, 73 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp
b/src/gallium/drivers/swr/rasterizer
---
src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp | 15 +++
src/gallium/drivers/swr/rasterizer/archrast/events.proto | 6 ++
.../drivers/swr/rasterizer/archrast/events_private.proto | 6 ++
src/gallium/drivers/swr/rasterizer/core/rasterizer_impl.h | 3 +++
4 fi
In the API event handler we want to share information between the core
layer and the API. Specifically, around associating various ids with
different kinds of events. For example, associate render pass id with
draw ids, or command buffer ids with draw ids.
---
.../drivers/swr/rasterizer/archrast/a
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
index 67e415c..6fa60a1 100644
--- a/src/gallium/drivers/swr/raste
This is useful for archrast data collection. This greatly speeds up the
post processing script since there is significantly less events generated.
Finally, this is a simpler option to communicate to users than having
them directly adjust MAX_PRIMS_PER_DRAW and MAX_TESS_PRIMS_PER_DRAW.
---
.../dri
Removed specific split draw events.
---
.../drivers/swr/rasterizer/archrast/archrast.cpp | 22 ++
.../drivers/swr/rasterizer/archrast/events.proto | 4
.../swr/rasterizer/archrast/events_private.proto | 20
src/gallium/drivers/swr/rasterizer/cor
Supports popcnt on vector masks (e.g. <8 x i1>)
---
src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 8
src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
---
src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp | 6 +++---
src/gallium/drivers/swr/rasterizer/archrast/events.proto | 1 +
src/gallium/drivers/swr/rasterizer/archrast/events_private.proto | 2 ++
src/gallium/drivers/swr/rasterizer/core/api.cpp | 4 ++-
---
src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h | 3 ++-
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 7 ++-
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h
b/src/gallium/drivers/swr/rasterizer/jit
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/
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
201 - 300 of 314 matches
Mail list logo