[Mesa-dev] [PATCH 01/10] swr: [rasterizer core] Frontend SIMD16 WIP

2017-02-06 Thread Tim Rowley
SIMD16 Primitive Assembly (PA) only supports TriList and RectList. CUT_AWARE_PA, TESS, GS, and SO disabled in the SIMD16 front end. --- .../drivers/swr/rasterizer/core/frontend.cpp | 299 ++--- src/gallium/drivers/swr/rasterizer/core/frontend.h | 4 +- src/gallium/drivers/

[Mesa-dev] [PATCH 07/10] swr: [rasterizer core] Frontend SIMD16 WIP

2017-02-06 Thread Tim Rowley
Widen simdvertex to SIMD16/simd16vertex in frontend for passing VS attributes from VS to PA. --- .../drivers/swr/rasterizer/core/frontend.cpp | 33 ++- src/gallium/drivers/swr/rasterizer/core/frontend.h | 8 + src/gallium/drivers/swr/rasterizer/core/pa.h | 64 + src/gallium/dri

[Mesa-dev] [PATCH 05/10] swr: [rasterizer jitter] Multisample blend jit fix

2017-02-06 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp index 76a58b6..b4a33b8 100644 --- a/src/gallium/dri

[Mesa-dev] [PATCH 08/10] swr: [rasterizer jitter] Disable unsafe FP optimizations in the jitter

2017-02-06 Thread Tim Rowley
--- 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 74ffd27..5bd21a1 100644 --- a/src/gallium/driv

[Mesa-dev] [PATCH 02/10] swr: [rasterizer jitter] Adjust jitter header includes

2017-02-06 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp| 8 src/gallium/drivers/swr/rasterizer/jitter/JitManager.h | 6 +++--- src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp | 2 +- src/gallium/drivers/swr/rasterizer/jitter/builder.cpp | 2 +- src/gallium/

[Mesa-dev] [PATCH 00/10] swr: update rasterizer

2017-02-06 Thread Tim Rowley
Highlights include more avx512 work and fixes for llvm>=3.8. Tim Rowley (10): swr: [rasterizer core] Frontend SIMD16 WIP swr: [rasterizer jitter] Adjust jitter header includes swr: [rasterizer jitter] Fix issues with stream-out on llvm>=3.8 swr: [rasterizer jitter] Change Simd

[Mesa-dev] [PATCH 03/10] swr: [rasterizer jitter] Fix issues with stream-out on llvm>=3.8

2017-02-06 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/jitter/builder.cpp | 4 +--- src/gallium/drivers/swr/rasterizer/jitter/builder.h | 2 -- src/gallium/drivers/swr/rasterizer/jitter/streamout_jit.cpp | 6 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/s

[Mesa-dev] [PATCH 09/10] swr: [rasterizer core] Frontend SIMD16 WIP

2017-02-06 Thread Tim Rowley
Removed temporary scafolding in PA, widended the PA_STATE interface for SIMD16, and implemented PA_STATE_CUT and PA_TESS for SIMD16. PA_STATE_CUT and PA_TESS now work in SIMD16. --- src/gallium/drivers/swr/rasterizer/core/context.h | 6 + .../drivers/swr/rasterizer/core/frontend.cpp | 3

[Mesa-dev] [PATCH 10/10] swr: [rasterizer jitter] Pass LLVM-IR size into jitter

2017-02-06 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 4 ++-- src/gallium/drivers/swr/rasterizer/jitter/JitManager.h | 2 +- src/gallium/drivers/swr/rasterizer/jitter/jit_api.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/

[Mesa-dev] [PATCH 04/10] swr: [rasterizer jitter] Change SimdVector representation to array

2017-02-06 Thread Tim Rowley
Make all SimdVectors in LLVM represented as simdscalar[4] rather than a struct. Fixes issues with promotion of values from i32 to i64 to match register width. --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 6 ++ src/gallium/drivers/swr/rasterizer/jitter/JitManager.h | 2 --

[Mesa-dev] [PATCH 06/10] swr: [rasterizer jitter] Add DEBUGTRAP jit builder function

2017-02-06 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 7 +++ src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/raster

[Mesa-dev] [PATCH] swr: replace mesa->swr format enum conversion

2016-09-20 Thread Tim Rowley
Replace old string comparison with a mapping table. --- src/gallium/drivers/swr/swr_screen.cpp | 344 - 1 file changed, 293 insertions(+), 51 deletions(-) diff --git a/src/gallium/drivers/swr/swr_screen.cpp b/src/gallium/drivers/swr/swr_screen.cpp index 2ffb3a7..9

[Mesa-dev] [PATCH v6] swr: implement clipPlanes/clipVertex/clipDistance/cullDistance

2016-06-08 Thread Tim Rowley
v2: only load the clip vertex once v3: fix clip enable logic, add cullDistance v4: remove duplicate fields in vs jit key, fix test of clip fixup needed v5: fix clipdistance linkage for slot!=0,4 v6: support clip+cull; passes most piglit clip (failures understood) --- docs/GL3.txt

