[Mesa-dev] [PATCH v2] gallium: Add MULTISAMPLE_Z_RESOLVE cap
Ilia Mirkin
imirkin at alum.mit.edu
Mon Jan 19 14:23:36 PST 2015
On Mon, Jan 19, 2015 at 5:17 PM, Axel Davy <axel.davy at ens.fr> wrote:
> Resolving a multisampled depth texture into
> a single sampled texture is supported on >= SM4.1
> hw. It is possible some previous hw support it.
>
> The ability was tested on radeonsi and nvc0.
I'm not aware of any issues in this regard on nv50 either... take a look at
http://people.freedesktop.org/~imirkin/nv50-comparison/problems.html
perhaps there are piglits that indicate problems. It does seem like
the original G80 (chip id == 0x50) did have some extra-special
problems in EXT_framebuffer_multisample related to depth, perhaps it's
the same as with the original r6xx chips.
> Apparently is is also supported for radeon >= r700.
>
> This patch adds the MULTISAMPLE_Z_RESOLVE cap and
> adds it to the drivers. It is advertised for drivers
> for which it is sure the ability is supported.
>
> Signed-off-by: Axel Davy <axel.davy at ens.fr>
> ---
> v2: Add mention of the first sample to the definition.
> Remove comment about possible support for drivers that
> don't support MSAA yet.
> src/gallium/docs/source/screen.rst | 3 +++
> src/gallium/drivers/freedreno/freedreno_screen.c | 1 +
> src/gallium/drivers/i915/i915_screen.c | 1 +
> src/gallium/drivers/ilo/ilo_screen.c | 1 +
> src/gallium/drivers/llvmpipe/lp_screen.c | 2 ++
> src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 +
> src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 +
> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 +
> src/gallium/drivers/r300/r300_screen.c | 1 +
> src/gallium/drivers/r600/r600_pipe.c | 2 ++
> src/gallium/drivers/radeonsi/si_pipe.c | 1 +
> src/gallium/drivers/softpipe/sp_screen.c | 2 ++
> src/gallium/drivers/svga/svga_screen.c | 1 +
> src/gallium/drivers/vc4/vc4_screen.c | 1 +
> src/gallium/include/pipe/p_defines.h | 1 +
> 15 files changed, 20 insertions(+)
>
> index 6c5703a..351f3c2 100644
> --- a/src/gallium/include/pipe/p_defines.h
> +++ b/src/gallium/include/pipe/p_defines.h
> @@ -573,6 +573,7 @@ enum pipe_cap {
> PIPE_CAP_SAMPLER_VIEW_TARGET = 110,
> PIPE_CAP_CLIP_HALFZ = 111,
> PIPE_CAP_VERTEXID_NOBASE,
> + PIPE_CAP_MULTISAMPLE_Z_RESOLVE,
= 113 (and fix up NOBASE too maybe?)
-ilia
More information about the mesa-dev
mailing list