swr: Enable MSAA in OpenSWR software renderer
authorBruce Cherniak <bruce.cherniak@intel.com>
Thu, 13 Apr 2017 22:40:11 +0000 (17:40 -0500)
committerTim Rowley <timothy.o.rowley@intel.com>
Fri, 14 Apr 2017 20:22:45 +0000 (15:22 -0500)
commit1832ef6cd9bdce4f546128c0b77d7acd6fd898a7
tree81da3c4beeb3d64a846b4986a37f785e83d6d6b3
parent91a7f0b3afaa88e787d7b80df491928e037967a4
swr: Enable MSAA in OpenSWR software renderer

This patch enables multisample antialiasing in the OpenSWR software renderer.

MSAA is a proof-of-concept/work-in-progress with bug fixes and performance
on the way.  We wanted to get the changes out now to allow several customers
to begin experimenting with MSAA in a software renderer.  So as not to
impact current customers, MSAA is turned off by default - previous
functionality and performance remain intact.  It is easily enabled via
environment variables, as described below.

It has only been tested with the glx-lib winsys.  The intention is to
enable other state-trackers, both Windows and Linux and more fully support
FBOs.

There are 2 environment variables that affect behavior:

* SWR_MSAA_FORCE_ENABLE - force MSAA on, for apps that are not designed
  for MSAA... Beware, results will vary.  This is mainly for testing.

* SWR_MSAA_MAX_SAMPLE_COUNT - sets maximum supported number of
  samples (1,2,4,8,16), or 0 to disable MSAA altogether.
  (The default is currently 0.)

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
src/gallium/drivers/swr/swr_context.cpp
src/gallium/drivers/swr/swr_context.h
src/gallium/drivers/swr/swr_resource.h
src/gallium/drivers/swr/swr_screen.cpp
src/gallium/drivers/swr/swr_screen.h
src/gallium/drivers/swr/swr_state.cpp