[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