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). --- src/mesa/drivers/dri/i965/gen6_multisample_state.c | 12 ++++-------- src/mesa/drivers/dri/intel/intel_fbo.c | 6 +++++- 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 e01ead1..3cf94f6 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 bbd5f66..a801bb7 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 */ -- 1.7.7.6 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev