swr/rast: reduce simd{16}vertex stack for VS output
authorTim Rowley <timothy.o.rowley@intel.com>
Wed, 19 Apr 2017 17:21:05 +0000 (12:21 -0500)
committerTim Rowley <timothy.o.rowley@intel.com>
Sat, 29 Apr 2017 00:56:17 +0000 (19:56 -0500)
commit0424e6249a4ea7d95eeaf4ae081a8b2758f1cc4f
tree9f45f186f073aa9a269ad68162d441407b36d6f4
parent536baf507e92d7e56f5a8b68e8bf58972da0d369
swr/rast: reduce simd{16}vertex stack for VS output

Frontend - reduce simdvertex/simd16vertex stack usage for VS output in
ProcessDraw, fixes stack overflow in some of the deeper call stacks under
SIMD16.

1. Move the vertex store out of PA_FACTORY, and off the stack
2. Allocate the vertex store out of the aligned heap (pointer is
   temporarily stored in TLS, but will be migrated to thread pool
   along with other frontend temporary buffers).
3. Grow the vertex store as necessary for the number of verts per
   primitive, in chunks of 8/4 simdvertex/simd16vertex

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
src/gallium/drivers/swr/rasterizer/core/frontend.cpp
src/gallium/drivers/swr/rasterizer/core/pa.h