mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 07:10:15 +01:00
i965/msaa: Disable unsupported formats.
Due to hardware limitations, MSAA is unsupported on Gen6 for formats
containing >64 bits of data per pixel. From the Sandy Bridge PRM,
vol4 part1, p72 ("Surface Format"):
If Number of Multisamples is set to a value other than
MULTISAMPLECOUNT_1, this field cannot be set to the following
formats:
- any format with greater than 64 bits per element
- any compressed texture format (BC*)
- any YCRCB* format
Gen7 has a similar, but less stringent limitation: formats with >64
bits of data per pixel only support 4x MSAA.
This patch causes the unsupported formats to report
GL_FRAMEBUFFER_UNSUPPORTED.
Fixes piglit "multisample-formats" tests on Gen6.
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
3becf98424
commit
3b0279a693
1 changed files with 13 additions and 0 deletions
|
|
@ -576,6 +576,19 @@ brw_render_target_supported(struct intel_context *intel,
|
|||
rb->_BaseFormat != GL_RED) && _mesa_is_format_integer_color(format))
|
||||
return false;
|
||||
|
||||
/* Under some conditions, MSAA is not supported for formats whose width is
|
||||
* more than 64 bits.
|
||||
*/
|
||||
if (rb->NumSamples > 0 && _mesa_get_format_bytes(format) > 8) {
|
||||
/* Gen6: MSAA on >64 bit formats is unsupported. */
|
||||
if (intel->gen <= 6)
|
||||
return false;
|
||||
|
||||
/* Gen7: 8x MSAA on >64 bit formats is unsupported. */
|
||||
if (rb->NumSamples >= 8)
|
||||
return false;
|
||||
}
|
||||
|
||||
return brw->format_supported_as_render_target[format];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue