panvk_faux123_rg556_v0.16.0 對比 Mali-G68 MC4
在 Mali-G68 上 (Infinix ZERO 5G 2023, LENOVO TB370FU, realme 10 Pro+ 5G, realme P1 5G, Samsung Galaxy A16 5G, Samsung Galaxy A16 5G, Samsung Galaxy A17 5G, Samsung Galaxy A25 5G, Samsung Galaxy A26 5G, Samsung Galaxy A33 5G, Samsung Galaxy A54 5G, vivo V2202). 先列出的驅動程式與後一個對比,後一個是基準。
原廠Mali-G68 MC4
對比自訂panvk_faux123_rg556_v0.16.0
圖形系統版本(Vulkan)1.1.177 → 1.3.354
可選功能(擴充功能)69 → 168+102 -3
通過檢測的功能(已驗證)45 → 4820 個僅在 panvk_faux123_rg556_v0.16.0 上通過 17 個僅在 Mali-G68 MC4 上通過
跑分測試場景(基準測試)沒有共同場景
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
Mali-G68 MC4 詳情 panvk_faux123_rg556_v0.16.0 詳情
結果不同的功能檢測(60)
| 功能 | 原廠 | 自訂 | 變化 |
|---|---|---|---|
| depthClamp | 通過 | 未檢測 | 減少 |
| largePoints | 通過 | 未檢測 | 減少 |
| compat.helper_loop_terminator | 通過 | 未檢測 | 減少 |
| compat.nested_map | 通過 | 未檢測 | 減少 |
| core.blend_advertised_formats | 通過 | 未檢測 | 減少 |
| core.compute_big_stack | 通過 | 未檢測 | 減少 |
| core.host_coherent_readback | 通過 | 未檢測 | 減少 |
| core.mrt_partial_kill | 通過 | 未檢測 | 減少 |
| core.ubo_update_buffer | 通過 | 未檢測 | 減少 |
| core.ubo_written_after_record | 通過 | 未檢測 | 減少 |
| core.varying_subset | 通過 | 未檢測 | 減少 |
| mem.image_padding | 通過 | 未檢測 | 減少 |
| perf.fb_local_barrier_large_draws | 通過 | 未檢測 | 減少 |
| perf.fb_local_barrier_overdraw | 通過 | 未檢測 | 減少 |
| stage.geometry_max_output | 通過 | 未檢測 | 減少 |
| stress.scratch_per_batch | 通過 | 未檢測 | 減少 |
| sync.first_submit_clear_then_compute | 通過 | 未檢測 | 減少 |
| borderColorSwizzle | 不支援 | 通過 | 新增 |
| colorWriteEnable | 不支援 | 通過 | 新增 |
| depthClipControl | 不支援 | 通過 | 新增 |
| extendedDynamicState | 不支援 | 通過 | 新增 |
| extendedDynamicState2 | 不支援 | 通過 | 新增 |
| extendedDynamicState2LogicOp | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支援 | 通過 | 新增 |
| extendedDynamicState3DepthClampEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支援 | 通過 | 新增 |
| robustBufferAccess2 | 不支援 | 通過 | 新增 |
| vertexInputDynamicState | 不支援 | 通過 | 新增 |
| shaderBufferInt64Atomics | 不支援 | 通過 | 新增 |
| timelineSemaphore | 失敗 | 通過 | 新增 |
| multiDrawIndirect | 不支援 | 通過 | 新增 |
| multiViewport | 不支援 | 通過 | 新增 |
| push.max_combined_image_samplers | 不支援 | 通過 | 新增 |
| push.max_uniform_buffers | 不支援 | 通過 | 新增 |
| stress.multi_draw_indirect_large | 不支援 | 通過 | 新增 |
| borderColorSwizzleFromImage | 不支援 | 未檢測 | 有變化 |
| depthBiasControl | 不支援 | 未檢測 | 有變化 |
| depthBiasExact | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToCoverageEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3LineRasterizationMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationSamples | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3SampleMask | 不支援 | 未檢測 | 有變化 |
| nullDescriptor | 不支援 | 未檢測 | 有變化 |
| geometryStreams | 不支援 | 未檢測 | 有變化 |
| shaderSharedInt64Atomics | 不支援 | 未檢測 | 有變化 |
| dualSrcBlend | 不支援 | 未檢測 | 有變化 |
| fillModeNonSolid | 不支援 | 未檢測 | 有變化 |
| logicOp | 不支援 | 未檢測 | 有變化 |
| pipelineStatisticsQuery | 不支援 | 未檢測 | 有變化 |
| shaderClipDistance | 不支援 | 未檢測 | 有變化 |
| shaderCullDistance | 不支援 | 未檢測 | 有變化 |
| shaderInt64 | 不支援 | 未檢測 | 有變化 |
| shaderTessellationAndGeometryPointSize | 不支援 | 未檢測 | 有變化 |
| variableMultisampleRate | 不支援 | 未檢測 | 有變化 |
| vertexPipelineStoresAndAtomics | 不支援 | 未檢測 | 有變化 |
| wideLines | 不支援 | 未檢測 | 有變化 |
| stage.geometry_point_size | 不支援 | 未檢測 | 有變化 |
跑分測試場景(基準測試)
兩個驅動程式都還沒有有效的跑分測試(基準測試報告)。
技術差異(Vulkan)
僅 panvk_faux123_rg556_v0.16.0 有的擴充功能(102)
- VK_ARM_scheduling_controls
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_border_color_swizzle
- VK_EXT_buffer_device_address
- VK_EXT_color_write_enable
- VK_EXT_debug_marker
- VK_EXT_depth_bias_control
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_control
- VK_EXT_depth_clip_enable
- VK_EXT_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_global_priority_query
- VK_EXT_graphics_pipeline_library
- VK_EXT_hdr_metadata
- VK_EXT_host_image_copy
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_image_view_min_lod
- VK_EXT_legacy_dithering
- VK_EXT_load_store_op_none
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_mutable_descriptor_type
- VK_EXT_non_seamless_cube_map
- VK_EXT_physical_device_drm
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- VK_EXT_pipeline_robustness
- VK_EXT_primitive_topology_list_restart
- VK_EXT_private_data
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_tile_image
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_texel_buffer_alignment
- VK_EXT_tooling_info
- VK_EXT_vertex_attribute_divisor
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_GOOGLE_user_type
- VK_KHR_calibrated_timestamps
- VK_KHR_compute_shader_derivatives
- VK_KHR_copy_commands2
- VK_KHR_depth_clamp_zero_one
- VK_KHR_draw_indirect_count
- VK_KHR_dynamic_rendering
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_format_feature_flags2
- VK_KHR_global_priority
- VK_KHR_index_type_uint8
- VK_KHR_internally_synchronized_queues
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_maintenance7
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- VK_KHR_map_memory2
- VK_KHR_pipeline_binary
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_push_descriptor
- VK_KHR_robustness2
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_fma
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_terminate_invocation
- VK_KHR_shader_untyped_pointers
- VK_KHR_swapchain_mutable_format
- VK_KHR_synchronization2
- VK_KHR_unified_image_layouts
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_KHR_zero_initialize_workgroup_memory
- VK_VALVE_mutable_descriptor_type
僅 Mali-G68 MC4 有的擴充功能(3)
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_KHR_shared_presentable_image
不同的核心功能(65)
| multiview | 不支援 → 通過 |
| samplerYcbcrConversion | 不支援 → 通過 |
| shaderDrawParameters | 不支援 → 通過 |
| storageBuffer16BitAccess | 不支援 → 通過 |
| storageInputOutput16 | 不支援 → 通過 |
| storagePushConstant16 | 不支援 → 通過 |
| uniformAndStorageBuffer16BitAccess | 不支援 → 通過 |
| variablePointers | 不支援 → 通過 |
| variablePointersStorageBuffer | 不支援 → 通過 |
| bufferDeviceAddress | 不支援 → 通過 |
| descriptorBindingPartiallyBound | 不支援 → 通過 |
| descriptorBindingSampledImageUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingStorageBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingStorageImageUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingStorageTexelBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingUniformBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingUniformTexelBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingUpdateUnusedWhilePending | 不支援 → 通過 |
| descriptorBindingVariableDescriptorCount | 不支援 → 通過 |
| descriptorIndexing | 不支援 → 通過 |
| drawIndirectCount | 不支援 → 通過 |
| hostQueryReset | 不支援 → 通過 |
| imagelessFramebuffer | 不支援 → 通過 |
| runtimeDescriptorArray | 不支援 → 通過 |
| samplerMirrorClampToEdge | 不支援 → 通過 |
| scalarBlockLayout | 不支援 → 通過 |
| separateDepthStencilLayouts | 不支援 → 通過 |
| shaderBufferInt64Atomics | 不支援 → 通過 |
| shaderInputAttachmentArrayDynamicIndexing | 不支援 → 通過 |
| shaderInputAttachmentArrayNonUniformIndexing | 不支援 → 通過 |
| shaderInt8 | 不支援 → 通過 |
| shaderSampledImageArrayNonUniformIndexing | 不支援 → 通過 |
| shaderSharedInt64Atomics | 不支援 → 通過 |
| shaderStorageBufferArrayNonUniformIndexing | 不支援 → 通過 |
| shaderStorageImageArrayNonUniformIndexing | 不支援 → 通過 |
| shaderStorageTexelBufferArrayDynamicIndexing | 不支援 → 通過 |
| shaderStorageTexelBufferArrayNonUniformIndexing | 不支援 → 通過 |
| shaderSubgroupExtendedTypes | 不支援 → 通過 |
| shaderUniformBufferArrayNonUniformIndexing | 不支援 → 通過 |
| shaderUniformTexelBufferArrayDynamicIndexing | 不支援 → 通過 |
| shaderUniformTexelBufferArrayNonUniformIndexing | 不支援 → 通過 |
| storageBuffer8BitAccess | 不支援 → 通過 |
| storagePushConstant8 | 不支援 → 通過 |
| subgroupBroadcastDynamicId | 不支援 → 通過 |
| timelineSemaphore | 不支援 → 通過 |
| uniformAndStorageBuffer8BitAccess | 不支援 → 通過 |
| uniformBufferStandardLayout | 不支援 → 通過 |
| vulkanMemoryModel | 不支援 → 通過 |
| vulkanMemoryModelAvailabilityVisibilityChains | 不支援 → 通過 |
| vulkanMemoryModelDeviceScope | 不支援 → 通過 |
| computeFullSubgroups | 不支援 → 通過 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 不支援 → 通過 |
| dynamicRendering | 不支援 → 通過 |
| inlineUniformBlock | 不支援 → 通過 |
| maintenance4 | 不支援 → 通過 |
| pipelineCreationCacheControl | 不支援 → 通過 |
| privateData | 不支援 → 通過 |
| robustImageAccess | 不支援 → 通過 |
| shaderDemoteToHelperInvocation | 不支援 → 通過 |
| shaderIntegerDotProduct | 不支援 → 通過 |
| shaderTerminateInvocation | 不支援 → 通過 |
| shaderZeroInitializeWorkgroupMemory | 不支援 → 通過 |
| subgroupSizeControl | 不支援 → 通過 |
| synchronization2 | 不支援 → 通過 |
| textureCompressionASTC_HDR | 不支援 → 通過 |
不同的限制(48)
| 限制 | 原廠 | 自訂 |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16384 | 65536 |
| maxImageDimension3D | 16384 | 65536 |
| maxImageDimensionCube | 16384 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 65536 | 1048576 |
| maxStorageBufferRange | 268435456 | 4294967295 |
| bufferImageGranularity | 4096 | 64 |
| maxBoundDescriptorSets | 4 | 7 |
| maxPerStageDescriptorSamplers | 500000 | 1048576 |
| maxPerStageDescriptorUniformBuffers | 36 | 1048576 |
| maxPerStageDescriptorStorageBuffers | 500000 | 1048576 |
| maxPerStageDescriptorSampledImages | 500000 | 1048576 |
| maxPerStageDescriptorStorageImages | 500000 | 1048576 |
| maxPerStageResources | 500000 | 5242889 |
| maxDescriptorSetSamplers | 500000 | 1048576 |
| maxDescriptorSetUniformBuffers | 216 | 1048576 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 500000 | 1048576 |
| maxDescriptorSetStorageBuffersDynamic | 32 | 8 |
| maxDescriptorSetSampledImages | 500000 | 1048576 |
| maxDescriptorSetStorageImages | 500000 | 1048576 |
| maxVertexInputAttributes | 32 | 16 |
| maxVertexInputBindings | 32 | 16 |
| maxVertexInputAttributeOffset | 2047 | 4294967295 |
| maxVertexInputBindingStride | 2048 | 65535 |
| maxGeometryInputComponents | 64 | 128 |
| maxGeometryOutputVertices | 256 | 1024 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 1000008 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxDrawIndirectCount | 1 | 65535 |
| maxSamplerLodBias | 255 | 127.996 |
| maxViewports | 1 | 16 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 16 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| framebufferNoAttachmentsSampleCounts | 29 | 13 |
| timestampComputeAndGraphics | 1 | 0 |
| timestampPeriod | 76.9231 | 0 |
| maxClipDistances | 0 | 8 |
| maxCullDistances | 0 | 8 |
| maxCombinedClipAndCullDistances | 0 | 8 |
| pointSizeRange | 1, 1024 | 0.125, 4095.94 |
| lineWidthRange | 1, 1 | 0, 7.99219 |
| lineWidthGranularity | 0 | 0.0078125 |
只有一個驅動程式支援的格式(多了 15 種,少了 6 種)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A8_UNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SSCALED
- B8G8R8_USCALED
- G16_B16R16_2PLANE_420_UNORM
- G16_B16R16_2PLANE_422_UNORM
- G16_B16R16_2PLANE_444_UNORM
- G8_B8R8_2PLANE_444_UNORM
- R64_SINT
- R64_UINT
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G8B8G8R8_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16