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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev