panvk_faux123_rp4pro_v0.14.0 vs Mali-G77
En la Mali-G77 (Infinix GT 10 Pro, Redmi K40 Gaming, Redmi Note 10 Pro, Retroid Pocket 4 Pro, Samsung Galaxy Note20 Ultra, Samsung Galaxy S20 Ultra 5G). El primer driver que se nombra se compara con el segundo, que es la referencia (baseline).
De fábricaMali-G77
vsPersonalizadopanvk_faux123_rp4pro_v0.14.0
Versión del sistema gráfico (Vulkan)1.1.213 a 1.3.354
Funciones opcionales (extensiones)81 a 166+92 -7
Funciones que pasan su comprobación (validadas)28 a 4921 pasan solo en panvk_faux123_rp4pro_v0.14.0 0 pasan solo en Mali-G77
Escenas de la prueba de velocidad (benchmark)2 más rápidas 3 más lentas9% más lento en general (media geométrica)
Juegos que podría mover cada driver (una estimación a partir de su lista de funciones): verde probable, amarillo quizá, naranja limitado, rojo no
De fábricaDX92002+DX102006+DX112009+DX122015+Switch
PersonalizadoDX92002+DX102006+DX112009+DX122015+Switch
- compute_nbody4% más rápido
- hdr_2160p4% más lento
- oit_linked_lists4% más rápido
- pipeline_barriers22% más lento
- subpasses23% más lento
Pequeñas zonas de la imagen difieren del driver de fábrica en 1 escena (pipeline_barriers: 1702 de 2304 celdas). La imagen coincide en general, así que es un fallo de renderizado local, no una escena distinta.
Detalles de Mali-G77 Detalles de panvk_faux123_rp4pro_v0.14.0
Comprobaciones de funciones que difieren (43)
| Función | De fábrica | Personalizado | Cambio |
|---|---|---|---|
| borderColorSwizzle | no admitida | pasa | ganado |
| colorWriteEnable | no admitida | pasa | ganado |
| depthClipControl | no admitida | pasa | ganado |
| extendedDynamicState | no admitida | pasa | ganado |
| extendedDynamicState2 | no admitida | pasa | ganado |
| extendedDynamicState2LogicOp | no admitida | pasa | ganado |
| extendedDynamicState3ColorBlendEnable | no admitida | pasa | ganado |
| extendedDynamicState3ColorBlendEquation | no admitida | pasa | ganado |
| extendedDynamicState3ColorWriteMask | no admitida | pasa | ganado |
| extendedDynamicState3DepthClampEnable | no admitida | pasa | ganado |
| extendedDynamicState3LogicOpEnable | no admitida | pasa | ganado |
| robustBufferAccess2 | no admitida | pasa | ganado |
| vertexInputDynamicState | no admitida | pasa | ganado |
| shaderBufferInt64Atomics | no admitida | pasa | ganado |
| timelineSemaphore | falla | pasa | ganado |
| multiDrawIndirect | no admitida | pasa | ganado |
| multiViewport | no admitida | pasa | ganado |
| textureCompressionBC | no admitida | pasa | ganado |
| push.max_combined_image_samplers | no admitida | pasa | ganado |
| push.max_uniform_buffers | no admitida | pasa | ganado |
| stress.multi_draw_indirect_large | no admitida | pasa | ganado |
| borderColorSwizzleFromImage | no admitida | sin probar | cambió |
| depthBiasControl | no admitida | sin probar | cambió |
| depthBiasExact | no admitida | sin probar | cambió |
| extendedDynamicState3AlphaToCoverageEnable | no admitida | sin probar | cambió |
| extendedDynamicState3DepthClipEnable | no admitida | sin probar | cambió |
| extendedDynamicState3LineRasterizationMode | no admitida | sin probar | cambió |
| extendedDynamicState3RasterizationSamples | no admitida | sin probar | cambió |
| extendedDynamicState3SampleMask | no admitida | sin probar | cambió |
| nullDescriptor | no admitida | sin probar | cambió |
| geometryStreams | no admitida | sin probar | cambió |
| shaderSharedInt64Atomics | no admitida | sin probar | cambió |
| dualSrcBlend | no admitida | sin probar | cambió |
| fillModeNonSolid | no admitida | sin probar | cambió |
| logicOp | no admitida | sin probar | cambió |
| pipelineStatisticsQuery | no admitida | sin probar | cambió |
| shaderClipDistance | no admitida | sin probar | cambió |
| shaderCullDistance | no admitida | sin probar | cambió |
| shaderInt64 | no admitida | sin probar | cambió |
| shaderTessellationAndGeometryPointSize | no admitida | sin probar | cambió |
| variableMultisampleRate | no admitida | sin probar | cambió |
| vertexPipelineStoresAndAtomics | no admitida | sin probar | cambió |
| wideLines | no admitida | sin probar | cambió |
Escenas de la prueba de velocidad (benchmark)
Los dos drivers no se midieron en los mismos modelos de dispositivo. Los tiempos por fotograma de dispositivos distintos no sirven para comparar drivers, así que lee estas cifras con eso en mente.
| Escena | De fábrica ms | Personalizado ms | Diferencia | Arranques | Reloj de la GPU, MHz | Imagen vs de fábrica |
|---|---|---|---|---|---|---|
| compute_nbody | 16.77 | 16.18 | 4% más rápido | 3 de 3 vs 3 de 3 | 800 vs 829 | sin gran diferencia sin diferencia pequeña |
| hdr_2160p | 40.58 | 42.12 | 4% más lento | 3 de 3 vs ? | 800 vs ? | sin comprobar |
| oit_linked_lists | 25.34 | 24.28 | 4% más rápido | 3 de 3 vs 3 de 3 | 800 vs 836 | sin gran diferencia sin diferencia pequeña |
| pipeline_barriers | 8.36 | 10.67 | 22% más lento | 3 de 3 vs 3 de 3 | 800 vs 836 | sin gran diferencia difiere en 1702 zonas pequeñas |
| subpasses | 15.04 | 19.48 | 23% más lento | 3 de 3 vs 3 de 3 | 800 vs 836 | sin comprobar |
Diferencias técnicas (Vulkan)
Extensiones solo en panvk_faux123_rp4pro_v0.14.0 (92)
- 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_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_graphics_pipeline_library
- 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_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_robustness
- VK_EXT_private_data
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- 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_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_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_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
Extensiones solo en Mali-G77 (7)
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_image_compression_control
- VK_EXT_primitives_generated_query
- VK_EXT_rgba10x6_formats
- VK_KHR_shared_presentable_image
Funciones básicas que difieren (65)
| multiview | no admitida a pasa |
| samplerYcbcrConversion | no admitida a pasa |
| shaderDrawParameters | no admitida a pasa |
| storageBuffer16BitAccess | no admitida a pasa |
| storageInputOutput16 | no admitida a pasa |
| storagePushConstant16 | no admitida a pasa |
| uniformAndStorageBuffer16BitAccess | no admitida a pasa |
| variablePointers | no admitida a pasa |
| variablePointersStorageBuffer | no admitida a pasa |
| bufferDeviceAddress | no admitida a pasa |
| descriptorBindingPartiallyBound | no admitida a pasa |
| descriptorBindingSampledImageUpdateAfterBind | no admitida a pasa |
| descriptorBindingStorageBufferUpdateAfterBind | no admitida a pasa |
| descriptorBindingStorageImageUpdateAfterBind | no admitida a pasa |
| descriptorBindingStorageTexelBufferUpdateAfterBind | no admitida a pasa |
| descriptorBindingUniformBufferUpdateAfterBind | no admitida a pasa |
| descriptorBindingUniformTexelBufferUpdateAfterBind | no admitida a pasa |
| descriptorBindingUpdateUnusedWhilePending | no admitida a pasa |
| descriptorBindingVariableDescriptorCount | no admitida a pasa |
| descriptorIndexing | no admitida a pasa |
| drawIndirectCount | no admitida a pasa |
| hostQueryReset | no admitida a pasa |
| imagelessFramebuffer | no admitida a pasa |
| runtimeDescriptorArray | no admitida a pasa |
| samplerMirrorClampToEdge | no admitida a pasa |
| scalarBlockLayout | no admitida a pasa |
| separateDepthStencilLayouts | no admitida a pasa |
| shaderBufferInt64Atomics | no admitida a pasa |
| shaderInputAttachmentArrayDynamicIndexing | no admitida a pasa |
| shaderInputAttachmentArrayNonUniformIndexing | no admitida a pasa |
| shaderInt8 | no admitida a pasa |
| shaderSampledImageArrayNonUniformIndexing | no admitida a pasa |
| shaderSharedInt64Atomics | no admitida a pasa |
| shaderStorageBufferArrayNonUniformIndexing | no admitida a pasa |
| shaderStorageImageArrayNonUniformIndexing | no admitida a pasa |
| shaderStorageTexelBufferArrayDynamicIndexing | no admitida a pasa |
| shaderStorageTexelBufferArrayNonUniformIndexing | no admitida a pasa |
| shaderSubgroupExtendedTypes | no admitida a pasa |
| shaderUniformBufferArrayNonUniformIndexing | no admitida a pasa |
| shaderUniformTexelBufferArrayDynamicIndexing | no admitida a pasa |
| shaderUniformTexelBufferArrayNonUniformIndexing | no admitida a pasa |
| storageBuffer8BitAccess | no admitida a pasa |
| storagePushConstant8 | no admitida a pasa |
| subgroupBroadcastDynamicId | no admitida a pasa |
| timelineSemaphore | no admitida a pasa |
| uniformAndStorageBuffer8BitAccess | no admitida a pasa |
| uniformBufferStandardLayout | no admitida a pasa |
| vulkanMemoryModel | no admitida a pasa |
| vulkanMemoryModelAvailabilityVisibilityChains | no admitida a pasa |
| vulkanMemoryModelDeviceScope | no admitida a pasa |
| computeFullSubgroups | no admitida a pasa |
| descriptorBindingInlineUniformBlockUpdateAfterBind | no admitida a pasa |
| dynamicRendering | no admitida a pasa |
| inlineUniformBlock | no admitida a pasa |
| maintenance4 | no admitida a pasa |
| pipelineCreationCacheControl | no admitida a pasa |
| privateData | no admitida a pasa |
| robustImageAccess | no admitida a pasa |
| shaderDemoteToHelperInvocation | no admitida a pasa |
| shaderIntegerDotProduct | no admitida a pasa |
| shaderTerminateInvocation | no admitida a pasa |
| shaderZeroInitializeWorkgroupMemory | no admitida a pasa |
| subgroupSizeControl | no admitida a pasa |
| synchronization2 | no admitida a pasa |
| textureCompressionASTC_HDR | no admitida a pasa |
Límites que difieren (47)
| Límite | De fábrica | Personalizado |
|---|---|---|
| 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 | 1 | 64 |
| 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 |
| maxGeometryOutputVertices | 256 | 1024 |
| maxGeometryTotalOutputComponents | 2048 | 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 | 38.4615 | 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 |
Formatos admitidos por un solo driver (25 ganados, 6 perdidos)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A8_UNORM
- 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
- 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_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