Mali-G78 vs Mali-G78
On Mali-G78 (Samsung Galaxy S21 5G, Samsung Galaxy S22). The first driver named is compared against the second, which is the baseline.
StockMali-G78
vsCustomMali-G78
Graphics system version (Vulkan)1.3.213 to 1.1.213
Optional features (extensions)95 to 81+0 -14
Features that pass their check (validated)29 to 280 pass only on Mali-G78 1 pass only on Mali-G78
Speed test scenes (benchmark)no shared scenes
Games each driver could run (an estimate from its feature list): green likely, yellow maybe, orange limited, red no
StockDX92002+DX102006+DX112009+DX122015+Switch
CustomDX92002+DX102006+DX112009+DX122015+Switch
Mali-G78 details Mali-G78 details
Feature checks that differ (3)
| Feature | Stock | Mali-G78 | Change |
|---|---|---|---|
| extendedDynamicState2 | pass | unsupported | lost |
| extendedDynamicState | crash | unsupported | changed |
| extendedDynamicState2PatchControlPoints | untested | unsupported | changed |
Speed test scenes (benchmark)
Neither driver has a valid speed test (benchmark report) yet.
Technical differences (Vulkan)
Extensions only in Mali-G78 (0)
- None
Extensions only in Mali-G78 (14)
- VK_EXT_device_memory_report
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_private_data
- VK_KHR_copy_commands2
- VK_KHR_dynamic_rendering
- VK_KHR_format_feature_flags2
- VK_KHR_global_priority
- VK_KHR_maintenance4
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_terminate_invocation
- VK_KHR_swapchain_mutable_format
- VK_KHR_synchronization2
- VK_KHR_zero_initialize_workgroup_memory
Core features that differ (65)
| multiview | pass to unsupported |
| protectedMemory | pass to unsupported |
| samplerYcbcrConversion | pass to unsupported |
| shaderDrawParameters | pass to unsupported |
| storageBuffer16BitAccess | pass to unsupported |
| storageInputOutput16 | pass to unsupported |
| storagePushConstant16 | pass to unsupported |
| uniformAndStorageBuffer16BitAccess | pass to unsupported |
| variablePointers | pass to unsupported |
| variablePointersStorageBuffer | pass to unsupported |
| bufferDeviceAddress | pass to unsupported |
| descriptorBindingPartiallyBound | pass to unsupported |
| descriptorBindingSampledImageUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageImageUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageTexelBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUniformBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUniformTexelBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUpdateUnusedWhilePending | pass to unsupported |
| descriptorBindingVariableDescriptorCount | pass to unsupported |
| descriptorIndexing | pass to unsupported |
| hostQueryReset | pass to unsupported |
| imagelessFramebuffer | pass to unsupported |
| runtimeDescriptorArray | pass to unsupported |
| samplerMirrorClampToEdge | pass to unsupported |
| scalarBlockLayout | pass to unsupported |
| separateDepthStencilLayouts | pass to unsupported |
| shaderFloat16 | pass to unsupported |
| shaderInputAttachmentArrayDynamicIndexing | pass to unsupported |
| shaderInputAttachmentArrayNonUniformIndexing | pass to unsupported |
| shaderInt8 | pass to unsupported |
| shaderOutputViewportIndex | pass to unsupported |
| shaderSampledImageArrayNonUniformIndexing | pass to unsupported |
| shaderStorageBufferArrayNonUniformIndexing | pass to unsupported |
| shaderStorageImageArrayNonUniformIndexing | pass to unsupported |
| shaderStorageTexelBufferArrayDynamicIndexing | pass to unsupported |
| shaderStorageTexelBufferArrayNonUniformIndexing | pass to unsupported |
| shaderSubgroupExtendedTypes | pass to unsupported |
| shaderUniformBufferArrayNonUniformIndexing | pass to unsupported |
| shaderUniformTexelBufferArrayDynamicIndexing | pass to unsupported |
| shaderUniformTexelBufferArrayNonUniformIndexing | pass to unsupported |
| storageBuffer8BitAccess | pass to unsupported |
| storagePushConstant8 | pass to unsupported |
| subgroupBroadcastDynamicId | pass to unsupported |
| timelineSemaphore | pass to unsupported |
| uniformAndStorageBuffer8BitAccess | pass to unsupported |
| uniformBufferStandardLayout | pass to unsupported |
| vulkanMemoryModel | pass to unsupported |
| vulkanMemoryModelAvailabilityVisibilityChains | pass to unsupported |
| vulkanMemoryModelDeviceScope | pass to unsupported |
| computeFullSubgroups | pass to unsupported |
| descriptorBindingInlineUniformBlockUpdateAfterBind | pass to unsupported |
| dynamicRendering | pass to unsupported |
| inlineUniformBlock | pass to unsupported |
| maintenance4 | pass to unsupported |
| pipelineCreationCacheControl | pass to unsupported |
| privateData | pass to unsupported |
| robustImageAccess | pass to unsupported |
| shaderDemoteToHelperInvocation | pass to unsupported |
| shaderIntegerDotProduct | pass to unsupported |
| shaderTerminateInvocation | pass to unsupported |
| shaderZeroInitializeWorkgroupMemory | pass to unsupported |
| subgroupSizeControl | pass to unsupported |
| synchronization2 | pass to unsupported |
| textureCompressionASTC_HDR | pass to unsupported |
Limits that differ (0)
| Limit | Stock | Mali-G78 |
|---|
Formats supported by only one driver (0 gained, 0 lost)
- None
- None