[Mesa-dev] [PATCH 3/8] swr/rast: Split rasterizer.cpp to improve compile times

Emil Velikov emil.l.velikov at gmail.com
Mon Jun 26 13:02:59 UTC 2017


On 22 June 2017 at 22:13, Tim Rowley <timothy.o.rowley at intel.com> wrote:
> Hardcode split to four files currently.  Decreases swr build
> time on KNL by over 50%.
Out of curiosity what is KNL?

Also, over 50% decrease - time to pop the champagne ;-)

> ---
>  src/gallium/drivers/swr/Makefile.am                |   36 +-
>  src/gallium/drivers/swr/Makefile.sources           |    2 +-
>  src/gallium/drivers/swr/SConscript                 |   24 +-
>  .../drivers/swr/rasterizer/codegen/gen_backends.py |   15 +-
>  .../codegen/templates/gen_rasterizer.cpp           |   42 +
>  src/gallium/drivers/swr/rasterizer/core/api.cpp    |    1 +
>  .../drivers/swr/rasterizer/core/multisample.cpp    |   48 -
>  .../drivers/swr/rasterizer/core/rasterizer.cpp     | 1788 +++-----------------
>  .../drivers/swr/rasterizer/core/rasterizer.h       |   31 +-
>  .../drivers/swr/rasterizer/core/rasterizer_impl.h  | 1376 +++++++++++++++
>  10 files changed, 1738 insertions(+), 1625 deletions(-)
>  create mode 100644 src/gallium/drivers/swr/rasterizer/codegen/templates/gen_rasterizer.cpp
>  delete mode 100644 src/gallium/drivers/swr/rasterizer/core/multisample.cpp
>  create mode 100644 src/gallium/drivers/swr/rasterizer/core/rasterizer_impl.h
>
> diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am
> index 0daec90..1a69cfc 100644
> --- a/src/gallium/drivers/swr/Makefile.am
> +++ b/src/gallium/drivers/swr/Makefile.am
> @@ -67,7 +67,12 @@ BUILT_SOURCES = \
>         rasterizer/core/backends/gen_BackendPixelRate1.cpp \
>         rasterizer/core/backends/gen_BackendPixelRate2.cpp \
>         rasterizer/core/backends/gen_BackendPixelRate3.cpp \
> -       rasterizer/core/backends/gen_BackendPixelRate.hpp
> +       rasterizer/core/backends/gen_BackendPixelRate.hpp \
> +       rasterizer/core/backends/gen_rasterizer0.cpp \
> +       rasterizer/core/backends/gen_rasterizer1.cpp \
> +       rasterizer/core/backends/gen_rasterizer2.cpp \
> +       rasterizer/core/backends/gen_rasterizer3.cpp \
> +       rasterizer/core/backends/gen_rasterizer.hpp
>
>  MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
>  PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
> @@ -170,6 +175,32 @@ backend.intermediate: rasterizer/codegen/gen_backends.py rasterizer/codegen/temp
>                 --cpp \
>                 --hpp
>
> +rasterizer/core/backends/gen_rasterizer0.cpp \
> +rasterizer/core/backends/gen_rasterizer1.cpp \
> +rasterizer/core/backends/gen_rasterizer2.cpp \
> +rasterizer/core/backends/gen_rasterizer3.cpp \
> +rasterizer/core/backends/gen_rasterizer.hpp: \
> +rasterizer.intermediate
> +
> +# 5 SWR_MULTISAMPLE_TYPE_COUNT
> +# 2 CenterPattern
> +# 2 Conservative
> +# 3 SWR_INPUT_COVERAGE_COUNT
> +# 5 STATE_VALID_TRI_EDGE_COUNT
> +# 2 RasterScissorEdges
> +
> +.INTERMEDIATE: rasterizer.intermediate
Same question/suggestion as in PATCH 1 - please add a note (helps XXX) or drop

With that from build POV
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>


> --- a/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py
> +++ b/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py

> +
> +    args = parser.parse_args(args)
>
> -    args = parser.parse_args(args);
>
Unrelated cleanup?

-Emil


More information about the mesa-dev mailing list