summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2012-05-09 15:51:11 -0700
committerPaul Berry <stereotype441@gmail.com>2012-05-25 08:45:11 -0700
commitab014adaed14a9ca213447dc913d0dce7906be56 (patch)
tree5b211c32fdbae20ac311d34ed9ba35bedeb931a8
parent4725ba03cae87ddbf1fa10feaca3d42f24115f91 (diff)
i965/msaa: Enable 4x MSAA on Gen7.
Basic 4x MSAA support now works on Gen7. This patch enables it. As with Gen6, MSAA support is still fairly preliminary. In particular, the following are not yet supported: - 8x oversampling (Gen7 has hardware support for this, but we do not yet expose it). - Fully general blits between MSAA and non-MSAA buffers. - Formats other than RGBA8, DEPTH24, and STENCIL8. - Centrold interpolation. - Coverage parameters (glSampleCoverage, GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_ALPHA_TO_ONE, GL_SAMPLE_COVERAGE, GL_SAMPLE_COVERAGE_VALUE, GL_SAMPLE_COVERAGE_INVERT). Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--src/mesa/drivers/dri/i965/gen6_multisample_state.c12
-rw-r--r--src/mesa/drivers/dri/intel/intel_fbo.c6
2 files changed, 9 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_multisample_state.c b/src/mesa/drivers/dri/i965/gen6_multisample_state.c
index e01ead10522..3cf94f68bdb 100644
--- a/src/mesa/drivers/dri/i965/gen6_multisample_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_multisample_state.c
@@ -36,10 +36,8 @@ gen6_emit_3dstate_multisample(struct brw_context *brw,
{
struct intel_context *intel = &brw->intel;
- /* TODO: MSAA only implemented on Gen6 */
- if (intel->gen != 6) {
- assert(num_samples == 0);
- }
+ /* TODO: 8x MSAA not implemented */
+ assert(num_samples <= 4);
int len = intel->gen >= 7 ? 4 : 3;
BEGIN_BATCH(len);
@@ -62,10 +60,8 @@ gen6_emit_3dstate_sample_mask(struct brw_context *brw,
{
struct intel_context *intel = &brw->intel;
- /* TODO: MSAA only implemented on Gen6 */
- if (intel->gen != 6) {
- assert(num_samples == 0);
- }
+ /* TODO: 8x MSAA not implemented */
+ assert(num_samples <= 4);
BEGIN_BATCH(2);
OUT_BATCH(_3DSTATE_SAMPLE_MASK << 16 | (2 - 2));
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index bbd5f6652e9..a801bb74c7e 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -202,7 +202,11 @@ quantize_num_samples(struct intel_context *intel, unsigned num_samples)
else
return 0;
case 7:
- /* TODO: MSAA only implemented on Gen6 */
+ /* TODO: Gen7 supports only 4x multisampling at the moment. */
+ if (num_samples > 0)
+ return 4;
+ else
+ return 0;
return 0;
default:
/* MSAA unsupported */