malisx2-0.2.3-b85d5f7f36 對比 Mali-G52 MC2
在 Mali-G52 MC2 上 (HONOR X5c, HONOR X5c, Infinix HOT 60i, Oppo A18, Oppo A38, realme RMX3710, Redmi 12, Redmi 12C, Redmi 14C, Redmi 15C, TECNO POVA 3, TECNO SPARK 20, Xiaomi 24049RN28L). 先列出的驅動程式與後一個對比,後一個是基準。
原廠Mali-G52 MC2
對比自訂malisx2-0.2.3-b85d5f7f36
圖形系統版本(Vulkan)1.3.278 → 1.1.363
可選功能(擴充功能)131 → 15+2 -118
通過檢測的功能(已驗證)34 → 222 個僅在 malisx2-0.2.3-b85d5f7f36 上通過 14 個僅在 Mali-G52 MC2 上通過
跑分測試場景(基準測試)沒有共同場景
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
Mali-G52 MC2 詳情 malisx2-0.2.3-b85d5f7f36 詳情
結果不同的功能檢測(30)
| 功能 | 原廠 | 自訂 | 變化 |
|---|---|---|---|
| borderColorSwizzle | 通過 | 不支援 | 減少 |
| customBorderColors | 通過 | 不支援 | 減少 |
| extendedDynamicState | 通過 | 不支援 | 減少 |
| extendedDynamicState2 | 通過 | 不支援 | 減少 |
| inlineUniformBlock | 通過 | 不支援 | 減少 |
| transformFeedback | 通過 | 不支援 | 減少 |
| vertexInputDynamicState | 通過 | 不支援 | 減少 |
| shaderBufferInt64Atomics | 通過 | 不支援 | 減少 |
| timelineSemaphore | 通過 | 不支援 | 減少 |
| drawIndirectFirstInstance | 通過 | 不支援 | 減少 |
| geometryShader | 通過 | 不支援 | 減少 |
| occlusionQueryPrecise | 通過 | 失敗 | 減少 |
| tessellationShader | 通過 | 不支援 | 減少 |
| core.msaa_resolve | 通過 | 失敗 | 減少 |
| push.max_combined_image_samplers | 不支援 | 通過 | 新增 |
| push.max_uniform_buffers | 不支援 | 通過 | 新增 |
| borderColorSwizzleFromImage | 未檢測 | 不支援 | 有變化 |
| customBorderColorWithoutFormat | 未檢測 | 不支援 | 有變化 |
| extendedDynamicState2PatchControlPoints | 未檢測 | 不支援 | 有變化 |
| extendedDynamicState3LineRasterizationMode | 未檢測 | 不支援 | 有變化 |
| extendedDynamicState3ProvokingVertexMode | 未檢測 | 不支援 | 有變化 |
| extendedDynamicState3SampleMask | 未檢測 | 不支援 | 有變化 |
| extendedDynamicState3TessellationDomainOrigin | 未檢測 | 不支援 | 有變化 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 未檢測 | 不支援 | 有變化 |
| shaderSharedInt64Atomics | 未檢測 | 不支援 | 有變化 |
| depthClamp | 不支援 | 未檢測 | 有變化 |
| logicOp | 未檢測 | 不支援 | 有變化 |
| shaderClipDistance | 不支援 | 未檢測 | 有變化 |
| shaderInt64 | 未檢測 | 不支援 | 有變化 |
| wideLines | 未檢測 | 不支援 | 有變化 |
跑分測試場景(基準測試)
兩個驅動程式不是在同一批裝置型號上測的。不同裝置的幀時間不能用來比較驅動程式,看這些資料時請記住這一點。
| 場景 | 原廠 ms | 自訂 ms | 差異 | 啟動次數 | GPU 頻率,MHz | 畫面對比原廠 |
|---|---|---|---|---|---|---|
| compute_nbody | n/a | 103.07 | 僅一側有 | ? 對比 3 / 3 | ? 對比 ? | 未檢測 |
| oit_linked_lists | n/a | 73.68 | 僅一側有 | ? 對比 3 / 3 | ? 對比 ? | 未檢測 |
| pipeline_barriers | n/a | 86.77 | 僅一側有 | ? 對比 3 / 3 | ? 對比 ? | 未檢測 |
技術差異(Vulkan)
僅 malisx2-0.2.3-b85d5f7f36 有的擴充功能(2)
- VK_EXT_memory_budget
- VK_KHR_push_descriptor
僅 Mali-G52 MC2 有的擴充功能(118)
- VK_ANDROID_external_format_resolve
- VK_ANDROID_external_memory_android_hardware_buffer
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_4444_formats
- VK_EXT_astc_decode_mode
- VK_EXT_border_color_swizzle
- VK_EXT_calibrated_timestamps
- VK_EXT_custom_border_color
- VK_EXT_debug_marker
- VK_EXT_device_address_binding_report
- VK_EXT_device_memory_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_external_memory_dma_buf
- VK_EXT_frame_boundary
- VK_EXT_global_priority
- VK_EXT_global_priority_query
- VK_EXT_host_query_reset
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_compression_control
- VK_EXT_image_compression_control_swapchain
- VK_EXT_image_drm_format_modifier
- VK_EXT_image_robustness
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_index_type_uint8
- VK_EXT_inline_uniform_block
- VK_EXT_legacy_dithering
- VK_EXT_load_store_op_none
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- VK_EXT_pipeline_protected_access
- VK_EXT_pipeline_robustness
- VK_EXT_primitive_topology_list_restart
- VK_EXT_primitives_generated_query
- VK_EXT_private_data
- VK_EXT_queue_family_foreign
- VK_EXT_rgba10x6_formats
- VK_EXT_scalar_block_layout
- VK_EXT_separate_stencil_usage
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_subgroup_ballot
- VK_EXT_shader_subgroup_vote
- VK_EXT_shader_tile_image
- VK_EXT_subgroup_size_control
- VK_EXT_subpass_merge_feedback
- VK_EXT_texel_buffer_alignment
- VK_EXT_texture_compression_astc_hdr
- VK_EXT_tooling_info
- VK_EXT_transform_feedback
- VK_EXT_vertex_input_dynamic_state
- VK_GOOGLE_decorate_string
- VK_GOOGLE_user_type
- VK_KHR_16bit_storage
- VK_KHR_8bit_storage
- VK_KHR_bind_memory2
- VK_KHR_buffer_device_address
- VK_KHR_calibrated_timestamps
- VK_KHR_copy_commands2
- VK_KHR_create_renderpass2
- VK_KHR_dedicated_allocation
- VK_KHR_depth_stencil_resolve
- VK_KHR_descriptor_update_template
- VK_KHR_device_group
- VK_KHR_dynamic_rendering
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_external_fence
- VK_KHR_external_memory
- VK_KHR_external_memory_fd
- VK_KHR_external_semaphore
- VK_KHR_format_feature_flags2
- VK_KHR_get_memory_requirements2
- VK_KHR_global_priority
- VK_KHR_image_format_list
- VK_KHR_imageless_framebuffer
- VK_KHR_index_type_uint8
- VK_KHR_load_store_op_none
- VK_KHR_maintenance1
- VK_KHR_maintenance2
- VK_KHR_maintenance3
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_map_memory2
- VK_KHR_multiview
- VK_KHR_relaxed_block_layout
- VK_KHR_sampler_mirror_clamp_to_edge
- VK_KHR_sampler_ycbcr_conversion
- VK_KHR_separate_depth_stencil_layouts
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_draw_parameters
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float16_int8
- VK_KHR_shader_float_controls
- VK_KHR_shader_float_controls2
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_quad_control
- VK_KHR_shader_subgroup_extended_types
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_terminate_invocation
- VK_KHR_shared_presentable_image
- VK_KHR_spirv_1_4
- VK_KHR_storage_buffer_storage_class
- VK_KHR_synchronization2
- VK_KHR_timeline_semaphore
- VK_KHR_uniform_buffer_standard_layout
- VK_KHR_variable_pointers
- VK_KHR_vertex_attribute_divisor
- VK_KHR_vulkan_memory_model
- VK_KHR_zero_initialize_workgroup_memory
不同的核心功能(45)
| multiview | 通過 → 不支援 |
| samplerYcbcrConversion | 通過 → 不支援 |
| shaderDrawParameters | 通過 → 不支援 |
| storageBuffer16BitAccess | 通過 → 不支援 |
| storageInputOutput16 | 通過 → 不支援 |
| storagePushConstant16 | 通過 → 不支援 |
| uniformAndStorageBuffer16BitAccess | 通過 → 不支援 |
| variablePointers | 通過 → 不支援 |
| variablePointersStorageBuffer | 通過 → 不支援 |
| bufferDeviceAddress | 通過 → 不支援 |
| hostQueryReset | 通過 → 不支援 |
| imagelessFramebuffer | 通過 → 不支援 |
| samplerMirrorClampToEdge | 通過 → 不支援 |
| scalarBlockLayout | 通過 → 不支援 |
| separateDepthStencilLayouts | 通過 → 不支援 |
| shaderBufferInt64Atomics | 通過 → 不支援 |
| shaderFloat16 | 通過 → 不支援 |
| shaderInt8 | 通過 → 不支援 |
| shaderOutputViewportIndex | 通過 → 不支援 |
| shaderSharedInt64Atomics | 通過 → 不支援 |
| shaderSubgroupExtendedTypes | 通過 → 不支援 |
| 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 | 通過 → 不支援 |
不同的限制(45)
| 限制 | 原廠 | 自訂 |
|---|---|---|
| maxSamplerAllocationCount | 4294967295 | 4000 |
| maxPerStageDescriptorUniformBuffers | 241 | 223 |
| maxPerStageDescriptorStorageBuffers | 35 | 64 |
| maxPerStageDescriptorSampledImages | 256 | 208 |
| maxPerStageDescriptorStorageImages | 21 | 32 |
| maxPerStageResources | 570 | 664 |
| maxDescriptorSetSamplers | 768 | 65535 |
| maxDescriptorSetUniformBuffers | 1446 | 223 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 210 | 4096 |
| maxDescriptorSetStorageBuffersDynamic | 32 | 8 |
| maxDescriptorSetSampledImages | 1536 | 65535 |
| maxDescriptorSetStorageImages | 126 | 256 |
| maxVertexInputAttributes | 32 | 16 |
| maxVertexInputBindings | 32 | 16 |
| maxVertexInputAttributeOffset | 2047 | 4294967295 |
| maxVertexInputBindingStride | 2048 | 65535 |
| maxTessellationGenerationLevel | 64 | 0 |
| maxTessellationPatchSize | 32 | 0 |
| maxTessellationControlPerVertexInputComponents | 128 | 0 |
| maxTessellationControlPerVertexOutputComponents | 128 | 0 |
| maxTessellationControlPerPatchOutputComponents | 120 | 0 |
| maxTessellationControlTotalOutputComponents | 4096 | 0 |
| maxTessellationEvaluationInputComponents | 128 | 0 |
| maxTessellationEvaluationOutputComponents | 128 | 0 |
| maxGeometryShaderInvocations | 32 | 0 |
| maxGeometryInputComponents | 128 | 0 |
| maxGeometryOutputComponents | 128 | 0 |
| maxGeometryOutputVertices | 256 | 0 |
| maxGeometryTotalOutputComponents | 2048 | 0 |
| maxFragmentDualSrcAttachments | 8 | 1 |
| maxFragmentCombinedOutputResources | 64 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxInterpolationOffset | 0.4375 | 0.5 |
| framebufferColorSampleCounts | 5 | 29 |
| framebufferDepthSampleCounts | 5 | 29 |
| framebufferStencilSampleCounts | 5 | 29 |
| sampledImageColorSampleCounts | 5 | 29 |
| sampledImageIntegerSampleCounts | 5 | 29 |
| sampledImageDepthSampleCounts | 5 | 29 |
| sampledImageStencilSampleCounts | 5 | 29 |
| maxClipDistances | 0 | 8 |
| maxCombinedClipAndCullDistances | 0 | 8 |
| lineWidthRange | 1, 4095.94 | 1, 1 |
| lineWidthGranularity | 0.0625 | 0 |
只有一個驅動程式支援的格式(多了 11 種,少了 34 種)
- A2R10G10B10_SNORM_PACK32
- BC1_RGBA_SRGB_BLOCK
- BC1_RGBA_UNORM_BLOCK
- BC1_RGB_SRGB_BLOCK
- BC1_RGB_UNORM_BLOCK
- BC2_SRGB_BLOCK
- BC2_UNORM_BLOCK
- BC3_SRGB_BLOCK
- BC3_UNORM_BLOCK
- R10X6G10X6_UNORM_2PACK16
- R10X6_UNORM_PACK16
- A1B5G5R5_UNORM_PACK16
- A4B4G4R4_UNORM_PACK16
- A4R4G4B4_UNORM_PACK16
- A8_UNORM
- ASTC_10x10_SFLOAT_BLOCK
- ASTC_10x5_SFLOAT_BLOCK
- ASTC_10x6_SFLOAT_BLOCK
- ASTC_10x8_SFLOAT_BLOCK
- ASTC_12x10_SFLOAT_BLOCK
- ASTC_12x12_SFLOAT_BLOCK
- ASTC_4x4_SFLOAT_BLOCK
- ASTC_5x4_SFLOAT_BLOCK
- ASTC_5x5_SFLOAT_BLOCK
- ASTC_6x5_SFLOAT_BLOCK
- ASTC_6x6_SFLOAT_BLOCK
- ASTC_8x5_SFLOAT_BLOCK
- ASTC_8x6_SFLOAT_BLOCK
- ASTC_8x8_SFLOAT_BLOCK
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G8B8G8R8_422_UNORM
- G8_B8R8_2PLANE_420_UNORM
- G8_B8R8_2PLANE_422_UNORM
- G8_B8_R8_3PLANE_420_UNORM
- G8_B8_R8_3PLANE_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16
- R64_SINT
- R64_UINT