diff --git a/docs/features.txt b/docs/features.txt index c65e2d9b4b5..0718541933f 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -444,7 +444,7 @@ Vulkan 1.1 -- all DONE: anv, lvp, nvk, radv, tu, vn VK_KHR_maintenance1 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_KHR_maintenance2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_KHR_maintenance3 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) - VK_KHR_multiview DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) + VK_KHR_multiview DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn) VK_KHR_relaxed_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_KHR_sampler_ycbcr_conversion DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_KHR_shader_draw_parameters DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn) diff --git a/src/panfrost/ci/panfrost-g610-flakes.txt b/src/panfrost/ci/panfrost-g610-flakes.txt index bf9d36820c0..3f25652296a 100644 --- a/src/panfrost/ci/panfrost-g610-flakes.txt +++ b/src/panfrost/ci/panfrost-g610-flakes.txt @@ -1,3 +1,57 @@ +# CTS bug see https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/5479 +dEQP-VK.multiview.masks.no_queries.15_15_15_15 +dEQP-VK.multiview.input_attachments.no_queries.15_15_15_15 +dEQP-VK.multiview.instanced.no_queries.15_15_15_15 +dEQP-VK.multiview.draw_indirect.no_queries.15_15_15_15 +dEQP-VK.multiview.draw_indirect_indexed.no_queries.15_15_15_15 +dEQP-VK.multiview.draw_indexed.no_queries.15_15_15_15 +dEQP-VK.multiview.secondary_cmd_buffer.no_queries.15_15_15_15 +dEQP-VK.multiview.point_size.no_queries.15_15_15_15 +dEQP-VK.multiview.readback_implicit_clear.no_queries.15_15_15_15 +dEQP-VK.multiview.readback_implicit_clear.no_queries.5_10_5_10 +dEQP-VK.multiview.readback_explicit_clear.no_queries.15_15_15_15 +dEQP-VK.multiview.readback_explicit_clear.no_queries.5_10_5_10 +dEQP-VK.multiview.depth.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.depth_without_fragment_shader.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.stencil.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.index.vertex_shader.no_queries.15_15_15_15 +dEQP-VK.multiview.index.fragment_shader.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.masks.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.input_attachments.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.instanced.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.draw_indirect.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.draw_indirect_indexed.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.draw_indexed.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.secondary_cmd_buffer.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.point_size.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.readback_implicit_clear.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.readback_implicit_clear.no_queries.5_10_5_10 +dEQP-VK.multiview.renderpass2.readback_explicit_clear.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.readback_explicit_clear.no_queries.5_10_5_10 +dEQP-VK.multiview.renderpass2.depth.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.renderpass2.depth_without_fragment_shader.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.renderpass2.stencil.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.renderpass2.index.vertex_shader.no_queries.15_15_15_15 +dEQP-VK.multiview.renderpass2.index.fragment_shader.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.masks.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.instanced.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.draw_indirect.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.draw_indirect_indexed.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.draw_indexed.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.secondary_cmd_buffer.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.point_size.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.point_size.no_queries.5_10_5_10 +dEQP-VK.multiview.dynamic_rendering.readback_implicit_clear.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.readback_implicit_clear.no_queries.5_10_5_10 +dEQP-VK.multiview.dynamic_rendering.readback_explicit_clear.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.readback_explicit_clear.no_queries.5_10_5_10 +dEQP-VK.multiview.dynamic_rendering.depth.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.dynamic_rendering.depth_without_fragment_shader.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.dynamic_rendering.stencil.no_queries.3_6_12_9_6_12_9_3_6_12_9_3 +dEQP-VK.multiview.dynamic_rendering.index.vertex_shader.no_queries.15_15_15_15 +dEQP-VK.multiview.dynamic_rendering.index.fragment_shader.no_queries.15_15_15_15 + + # Cause a "gpu sched timeout" (fixed by sched increase to 10s) dEQP-VK.memory.pipeline_barrier.host_write_uniform_buffer.1048576 dEQP-VK.memory.pipeline_barrier.host_write_uniform_texel_buffer.1048576 diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index c670d7e08c7..b9ff215c638 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -211,6 +211,7 @@ get_device_extensions(const struct panvk_physical_device *device, .KHR_maintenance2 = true, .KHR_maintenance3 = true, .KHR_map_memory2 = true, + .KHR_multiview = arch >= 10, .KHR_pipeline_executable_properties = true, .KHR_pipeline_library = true, .KHR_push_descriptor = true, @@ -290,7 +291,7 @@ get_features(const struct panvk_physical_device *device, .uniformAndStorageBuffer16BitAccess = true, .storagePushConstant16 = false, .storageInputOutput16 = false, - .multiview = false, + .multiview = arch >= 10, .multiviewGeometryShader = false, .multiviewTessellationShader = false, .variablePointersStorageBuffer = true, @@ -676,8 +677,8 @@ get_device_properties(const struct panvk_instance *instance, VK_SUBGROUP_FEATURE_VOTE_BIT, .subgroupQuadOperationsInAllStages = false, .pointClippingBehavior = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, - .maxMultiviewViewCount = 0, - .maxMultiviewInstanceIndex = 0, + .maxMultiviewViewCount = arch >= 10 ? 8 : 0, + .maxMultiviewInstanceIndex = arch >= 10 ? UINT32_MAX : 0, .protectedNoFault = false, .maxPerSetDescriptors = UINT16_MAX, /* Our buffer size fields allow only this much */