[Mesa-dev] [PATCH] swr: fix -march flag for AVX

2016-06-10 Thread Tim Rowley
Previously used core-avx-i was for ivybridge; corei7-avx allows sandybridge. --- src/gallium/drivers/swr/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am index d211f2e..8156cf2 100644 --- a/sr

[Mesa-dev] [PATCH v2] swr: fix -march flag for AVX

2016-06-10 Thread Tim Rowley
Previously used core-avx-i was for ivybridge; corei7-avx allows sandybridge. v2: move flag check up to configure.ac; attempt to use gcc 4.9+ documented flags instead of the older architecture naming. --- configure.ac| 33 + src/gallium/drive

[Mesa-dev] [PATCH] swr: switch from overriding -march to selecting features

2016-06-16 Thread Tim Rowley
--- configure.ac| 11 +++ src/gallium/drivers/swr/Makefile.am | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index c492e15..cc9bc47 100644 --- a/configure.ac +++ b/configure.ac @@ -2400,8 +2400,8 @@ if test -n "

[Mesa-dev] [PATCH] swr: push/pop DEBUG macro around llvm includes

2016-06-16 Thread Tim Rowley
llvm redefines DEBUG; adding push/pop prevents a undefined reference to debug_refcnt_state in llvm-3.7+. --- src/gallium/drivers/swr/swr_shader.cpp | 9 ++--- src/gallium/drivers/swr/swr_state.cpp | 6 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/

[Mesa-dev] [PATCH v2] swr: push/pop DEBUG macro around llvm includes

2016-06-17 Thread Tim Rowley
llvm redefines DEBUG; adding push/pop prevents a undefined reference to debug_refcnt_state in llvm-3.7+. v2: add undef DEBUG --- src/gallium/drivers/swr/swr_shader.cpp | 10 +++--- src/gallium/drivers/swr/swr_state.cpp | 7 ++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --g

[Mesa-dev] [PATCH 02/14] swr: [rasterizer common] fix include for Intel compiler

2016-06-17 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/common/os.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h index 370c619..45517f6 100644 --- a/src/gallium/drivers/swr/rasterizer/common/os.h

[Mesa-dev] [PATCH 03/14] swr: [rasterizer] add support for building avx512 version

2016-06-17 Thread Tim Rowley
Currently, most code paths between AVX2 and AVX512 are identical (see changes to knobs.h). --- src/gallium/drivers/swr/rasterizer/common/simdintrin.h | 4 ++-- src/gallium/drivers/swr/rasterizer/core/format_types.h | 8 src/gallium/drivers/swr/rasterizer/core/knobs.h | 15

[Mesa-dev] [PATCH 01/14] swr: [rasterizer common] workaround clang for windows __cpuid() bug

2016-06-17 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/common/isa.hpp | 20 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/common/isa.hpp b/src/gallium/drivers/swr/rasterizer/common/isa.hpp index ef38179..31ea787 100644 --- a/src/gallium/dri

[Mesa-dev] [PATCH 00/14] update swr rasterizer

2016-06-17 Thread Tim Rowley
Mostly bug fixes and cleanups. Tim Rowley (14): swr: [rasterizer common] workaround clang for windows __cpuid() bug swr: [rasterizer common] fix include for Intel compiler swr: [rasterizer] add support for building avx512 version swr: [rasterizer jitter] unitialized component fix in fetch

[Mesa-dev] [PATCH 14/14] swr: [rasterizer core] fix dependency bug

2016-06-17 Thread Tim Rowley
Never be dependent on "draw 0", instead have a bool that makes the draw dependent on the previous draw or not dependent at all. --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 6 +++--- src/gallium/drivers/swr/rasterizer/core/context.h| 6 +++--- src/gallium/drivers/swr/rasterizer/c

[Mesa-dev] [PATCH 13/14] swr: [rasterizer core] use wrap-around safe compares for dependency checking

2016-06-17 Thread Tim Rowley
Move drawIDs from 64-bit to 32-bit to increase perf. --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 4 +- src/gallium/drivers/swr/rasterizer/core/context.h | 6 +-- .../drivers/swr/rasterizer/core/ringbuffer.h | 8 ++-- .../drivers/swr/rasterizer/core/threads.cpp| 54 ++

[Mesa-dev] [PATCH 04/14] swr: [rasterizer jitter] unitialized component fix in fetch jit

2016-06-17 Thread Tim Rowley
Was trying to store an extra uninitialized component. Only affects component packing, which isn't enabled (yet). --- 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

[Mesa-dev] [PATCH 10/14] swr: [rasterizer core] GS viewport array index attribute

2016-06-17 Thread Tim Rowley
Only adds the attribute mapping to the jitter; no implementation yet. --- src/gallium/drivers/swr/rasterizer/core/knobs.h | 2 +- src/gallium/drivers/swr/rasterizer/core/state.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/knobs.h b/

