i965/msaa: Only do multisample rasterization if GL_MULTISAMPLE enabled.
authorPaul Berry <stereotype441@gmail.com>
Sat, 16 Jun 2012 18:32:04 +0000 (11:32 -0700)
committerPaul Berry <stereotype441@gmail.com>
Wed, 20 Jun 2012 18:28:09 +0000 (11:28 -0700)
commitcde6544ad7cbc0f4567d294e4d2ac4214199c6ec
tree5a1a492d5500c7591699e83639652d9d0422ba36
parent3b0279a69392a8fcc81ad462ca5623ec2a73f890
i965/msaa: Only do multisample rasterization if GL_MULTISAMPLE enabled.

From the GL 3.0 spec (p.116):

    "Multisample rasterization is enabled or disabled by calling
    Enable or Disable with the symbolic constant MULTISAMPLE."

Elsewhere in the spec, where multisample rasterization is described
(sections 3.4.3, 3.5.4, and 3.6.6), the following text is consistently
used:

    "If MULTISAMPLE is enabled, and the value of SAMPLE_BUFFERS is
    one, then..."

So, in other words, disabling GL_MULTISAMPLE should prevent
multisample rasterization from occurring, even if the draw framebuffer
is multisampled.  This patch implements that behaviour by setting the
WM and SF stage's "multisample rasterization mode" to
MSRAST_ON_PATTERN only when the draw framebuffer is multisampled *and*
GL_MULTISAMPLE is enabled.

Fixes piglit test spec/EXT_framebuffer_multisample/enable-flag.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen6_sf_state.c
src/mesa/drivers/dri/i965/gen6_wm_state.c
src/mesa/drivers/dri/i965/gen7_sf_state.c
src/mesa/drivers/dri/i965/gen7_wm_state.c