panvk_faux123_v1.1.2 vs panvk_faux123_ace_v0.39.0
On Mali-G1-Ultra MC12 (Infinix HOT 50 Pro, Infinix NOTE 30, Infinix NOTE 40 Pro, itel RS4, Oppo A6 5G, Oppo A6t 5G, Oppo Find X9s Pro, realme RMX5111, REDMI 15C 5G, Redmi Note 10 5G, Redmi Note 13 5G, Redmi Note 13 Pro, Redmi Pad 2, Samsung Galaxy A07, Samsung Galaxy A07, Samsung Galaxy A15 5G, Samsung Galaxy A16, TCL 50 XE 5G). The first driver named is compared against the second, which is the baseline.
Stockpanvk_faux123_ace_v0.39.0
vsCustompanvk_faux123_v1.1.2
Graphics system version (Vulkan)1.1.363 to 1.3.363
Optional features (extensions)170 to 178+8 -0
Features that pass their check (validated)38 to 6830 pass only on panvk_faux123_v1.1.2 0 pass only on panvk_faux123_ace_v0.39.0
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
panvk_faux123_ace_v0.39.0 details panvk_faux123_v1.1.2 details
Feature checks that differ (41)
| Feature | panvk_faux123_ace_v0.39.0 | panvk_faux123_v1.1.2 | Change |
|---|---|---|---|
| robustBufferAccess2 | unsupported | pass | gained |
| robustImageAccess2 | unsupported | pass | gained |
| transformFeedback | unsupported | pass | gained |
| depthClamp | untested | pass | gained |
| drawIndirectFirstInstance | fail | pass | gained |
| geometryShader | unsupported | pass | gained |
| largePoints | untested | pass | gained |
| multiDrawIndirect | unsupported | pass | gained |
| multiViewport | unsupported | pass | gained |
| tessellationShader | unsupported | pass | gained |
| textureCompressionBC | unsupported | pass | gained |
| compat.helper_loop_terminator | untested | pass | gained |
| compat.nested_map | untested | pass | gained |
| core.blend_advertised_formats | untested | pass | gained |
| core.compute_big_stack | untested | pass | gained |
| core.host_coherent_readback | untested | pass | gained |
| core.mrt_partial_kill | untested | pass | gained |
| core.resubmit_command_buffer | fail | pass | gained |
| core.ubo_update_buffer | untested | pass | gained |
| core.ubo_written_after_record | untested | pass | gained |
| core.varying_subset | untested | pass | gained |
| mem.image_padding | untested | pass | gained |
| perf.fb_local_barrier_large_draws | untested | pass | gained |
| perf.fb_local_barrier_overdraw | untested | pass | gained |
| stage.geometry_max_output | untested | pass | gained |
| stage.geometry_point_size | untested | pass | gained |
| stress.multi_draw_indirect_large | unsupported | pass | gained |
| stress.scratch_per_batch | untested | pass | gained |
| stress.submit_memory | fail | pass | gained |
| sync.first_submit_clear_then_compute | untested | pass | gained |
| extendedDynamicState2PatchControlPoints | unsupported | untested | changed |
| nullDescriptor | unsupported | untested | changed |
| geometryStreams | unsupported | untested | changed |
| depthBounds | unsupported | untested | changed |
| fillModeNonSolid | unsupported | untested | changed |
| pipelineStatisticsQuery | unsupported | untested | changed |
| shaderClipDistance | unsupported | untested | changed |
| shaderCullDistance | unsupported | untested | changed |
| shaderTessellationAndGeometryPointSize | unsupported | untested | changed |
| variableMultisampleRate | unsupported | untested | changed |
| vertexPipelineStoresAndAtomics | unsupported | untested | changed |
Speed test scenes (benchmark)
The two drivers were not measured on the same set of device models. Frame times from different devices do not compare drivers, so read these numbers with that in mind.
| Scene | panvk_faux123_ace_v0.39.0 ms | panvk_faux123_v1.1.2 ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | n/a | 47.41 | only one side | 0 of 3 vs 3 of 3 | ? vs ? | not checked |
| hdr_2160p | n/a | 115.87 | only one side | 0 of 3 vs 3 of 3 | ? vs ? | not checked |
| oit_linked_lists | n/a | 31.03 | only one side | 0 of 3 vs 3 of 3 | ? vs ? | not checked |
| pipeline_barriers | n/a | 25.90 | only one side | 0 of 3 vs 3 of 3 | ? vs ? | not checked |
| subpasses | n/a | 69.94 | only one side | 0 of 3 vs 3 of 3 | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in panvk_faux123_v1.1.2 (8)
- VK_EXT_conditional_rendering
- VK_EXT_primitives_generated_query
- VK_EXT_robustness2
- VK_EXT_transform_feedback
- VK_KHR_depth_clamp_zero_one
- VK_KHR_draw_indirect_count
- VK_KHR_pipeline_binary
- VK_KHR_robustness2
Extensions only in panvk_faux123_ace_v0.39.0 (0)
- None
Core features that differ (67)
| multiview | unsupported to pass |
| samplerYcbcrConversion | unsupported to pass |
| shaderDrawParameters | unsupported to pass |
| storageBuffer16BitAccess | unsupported to pass |
| storageInputOutput16 | unsupported to pass |
| storagePushConstant16 | unsupported to pass |
| uniformAndStorageBuffer16BitAccess | unsupported to pass |
| variablePointers | unsupported to pass |
| variablePointersStorageBuffer | unsupported to pass |
| bufferDeviceAddress | unsupported to pass |
| descriptorBindingPartiallyBound | unsupported to pass |
| descriptorBindingSampledImageUpdateAfterBind | unsupported to pass |
| descriptorBindingStorageBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingStorageImageUpdateAfterBind | unsupported to pass |
| descriptorBindingStorageTexelBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingUniformBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingUniformTexelBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingUpdateUnusedWhilePending | unsupported to pass |
| descriptorBindingVariableDescriptorCount | unsupported to pass |
| descriptorIndexing | unsupported to pass |
| drawIndirectCount | unsupported to pass |
| hostQueryReset | unsupported to pass |
| imagelessFramebuffer | unsupported to pass |
| runtimeDescriptorArray | unsupported to pass |
| samplerMirrorClampToEdge | unsupported to pass |
| scalarBlockLayout | unsupported to pass |
| separateDepthStencilLayouts | unsupported to pass |
| shaderBufferInt64Atomics | unsupported to pass |
| shaderFloat16 | unsupported to pass |
| shaderInputAttachmentArrayDynamicIndexing | unsupported to pass |
| shaderInputAttachmentArrayNonUniformIndexing | unsupported to pass |
| shaderInt8 | unsupported to pass |
| shaderOutputViewportIndex | unsupported to pass |
| shaderSampledImageArrayNonUniformIndexing | unsupported to pass |
| shaderSharedInt64Atomics | unsupported to pass |
| shaderStorageBufferArrayNonUniformIndexing | unsupported to pass |
| shaderStorageImageArrayNonUniformIndexing | unsupported to pass |
| shaderStorageTexelBufferArrayDynamicIndexing | unsupported to pass |
| shaderStorageTexelBufferArrayNonUniformIndexing | unsupported to pass |
| shaderSubgroupExtendedTypes | unsupported to pass |
| shaderUniformBufferArrayNonUniformIndexing | unsupported to pass |
| shaderUniformTexelBufferArrayDynamicIndexing | unsupported to pass |
| shaderUniformTexelBufferArrayNonUniformIndexing | unsupported to pass |
| storageBuffer8BitAccess | unsupported to pass |
| storagePushConstant8 | unsupported to pass |
| subgroupBroadcastDynamicId | unsupported to pass |
| timelineSemaphore | unsupported to pass |
| uniformAndStorageBuffer8BitAccess | unsupported to pass |
| uniformBufferStandardLayout | unsupported to pass |
| vulkanMemoryModel | unsupported to pass |
| vulkanMemoryModelAvailabilityVisibilityChains | unsupported to pass |
| vulkanMemoryModelDeviceScope | unsupported to pass |
| computeFullSubgroups | unsupported to pass |
| descriptorBindingInlineUniformBlockUpdateAfterBind | unsupported to pass |
| dynamicRendering | unsupported to pass |
| inlineUniformBlock | unsupported to pass |
| maintenance4 | unsupported to pass |
| pipelineCreationCacheControl | unsupported to pass |
| privateData | unsupported to pass |
| robustImageAccess | unsupported to pass |
| shaderDemoteToHelperInvocation | unsupported to pass |
| shaderIntegerDotProduct | unsupported to pass |
| shaderTerminateInvocation | unsupported to pass |
| shaderZeroInitializeWorkgroupMemory | unsupported to pass |
| subgroupSizeControl | unsupported to pass |
| synchronization2 | unsupported to pass |
| textureCompressionASTC_HDR | unsupported to pass |
Limits that differ (20)
| Limit | panvk_faux123_ace_v0.39.0 | panvk_faux123_v1.1.2 |
|---|---|---|
| maxTessellationGenerationLevel | 0 | 64 |
| maxTessellationPatchSize | 0 | 32 |
| maxTessellationControlPerVertexInputComponents | 0 | 128 |
| maxTessellationControlPerVertexOutputComponents | 0 | 128 |
| maxTessellationControlPerPatchOutputComponents | 0 | 120 |
| maxTessellationControlTotalOutputComponents | 0 | 4096 |
| maxTessellationEvaluationInputComponents | 0 | 128 |
| maxTessellationEvaluationOutputComponents | 0 | 128 |
| maxGeometryShaderInvocations | 0 | 64 |
| maxGeometryInputComponents | 0 | 128 |
| maxGeometryOutputComponents | 0 | 128 |
| maxGeometryOutputVertices | 0 | 1024 |
| maxGeometryTotalOutputComponents | 0 | 1024 |
| maxDrawIndirectCount | 1 | 65535 |
| maxViewports | 1 | 16 |
| timestampComputeAndGraphics | 0 | 1 |
| timestampPeriod | 0 | 76.9231 |
| maxClipDistances | 0 | 8 |
| maxCullDistances | 0 | 8 |
| maxCombinedClipAndCullDistances | 0 | 8 |
Formats supported by only one driver (10 gained, 0 lost)
- BC4_SNORM_BLOCK
- BC4_UNORM_BLOCK
- BC5_SNORM_BLOCK
- BC5_UNORM_BLOCK
- BC6H_SFLOAT_BLOCK
- BC6H_UFLOAT_BLOCK
- BC7_SRGB_BLOCK
- BC7_UNORM_BLOCK
- G16_B16R16_2PLANE_444_UNORM
- G8_B8R8_2PLANE_444_UNORM
- None