panfrost: enable 8x and 16x msaa modes when supported

8x and 16x MSAA should work now, so we no longer need to deal with those
separately. We have more accurate checks for when it's supported or not
in place already.

2x MSAA isn't supported at all until v12, which we haven't finished
wiring up yet. So let's leave that one for now... We'll need some more
fixes for that anyway.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34455>
This commit is contained in:
Erik Faye-Lund 2025-03-19 12:25:30 +01:00 committed by Marge Bot
parent 139f2c6629
commit 423f3fd485
7 changed files with 33 additions and 23 deletions

View file

@ -39,3 +39,4 @@ VK_EXT_inline_uniform_block on panvk
cl_khr_fp16 on asahi, freedreno, llvmpipe, panfrost, radeonsi and zink
GL_ARB_shader_clock on panfrost/v6+
VK_EXT_texture_compression_astc_hdr on panvk
MSAA with 8 and 16 sample counts on panfrost

View file

@ -70,7 +70,6 @@ static const struct debug_named_value panfrost_debug_options[] = {
{"gl3", PAN_DBG_GL3, "Enable experimental GL 3.x implementation, up to 3.3"},
{"noafbc", PAN_DBG_NO_AFBC, "Disable AFBC support"},
{"nocrc", PAN_DBG_NO_CRC, "Disable transaction elimination"},
{"msaa16", PAN_DBG_MSAA16, "Enable MSAA 8x and 16x support"},
{"linear", PAN_DBG_LINEAR, "Force linear textures"},
{"strict_import", PAN_DBG_STRICT_IMPORT, "Use the explicit WSI stride and fail if it's not properly aligned"},
{"nocache", PAN_DBG_NO_CACHE, "Disable BO cache"},
@ -177,28 +176,8 @@ panfrost_is_format_supported(struct pipe_screen *screen,
MAX2(sample_count, 1) > max_msaa)
return false;
/* MSAA 2x gets rounded up to 4x. MSAA 8x/16x only supported on v5+.
* TODO: debug MSAA 8x/16x */
switch (sample_count) {
case 0:
case 1:
case 4:
break;
case 2:
if (dev->arch >= 12)
break;
else
return false;
case 8:
case 16:
if (dev->debug & PAN_DBG_MSAA16)
break;
else
return false;
default:
if (sample_count == 2 && dev->arch < 12)
return false;
}
if (MAX2(sample_count, 1) != MAX2(storage_sample_count, 1))
return false;

View file

@ -33,6 +33,9 @@ spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB,Fail
spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB NPOT,Fail
spec@arb_texture_float@multisample-formats 2 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 4 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 6 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 8 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 16 gl_arb_texture_float,Fail
spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16I,Fail
spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16_SNORM,Fail
spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R32I,Fail
@ -326,6 +329,8 @@ afbcp-spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB,Fail
afbcp-spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB NPOT,Fail
afbcp-spec@arb_texture_float@multisample-formats 2 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_float@multisample-formats 4 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_float@multisample-formats 6 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_float@multisample-formats 8 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16I,Fail
afbcp-spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16_SNORM,Fail
afbcp-spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R32I,Fail
@ -389,6 +394,9 @@ afbcp-spec@khr_texture_compression_astc@sliced-3d-miptree-gl srgb-fp@sRGB decode
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread,Crash
afbcp-spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread,Crash
# CTS bug: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5695
KHR-GLES31.core.texture_storage_multisample.APIDependencies.renderbuffer_storage_multisample_invalid_samples_argument_for_integer_internalformats,Fail
# physical device and device needs more robustness in allocation handling
dEQP-VK.api.object_management.max_concurrent.device,Fail
dEQP-VK.api.object_management.max_concurrent.device_group,Fail

View file

@ -10,6 +10,9 @@ dEQP-GLES31.functional.draw_indirect.compute_interop.large.*
# https://gitlab.freedesktop.org/mesa/mesa/-/jobs/19776551
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36
# Huge render, which eventually times out
dEQP-GLES31.functional.fbo.no_attachments.maximums.all
# Seems to timeout occasionally
dEQP-VK.api.object_management.max_concurrent.query_pool

View file

@ -27,6 +27,8 @@ spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB,Fail
spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB NPOT,Fail
spec@arb_texture_float@multisample-formats 2 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 4 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 6 gl_arb_texture_float,Fail
spec@arb_texture_float@multisample-formats 8 gl_arb_texture_float,Fail
spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16I,Fail
spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16_SNORM,Fail
spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R32I,Fail
@ -354,6 +356,8 @@ afbcp-spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB,Fail
afbcp-spec@arb_texture_float@fbo-generatemipmap-formats@GL_INTENSITY16F_ARB NPOT,Fail
afbcp-spec@arb_texture_float@multisample-formats 2 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_float@multisample-formats 4 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_float@multisample-formats 6 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_float@multisample-formats 8 gl_arb_texture_float,Fail
afbcp-spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16I,Fail
afbcp-spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R16_SNORM,Fail
afbcp-spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture type: GL_R32I,Fail
@ -651,3 +655,16 @@ afbcp-spec@glsl-1.30@execution@tex-miplevel-selection textureprojgradoffset 2d,F
afbcp-spec@glsl-1.30@execution@tex-miplevel-selection textureprojgradoffset 2d_projvec4,Fail
afbcp-spec@glsl-1.30@execution@tex-miplevel-selection textureprojgradoffset 2dshadow,Fail
afbcp-spec@glsl-1.30@execution@tex-miplevel-selection textureprojgradoffset 3d,Fail
# Piglit tests require too much precision in alpha-to-coverage higher sample-counts
spec@ext_framebuffer_multisample@alpha-to-coverage-dual-src-blend 6,Fail
spec@ext_framebuffer_multisample@alpha-to-coverage-dual-src-blend 8,Fail
spec@ext_framebuffer_multisample@alpha-to-coverage-no-draw-buffer-zero 6,Fail
spec@ext_framebuffer_multisample@alpha-to-coverage-no-draw-buffer-zero 8,Fail
spec@ext_framebuffer_multisample@draw-buffers-alpha-to-coverage 6,Fail
spec@ext_framebuffer_multisample@draw-buffers-alpha-to-coverage 8,Fail
spec@ext_framebuffer_multisample@sample-alpha-to-coverage 6 color,Fail
spec@ext_framebuffer_multisample@sample-alpha-to-coverage 8 color,Fail
# CTS bug: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5695
KHR-GLES31.core.texture_storage_multisample.APIDependencies.renderbuffer_storage_multisample_invalid_samples_argument_for_integer_internalformats,Fail

View file

@ -0,0 +1,2 @@
# CTS bug: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5695
KHR-GLES31.core.texture_storage_multisample.APIDependencies.renderbuffer_storage_multisample_invalid_samples_argument_for_integer_internalformats,Fail

View file

@ -42,7 +42,7 @@
#define PAN_DBG_NO_CRC 0x0080
#define PAN_DBG_GL3 0x0100
#define PAN_DBG_NO_AFBC 0x0200
#define PAN_DBG_MSAA16 0x0400
/* 0x400 unused */
#define PAN_DBG_STRICT_IMPORT 0x0800
#define PAN_DBG_LINEAR 0x1000
#define PAN_DBG_NO_CACHE 0x2000