[Mesa-dev] [PATCH 3/3] i965: Enable ext_framebuffer_multisample_blit_scaled on intel h/w

Paul Berry stereotype441 at gmail.com
Tue May 7 11:14:20 PDT 2013


On 1 May 2013 14:10, Anuj Phogat <anuj.phogat at gmail.com> wrote:

> This patch enables ext_framebuffer_multisample_blit_scaled extension
> on intel h/w >= gen6.
>
> Note: Patches for piglit tests to verify this functionality are out
> for review on piglit mailing list. Tests pass for all of the scaling
> factors except 1.3 and 1.8. I'm still investigating what's so special
> about these scaling factors. I'll update my patches to fix the issue
> along with other review comments.
>
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
>

We discussed this a bit in person yesterday, but I'd like to get the
discussion on record:

I have some concerns about the image quality of the method you've
implemented.  As I understand it, the primary use case of this extension is
to allow the client to do multisampled rendering at slightly less than
screen resolution (e.g. 720p instead of 1080p), and then blit the result to
the screen in one step while keeping most of the quality benefits of
multisampling.  Since your implementation is effectively equivalent to
downsampling and then blitting using GL_NEAREST filtering, my fear is that
it will lead to blocky artifacts that are severe enough to negate the
benefit of multisampling in the first place.

Before we turn this extension on in the Intel driver, I'd like to look at a
comparison of:

(1) your technique
(2) downsampling followed by scaling with GL_LINEAR filtering
(3) The nVidia implementation, in GL_SCALED_RESOLVE_FASTEST_EXT mode
(4) The nVidia implementation, in GL_SCALED_RESOLVE_NICEST_EXT mode
(5) Just rendering the image directly to the single-sampled destination
buffer

I believe my nVidia card supports this extension; I'll try to gather images
of (3) and (4) today.


> ---
>  src/mesa/drivers/dri/intel/intel_extensions.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c
> b/src/mesa/drivers/dri/intel/intel_extensions.c
> index 18f19b8..e5c2cd6 100755
> --- a/src/mesa/drivers/dri/intel/intel_extensions.c
> +++ b/src/mesa/drivers/dri/intel/intel_extensions.c
> @@ -97,6 +97,7 @@ intelInitExtensions(struct gl_context *ctx)
>
>     if (intel->gen >= 6) {
>        ctx->Extensions.EXT_framebuffer_multisample = true;
> +      ctx->Extensions.EXT_framebuffer_multisample_blit_scaled = true;
>        ctx->Extensions.ARB_blend_func_extended =
> !driQueryOptionb(&intel->optionCache, "disable_blend_func_extended");
>        ctx->Extensions.ARB_draw_buffers_blend = true;
>        ctx->Extensions.ARB_ES3_compatibility = true;
> --
> 1.8.1.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130507/13975cb9/attachment-0001.html>


More information about the mesa-dev mailing list