[Mesa-dev] [PATCH V2 18/22] i965: take the target into account for Gen7 MSAA modes

Paul Berry stereotype441 at gmail.com
Wed Feb 6 06:20:07 PST 2013


On 4 February 2013 21:48, Chris Forbes <chrisf at ijw.co.nz> wrote:

> Gen7 has an erratum affecting the ld_mcs message, making it unsafe to
> use when the surface doesn't have an associated MCS.
>

Would you mind quoting the exact text of the erratum here (and citing the
page number)?

With that addition, this patch is:

Reviewed-by: Paul Berry <stereotype441 at gmail.com>


>
> To allow the shader to treat all surfaces uniformly, force UMS if the
> surface is to be used as a multisample texture, even if CMS would have
> been possible.
>
> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
> ---
>  src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> index e68285c..be13c07 100644
> --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
> @@ -72,7 +72,7 @@ target_to_target(GLenum target)
>   * created, based on the chip generation and the surface type.
>   */
>  static enum intel_msaa_layout
> -compute_msaa_layout(struct intel_context *intel, gl_format format)
> +compute_msaa_layout(struct intel_context *intel, gl_format format, GLenum
> target)
>  {
>     /* Prior to Gen7, all MSAA surfaces used IMS layout. */
>     if (intel->gen < 7)
> @@ -101,7 +101,16 @@ compute_msaa_layout(struct intel_context *intel,
> gl_format format)
>           assert(intel->gen == 7);
>           return INTEL_MSAA_LAYOUT_UMS;
>        } else {
> -         return INTEL_MSAA_LAYOUT_CMS;
> +         /* For now, if we're going to be texturing from this surface,
> +          * force UMS, so that the shader doesn't have to do different
> things
> +          * based on whether there's a multisample control surface
> needing sampled first.
> +          */
> +         if (target == GL_TEXTURE_2D_MULTISAMPLE ||
> +               target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY) {
> +            return INTEL_MSAA_LAYOUT_UMS;
> +         } else {
> +            return INTEL_MSAA_LAYOUT_CMS;
> +         }
>        }
>     }
>  }
> @@ -150,7 +159,7 @@ intel_miptree_create_layout(struct intel_context
> *intel,
>
>     if (num_samples > 1) {
>        /* Adjust width/height/depth for MSAA */
> -      mt->msaa_layout = compute_msaa_layout(intel, format);
> +      mt->msaa_layout = compute_msaa_layout(intel, format, mt->target);
>        if (mt->msaa_layout == INTEL_MSAA_LAYOUT_IMS) {
>           /* In the Sandy Bridge PRM, volume 4, part 1, page 31, it says:
>            *
> --
> 1.8.1.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130206/7c573149/attachment-0001.html>


More information about the mesa-dev mailing list