[Mesa-dev] [PATCH 06/14] swr: [rasterizer core] remove old comment

2016-06-17 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index 6e1bc0e..f86f8fa 100644 --- a/src/gallium/drivers/swr/rasterizer/core/front

[Mesa-dev] [PATCH 07/14] swr: [rasterizer jitter] small fetch jit cleanup

2016-06-17 Thread Tim Rowley
Handle SGV stores separate from the stream fetch code. Because of this change, there is a potential to jit an extra unused store. --- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 170 + 1 file changed, 36 insertions(+), 134 deletions(-) diff --git a/src/gallium/driver

[Mesa-dev] [PATCH 12/14] swr: [rasterizer jitter] add support for component packing for 'odd' formats

2016-06-17 Thread Tim Rowley
Add early-out if no components are enabled. Add asserts. --- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 27 ++ 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/

[Mesa-dev] [PATCH 05/14] swr: [rasterizer jitter] cleanup supporting different llvm versions

2016-06-17 Thread Tim Rowley
--- src/gallium/drivers/swr/Makefile.am| 2 + .../drivers/swr/rasterizer/jitter/JitManager.cpp | 33 +--- .../drivers/swr/rasterizer/jitter/JitManager.h | 22 --- .../drivers/swr/rasterizer/jitter/blend_jit.cpp| 13 ++- .../drivers/swr/rasterizer/

[Mesa-dev] [PATCH 11/14] swr: [rasterizer core] track whether GS outputs viewport array index

2016-06-17 Thread Tim Rowley
So we can skip the index gather in PA. --- src/gallium/drivers/swr/rasterizer/core/state.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/core/state.h b/src/gallium/drivers/swr/rasterizer/core/state.h index 29048f1..bfa9929 100644 --- a/src/gallium/drive

[Mesa-dev] [PATCH 08/14] swr: [rasterizer core] stop single threaded crash exit crash

2016-06-17 Thread Tim Rowley
Function static destructors were getting called by exit handlers before context teardown. --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasteriz

[Mesa-dev] [PATCH 09/14] swr: [rasterizer core] conservative rasterization frontend support

2016-06-17 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/api.cpp| 13 +- src/gallium/drivers/swr/rasterizer/core/clip.h | 4 +- .../drivers/swr/rasterizer/core/conservativeRast.h | 120 +++ src/gallium/drivers/swr/rasterizer/core/context.h | 2 + .../drivers/swr/rasterizer/core/fronte

[Mesa-dev] [PATCH v2 02/14] swr: [rasterizer common] fix include for Intel compiler

2016-06-20 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/common/os.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h index 370c619..45517f6 100644 --- a/src/gallium/drivers/swr/rasterizer/common/os.h

[Mesa-dev] [PATCH v2 06/14] swr: [rasterizer core] remove old comment

2016-06-20 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index 6e1bc0e..f86f8fa 100644 --- a/src/gallium/drivers/swr/rasterizer/core/front

[Mesa-dev] [PATCH v2 03/14] swr: [rasterizer] add support for building avx512 version

2016-06-20 Thread Tim Rowley
Currently, most code paths between AVX2 and AVX512 are identical (see changes to knobs.h). --- src/gallium/drivers/swr/rasterizer/common/simdintrin.h | 4 ++-- src/gallium/drivers/swr/rasterizer/core/format_types.h | 8 src/gallium/drivers/swr/rasterizer/core/knobs.h | 15

[Mesa-dev] [PATCH v2 14/14] swr: [rasterizer core] fix dependency bug

2016-06-20 Thread Tim Rowley
Never be dependent on "draw 0", instead have a bool that makes the draw dependent on the previous draw or not dependent at all. --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 6 +++--- src/gallium/drivers/swr/rasterizer/core/context.h| 4 ++-- src/gallium/drivers/swr/rasterizer/cor

[Mesa-dev] [PATCH v2 00/14] update swr rasterizer

2016-06-20 Thread Tim Rowley
v2: add conservativeRast.h to Makefile.sources minimize changes in llvm support cleanup remove tabs that were added by the v1 patches Tim Rowley (14): swr: [rasterizer common] workaround clang for windows __cpuid() bug swr: [rasterizer common] fix include for Intel

[Mesa-dev] [PATCH v2 08/14] swr: [rasterizer core] stop single threaded crash exit crash

2016-06-20 Thread Tim Rowley
Function static destructors were getting called by exit handlers before context teardown. --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasteriz

[Mesa-dev] [PATCH v2 12/14] swr: [rasterizer jitter] add support for component packing for 'odd' formats

2016-06-20 Thread Tim Rowley
Add early-out if no components are enabled. Add asserts. --- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 27 ++ 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/

[Mesa-dev] [PATCH v2 04/14] swr: [rasterizer jitter] unitialized component fix in fetch jit

2016-06-20 Thread Tim Rowley
Was trying to store an extra uninitialized component. Only affects component packing, which isn't enabled (yet). --- 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

[Mesa-dev] [PATCH v2 13/14] swr: [rasterizer core] use wrap-around safe compares for dependency checking

2016-06-20 Thread Tim Rowley
Move drawIDs from 64-bit to 32-bit to increase perf. --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 4 +- src/gallium/drivers/swr/rasterizer/core/context.h | 4 +- .../drivers/swr/rasterizer/core/ringbuffer.h | 8 ++-- .../drivers/swr/rasterizer/core/threads.cpp| 54 +++

[Mesa-dev] [PATCH v2 01/14] swr: [rasterizer common] workaround clang for windows __cpuid() bug

2016-06-20 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/common/isa.hpp | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/common/isa.hpp b/src/gallium/drivers/swr/rasterizer/common/isa.hpp index ef38179..a62350f 100644 --- a/src/gallium/drivers/sw

[Mesa-dev] [PATCH v2 07/14] swr: [rasterizer jitter] small fetch jit cleanup

2016-06-20 Thread Tim Rowley
Handle SGV stores separate from the stream fetch code. Because of this change, there is a potential to jit an extra unused store. --- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 170 + 1 file changed, 36 insertions(+), 134 deletions(-) diff --git a/src/gallium/driver

[Mesa-dev] [PATCH v2 11/14] swr: [rasterizer core] track whether GS outputs viewport array index

2016-06-20 Thread Tim Rowley
So we can skip the index gather in PA. --- src/gallium/drivers/swr/rasterizer/core/state.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/core/state.h b/src/gallium/drivers/swr/rasterizer/core/state.h index 29048f1..bfa9929 100644 --- a/src/gallium/drive

[Mesa-dev] [PATCH v2 05/14] swr: [rasterizer jitter] cleanup supporting different llvm versions

2016-06-20 Thread Tim Rowley
--- .../drivers/swr/rasterizer/jitter/JitManager.cpp | 9 +-- .../drivers/swr/rasterizer/jitter/JitManager.h | 7 - .../drivers/swr/rasterizer/jitter/blend_jit.cpp| 8 +- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 31 +++--- .../drivers/swr/raster

[Mesa-dev] [PATCH v2 09/14] swr: [rasterizer core] conservative rasterization frontend support

2016-06-20 Thread Tim Rowley
--- src/gallium/drivers/swr/Makefile.sources | 1 + src/gallium/drivers/swr/rasterizer/core/api.cpp| 13 +- src/gallium/drivers/swr/rasterizer/core/clip.h | 4 +- .../drivers/swr/rasterizer/core/conservativeRast.h | 120 +++ src/gallium/drivers/swr/rasterizer/cor

[Mesa-dev] [PATCH v2 10/14] swr: [rasterizer core] GS viewport array index attribute

2016-06-20 Thread Tim Rowley
Only adds the attribute mapping to the jitter; no implementation yet. --- src/gallium/drivers/swr/rasterizer/core/knobs.h | 2 +- src/gallium/drivers/swr/rasterizer/core/state.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/knobs.h b/

[Mesa-dev] [PATCH] swr: [rasterizer jitter] fix llvm-3.7 compile

2016-07-06 Thread Tim Rowley
d3d97f8 broke llvm-3.7, which has a mismatched API for setDataLayout/getDataLayout. --- src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp | 5 + 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp b/src/gallium/drivers/swr/rasterizer/j

[Mesa-dev] [PATCH 0/5] update swr rasterizer

2016-07-06 Thread Tim Rowley
Highlights include llvm-3.9 support, conservative rasterization work, and small cleanups. Tim Rowley (5): swr: [rasterizer] add support for llvm-3.9 swr: [rasterizer core] make all api functions call GetContext swr: [rasterizer] buckets cleanup swr: [rasterizer core] conservative rast

[Mesa-dev] [PATCH 3/5] swr: [rasterizer] buckets cleanup

2016-07-06 Thread Tim Rowley
--- .../swr/rasterizer/common/rdtsc_buckets.cpp| 16 ++- .../drivers/swr/rasterizer/common/rdtsc_buckets.h | 33 -- .../swr/rasterizer/common/rdtsc_buckets_shared.h | 2 ++ .../drivers/swr/rasterizer/core/rdtsc_core.h | 4 +-- 4 files changed, 43 inse

[Mesa-dev] [PATCH 5/5] swr: [rasterizer core] correct MSAA behavior for conservative rasterization

2016-07-06 Thread Tim Rowley
--- .../drivers/swr/rasterizer/core/multisample.h | 4 +++ .../drivers/swr/rasterizer/core/rasterizer.cpp | 35 +++--- .../drivers/swr/rasterizer/core/rasterizer.h | 3 ++ 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/swr/rast

[Mesa-dev] [PATCH 4/5] swr: [rasterizer core] conservative rast backend changes

2016-07-06 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/api.cpp| 6 +- .../drivers/swr/rasterizer/core/backend.cpp| 22 +- .../drivers/swr/rasterizer/core/conservativeRast.h | 111 - .../drivers/swr/rasterizer/core/frontend.cpp | 28 +- src/gallium/drivers/swr/rasterizer/core/fronten

[Mesa-dev] [PATCH 1/5] swr: [rasterizer] add support for llvm-3.9

2016-07-06 Thread Tim Rowley
--- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 38 -- .../jitter/scripts/gen_llvm_ir_macros.py | 5 --- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/ra

[Mesa-dev] [PATCH 2/5] swr: [rasterizer core] make all api functions call GetContext

2016-07-06 Thread Tim Rowley
Small api cleanup. Make all api functions call GetContext instead of locally casting handle. Makes debugging easier by providing a single point to track context changes. --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 28 - 1 file changed, 14 insertions(+), 14 delet

[Mesa-dev] [PATCH v2 1/5] swr: [rasterizer] add support for llvm-3.9

2016-07-07 Thread Tim Rowley
v2: use signed compare, remove unneeded vmask --- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 38 -- .../jitter/scripts/gen_llvm_ir_macros.py | 5 --- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/

[Mesa-dev] [PATCH] Revert "gallium: Force blend color to 16-byte alignment"

2016-07-13 Thread Tim Rowley
This reverts commit d8d6091a846ac2a40a011d512d6d57f6c8442e6a. Cc: Signed-off-by: Tim Rowley --- src/gallium/include/pipe/p_state.h | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index

[Mesa-dev] [PATCH 01/11] swr: [rasterizer core] viewport rounding for disabled scissor

2016-07-18 Thread Tim Rowley
Adjust viewport rounding when scissor rect is disabled during macro tile scissor setup. --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterize

[Mesa-dev] [PATCH 09/11] swr: [rasterizer core] rename *_MAX enum values to *_COUNT

2016-07-18 Thread Tim Rowley
Makes these names semantically correct. --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 6 +++--- src/gallium/drivers/swr/rasterizer/core/backend.cpp| 18 +- src/gallium/drivers/swr/rasterizer/core/multisample.h | 4 ++-- src/gallium/drivers/swr/rasterizer/core/

[Mesa-dev] [PATCH 03/11] swr: [rasterizer jitter] rework vertex/instance ID storage in fetch

2016-07-18 Thread Tim Rowley
Moved the setting into the existing component control code. Fixes bad interaction between attribute/component setting for vertex/instance ID and component packing. --- .../drivers/swr/rasterizer/jitter/fetch_jit.cpp| 78 ++ .../drivers/swr/rasterizer/jitter/fetch_jit.h

[Mesa-dev] [PATCH 02/11] swr: [rasterizer core] avx512 work in progress initial step

2016-07-18 Thread Tim Rowley
Enabling KNOB_SIMD_WIDTH = 16 for AVX512 pre-work and low level simd utils --- .../drivers/swr/rasterizer/common/simdintrin.h | 644 + .../drivers/swr/rasterizer/core/format_types.h | 194 ++- src/gallium/drivers/swr/rasterizer/core/knobs.h| 25 +- src/gallium/

[Mesa-dev] [PATCH 04/11] swr: [rasterizer common] icc declspec definitions

2016-07-18 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/common/os.h | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h index 45517f6..32eca68 100644 --- a/src/gallium/drivers/swr/ras

[Mesa-dev] [PATCH 06/11] swr: [rasterizer core] ensure adjacent topologies use the cut-aware PA

2016-07-18 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/pa.h | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/pa.h b/src/gallium/drivers/swr/rasterizer/core/pa.h index 64932af..2b8110f 100644 --- a/src/gallium/drivers/swr/rasterizer/core/pa.h

[Mesa-dev] [PATCH 05/11] swr: [rasterizer] attribute swizzling and linkage

2016-07-18 Thread Tim Rowley
Add support for enhanced attribute swizzling. Currently supports constant source overrides to handle PrimitiveID support. No support yet for input select swizzling or wrap shortest. Removes obsoleted linkageMask and associated code. --- src/gallium/drivers/swr/rasterizer/core/api.cpp| 56 +++-

[Mesa-dev] [PATCH 00/11] update swr rasterizer

2016-07-18 Thread Tim Rowley
Highlights are more avx512 work and api cleanup. Tim Rowley (11): swr: [rasterizer core] viewport rounding for disabled scissor swr: [rasterizer core] avx512 work in progress initial step swr: [rasterizer jitter] rework vertex/instance ID storage in fetch swr: [rasterizer common] icc

[Mesa-dev] [PATCH 10/11] swr: [rasterizer core] fix for possible int32 overflow condition

2016-07-18 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/rasterizer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/rasterizer.cpp b/src/gallium/drivers/swr/rasterizer/core/rasterizer.cpp index 897556a..1909ddb 100644 --- a/src/gallium/drivers/sw

[Mesa-dev] [PATCH 08/11] swr: [rasterizer core] centroid correction

2016-07-18 Thread Tim Rowley
--- .../drivers/swr/rasterizer/core/backend.cpp| 26 ++ 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/backend.cpp b/src/gallium/drivers/swr/rasterizer/core/backend.cpp index b492810..5d83baf 100644 --- a/src/gall

[Mesa-dev] [PATCH 07/11] swr: [rasterizer core] support range of values in TemplateArgUnroller

2016-07-18 Thread Tim Rowley
Fixes Linux warnings. --- .../drivers/swr/rasterizer/core/frontend.cpp | 13 +++-- .../drivers/swr/rasterizer/core/rasterizer.cpp | 6 ++- src/gallium/drivers/swr/rasterizer/core/utils.h| 63 +++--- 3 files changed, 56 insertions(+), 26 deletions(-) diff --git a/src

[Mesa-dev] [PATCH 11/11] swr: [rasterizer core] introduce simd16intrin.h

2016-07-18 Thread Tim Rowley
Refactoring to leave existing simd_* intrinsics in "simdintrin.h" unchanged, adding corresponding simd16_* intrinsics in "simd16intrin.h" on the side, with emulation, that we can use piecemeal, rather than the all-or-nothing approach to bring up avx512. --- src/gallium/drivers/swr/Makefile.sources

[Mesa-dev] [PATCH] configure.ac/swr: build swr with -fno-strict-aliasing

2016-08-02 Thread Tim Rowley
swr rasterizer contains numerous data transfers between vectors and ordinary C types. Fixing for strict aliasing will take time. --- configure.ac| 7 +++ src/gallium/drivers/swr/Makefile.am | 1 + 2 files changed, 8 insertions(+) diff --git a/configure.ac b/configure.

[Mesa-dev] [PATCH] configure.ac: add llvm inteljitevents component if enabled

2016-08-02 Thread Tim Rowley
Needed to successfully link llvmpipe or swr when using shared llvm libs. --- configure.ac | 5 + 1 file changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index fb4a12a..edbc95b 100644 --- a/configure.ac +++ b/configure.ac @@ -2497,6 +2497,11 @@ dnl in LLVM_LIBS. if test "x$

[Mesa-dev] [PATCH v2] swr: build swr with -fno-strict-aliasing

2016-08-02 Thread Tim Rowley
swr rasterizer contains numerous data transfers between vectors and ordinary C types. Fixing for strict aliasing will take time. --- src/gallium/drivers/swr/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am i

[Mesa-dev] [PATCH] vbo: increase VBO_SAVE_BUFFER_SIZE from 8k to 256k dwords

2016-08-17 Thread Tim Rowley
Increases the performance of legacy geometry-heavy apps still using display lists. --- src/mesa/vbo/vbo_save.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/vbo/vbo_save.h b/src/mesa/vbo/vbo_save.h index 2843b3c..d1d7fb0 100644 --- a/src/mesa/vbo/vbo_save.h +++ b/src

[Mesa-dev] [PATCH v2] configure.ac: add llvm inteljitevents component if enabled

2016-08-26 Thread Tim Rowley
Needed to successfully link llvmpipe or swr when using shared llvm libs built with inteljitevents enabled. v2: Make adding inteljitevents component global rather than just llvmpipe/swr, since libgallium will have a symbol dependency. --- configure.ac | 4 1 file changed, 4 insertions(+) dif

[Mesa-dev] [PATCH 0/2] avx512 initial usage

2016-11-03 Thread Tim Rowley
Add code to detect avx512 cpu features, and allow llvm to generate avx512 instructions with llvm-3.9+. gallivm will still treat avx512 capable processors as avx2 (256-bit vectors). No piglit regressions with llvmpipe on llvm-3.9.0 and KNL. Tim Rowley (2): gallium: detect avx512 cpu features

[Mesa-dev] [PATCH 1/2] gallium: detect avx512 cpu features

2016-11-03 Thread Tim Rowley
v3: fix check for xmm/ymm test v2: style code, add avx512 to cpu dump --- src/gallium/auxiliary/util/u_cpu_detect.c | 26 ++ src/gallium/auxiliary/util/u_cpu_detect.h | 10 ++ 2 files changed, 36 insertions(+) diff --git a/src/gallium/auxiliary/util/u_cpu_detect.c

[Mesa-dev] [PATCH 2/2] gallivm: permit use of avx512 instructions on llvm-3.9+

2016-11-03 Thread Tim Rowley
--- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index bd4d4d3..bff2198 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/galliu

[Mesa-dev] [PATCH] swr: allow alphatest without blend or logicop

2016-11-07 Thread Tim Rowley
We need to compile a blend function when alphatest is enabled. --- src/gallium/drivers/swr/swr_state.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp index 3e02322..424bff2 100644 --- a/src/gall

[Mesa-dev] [PATCH 03/14] swr: [rasterizer core] separate frontend/backend stats enables

2016-11-09 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/api.cpp | 18 -- src/gallium/drivers/swr/rasterizer/core/api.h | 10 +- src/gallium/drivers/swr/rasterizer/core/backend.cpp | 18 +- src/gallium/drivers/swr/rasterizer/core/context.h | 15 +++---

[Mesa-dev] [PATCH 07/14] swr: [rasterizer core] various code style changes

2016-11-09 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/api.cpp | 15 ++- src/gallium/drivers/swr/rasterizer/core/api.h| 4 +++- src/gallium/drivers/swr/rasterizer/core/binner.cpp | 4 +++- src/gallium/drivers/swr/rasterizer/core/clip.h | 4 ++-- src/gallium/drivers/swr/ras

[Mesa-dev] [PATCH 04/14] swr: [rasterizer archrast] fix double free issue

2016-11-09 Thread Tim Rowley
--- .../drivers/swr/rasterizer/archrast/archrast.cpp | 10 +- .../drivers/swr/rasterizer/archrast/archrast.h | 2 +- .../drivers/swr/rasterizer/archrast/eventmanager.h | 20 src/gallium/drivers/swr/rasterizer/core/api.cpp | 1 - src/gallium/drivers/s

[Mesa-dev] [PATCH 00/14] swr: update rasterizer

2016-11-09 Thread Tim Rowley
Highlights include more 8x2 render work, fix for alphatest, and archrast updates. Tim Rowley (14): swr: [rasterizer jitter] code style fix swr: [rasterizer core] 16-wide tile store nearly completed swr: [rasterizer core] separate frontend/backend stats enables swr: [rasterizer archrast

[Mesa-dev] [PATCH 10/14] swr: [rasterizer archrast] add events

2016-11-09 Thread Tim Rowley
Added events for tracking early/late Depth and stencil events, TE patch info, GS prim info, and FrontEnd/BackEnd DrawEnd events. --- .../drivers/swr/rasterizer/archrast/archrast.cpp | 279 - .../drivers/swr/rasterizer/archrast/events.proto | 255 +++ .../dri

[Mesa-dev] [PATCH 06/14] swr: [rasterizer archrast] don't generate empty files

2016-11-09 Thread Tim Rowley
Don't generate files when no events have been generated outside the header events. --- .../drivers/swr/rasterizer/archrast/archrast.cpp| 16 ++-- src/gallium/drivers/swr/rasterizer/archrast/archrast.h | 8 +++- src/gallium/drivers/swr/rasterizer/core/api.cpp | 6

[Mesa-dev] [PATCH 08/14] swr: [rasterizer core/jitter] fix alpha test bug

2016-11-09 Thread Tim Rowley
Alpha from render target 0 should always be used for alpha test for all render targets, according to GL and DX9 specs. Previously we were using alpha from the current render target. --- src/gallium/drivers/swr/rasterizer/core/backend.h | 1 + src/gallium/drivers/swr/rasterizer/core/state.h

[Mesa-dev] [PATCH 12/14] swr: [rasterizer core] add mode for aux buffer in the SWR_SURFACE_STATE

2016-11-09 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/state.h | 16 1 file changed, 16 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/core/state.h b/src/gallium/drivers/swr/rasterizer/core/state.h index 24927cd..062a1de 100644 --- a/src/gallium/drivers/swr/rasterizer/core/s

[Mesa-dev] [PATCH 13/14] swr: [rasterizer archrast] move to pass by value

2016-11-09 Thread Tim Rowley
Move to pass by value since most events are very small in size. We can look at pass by reference but will need to create multiple versions to handle temp objects. --- .../drivers/swr/rasterizer/scripts/templates/ar_eventhandler_h.template | 2 +- .../swr/rasterizer/scripts/templates/ar_eventhandl

[Mesa-dev] [PATCH 14/14] swr: [rasterizer core] remove driverType

2016-11-09 Thread Tim Rowley
--- src/gallium/drivers/swr/rasterizer/core/api.cpp | 40 ++- src/gallium/drivers/swr/rasterizer/core/api.h | 2 -- src/gallium/drivers/swr/rasterizer/core/context.h | 2 -- src/gallium/drivers/swr/rasterizer/core/state.h | 6 src/gallium/drivers/swr/swr_context

[Mesa-dev] [PATCH 09/14] swr: [rasterizer core] fix culling issues

2016-11-09 Thread Tim Rowley
- Do proper culling of wireframe triangles (including non-culling of degenerates) - Fix degenerate culling of CCW front-facing triangles in wireframe and conservative rast --- src/gallium/drivers/swr/rasterizer/core/binner.cpp | 185 + 1 file changed, 119 insertions(+), 66

[Mesa-dev] [PATCH 05/14] swr: [rasterizer archrast] fix open file handle limit issue

2016-11-09 Thread Tim Rowley
Buffer events ourselves and then when that's full or we're destroying the context then write the contents to file. Previously, we're relying ofstream to buffer for us. --- .../templates/ar_eventhandlerfile_h.template | 50 +++--- 1 file changed, 44 insertions(+), 6 deletions(

[Mesa-dev] [PATCH 02/14] swr: [rasterizer core] 16-wide tile store nearly completed

2016-11-09 Thread Tim Rowley
* All format combinations coded * Fully emulated on AVX2 and AVX * Known issue: the MSAA sample locations need to be adjusted for 8x2 Set ENABLE_AVX512_SIMD16 and USD_8x2_TILE_BACKEND to 1 in knobs.h to enable --- .../drivers/swr/rasterizer/common/simd16intrin.h | 61 +- .../drivers/swr/raster

[Mesa-dev] [PATCH 4/9] swr: [configure.ac/scons] require c++14

2017-04-04 Thread Tim Rowley
New C++ features used by upcoming swr changes. --- configure.ac| 8 src/gallium/drivers/swr/Makefile.am | 4 ++-- src/gallium/drivers/swr/SConscript | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 83cd5d1..5

[Mesa-dev] [PATCH 5/9] swr: [rasterizer core] Programmable sample position support

2017-04-04 Thread Tim Rowley
--- .../swr/rasterizer/codegen/gen_llvm_types.py | 22 + .../drivers/swr/rasterizer/common/simdintrin.h | 7 + src/gallium/drivers/swr/rasterizer/core/api.cpp| 8 +- .../drivers/swr/rasterizer/core/backend.cpp| 43 +- src/gallium/drivers/swr/rasterizer/core/backend.h |

[Mesa-dev] [PATCH 0/9] swr: update rasterizer

2017-04-04 Thread Tim Rowley
Highlights include simd16 work, msaa enhancements, and removing the extra copy of mako we included. Tim Rowley (9): swr: [rasterizer core] SIMD16 Frontend WIP swr: [rasterizer core/memory] Fix missing avx512 storetile swr: [rasterizer core] Fix center sample pattern swr: [configure.ac

[Mesa-dev] [PATCH 1/9] swr: [rasterizer core] SIMD16 Frontend WIP

2017-04-04 Thread Tim Rowley
Implement widened VS output for SIMD16 --- .../drivers/swr/rasterizer/core/frontend.cpp | 42 +- src/gallium/drivers/swr/rasterizer/core/state.h| 9 +++-- 2 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/fronten

[Mesa-dev] [PATCH 3/9] swr: [rasterizer core] Fix center sample pattern

2017-04-04 Thread Tim Rowley
Fix long hidden bug in rasterizer handling of center sample pattern. --- src/gallium/drivers/swr/rasterizer/core/binner.cpp | 14 +-- .../drivers/swr/rasterizer/core/rasterizer.cpp | 28 +++--- .../drivers/swr/rasterizer/core/rasterizer.h | 10 3 files ch

[Mesa-dev] [PATCH 8/9] swr: [rasterizer core] Enable 8x2 backend

2017-04-04 Thread Tim Rowley
--- 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 7928f5d..e347558 100644 --- a/src/gallium/drivers/swr/rasterizer/core/kno

[Mesa-dev] [PATCH 9/9] swr: [rasterizer core] SIMD16 Frontend WIP

2017-04-04 Thread Tim Rowley
Implement widened binner for SIMD16 --- .../drivers/swr/rasterizer/common/simd16intrin.h | 44 +- src/gallium/drivers/swr/rasterizer/core/binner.cpp | 1642 +--- src/gallium/drivers/swr/rasterizer/core/frontend.h | 98 ++ src/gallium/drivers/swr/rasterizer/core/utils.h|

[Mesa-dev] [PATCH 6/9] swr: [rasterizer core/memory] Move native AVX code to _simd functions

2017-04-04 Thread Tim Rowley
--- .../drivers/swr/rasterizer/core/backend.cpp| 8 +- src/gallium/drivers/swr/rasterizer/core/backend.h | 56 - .../drivers/swr/rasterizer/core/format_types.h | 7 ++ src/gallium/drivers/swr/rasterizer/core/utils.h| 130 ++--- .../drivers/swr/rasteriz

[Mesa-dev] [PATCH 2/9] swr: [rasterizer core/memory] Fix missing avx512 storetile

2017-04-04 Thread Tim Rowley
Fix pre-processor macro handing to eliminate silently missing implementation for AVX512. --- src/gallium/drivers/swr/rasterizer/core/format_types.h | 18 -- src/gallium/drivers/swr/rasterizer/core/utils.h| 4 ++-- src/gallium/drivers/swr/rasterizer/memory/StoreTile.h | 15

  1   2   3   4   5   6   7   >