Qualcomm_849_adpkg vs Turnip_Gen8_V36
On Adreno (TM) 825 (Nothing Phone (3), OnePlus Nord 6, Oppo K13 Turbo Pro 5G, Poco F7, Poco F7, REDMI Turbo 4 Pro). The first driver named is compared against the second, which is the baseline.
StockTurnip_Gen8_V36
vsCustomQualcomm_849_adpkg
Graphics system version (Vulkan)1.4.359 to 1.4.295
Optional features (extensions)176 to 174+25 -27
Features that pass their check (validated)49 to 441 pass only on Qualcomm_849_adpkg 6 pass only on Turnip_Gen8_V36
Speed test scenes (benchmark)3 faster 1 slower41% faster overall (geometric mean)
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
- hdr_2160p115% faster
- oit_linked_lists65% faster
- pipeline_barriers_2160p6% slower
- subpasses_2160p19% faster
Small areas of the picture differ from the stock driver in 2 scenes (pipeline_barriers: 1712 of 2304 cells, pipeline_barriers_2160p: 1725 of 2304 cells). The picture matches overall, so this is a local rendering fault, not a different scene.
Did not start every time: compute_nbody (stock 0 of 3, custom 3 of 3).
Turnip_Gen8_V36 details Qualcomm_849_adpkg details
Feature checks that differ (24)
| Feature | Turnip_Gen8_V36 | Qualcomm_849_adpkg | Change |
|---|---|---|---|
| extendedDynamicState3ColorBlendEnable | pass | unsupported | lost |
| extendedDynamicState3ColorBlendEquation | pass | unsupported | lost |
| extendedDynamicState3ColorWriteMask | pass | unsupported | lost |
| extendedDynamicState3DepthClampEnable | pass | unsupported | lost |
| extendedDynamicState3LogicOpEnable | pass | unsupported | lost |
| extendedDynamicState3PolygonMode | pass | unsupported | lost |
| core.compute_udiv | fail | pass | gained |
| extendedDynamicState3AlphaToCoverageEnable | untested | unsupported | changed |
| extendedDynamicState3AlphaToOneEnable | untested | unsupported | changed |
| extendedDynamicState3ConservativeRasterizationMode | untested | unsupported | changed |
| extendedDynamicState3DepthClipEnable | untested | unsupported | changed |
| extendedDynamicState3DepthClipNegativeOneToOne | untested | unsupported | changed |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | untested | unsupported | changed |
| extendedDynamicState3LineRasterizationMode | untested | unsupported | changed |
| extendedDynamicState3ProvokingVertexMode | untested | unsupported | changed |
| extendedDynamicState3RasterizationSamples | untested | unsupported | changed |
| extendedDynamicState3RasterizationStream | untested | unsupported | changed |
| extendedDynamicState3SampleLocationsEnable | untested | unsupported | changed |
| extendedDynamicState3SampleMask | untested | unsupported | changed |
| extendedDynamicState3TessellationDomainOrigin | untested | unsupported | changed |
| shaderResourceMinLod | untested | unsupported | changed |
| shaderResourceResidency | untested | unsupported | changed |
| sparseResidency16Samples | unsupported | untested | changed |
| sparseResidencyAliased | untested | unsupported | 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 | Turnip_Gen8_V36 ms | Qualcomm_849_adpkg ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | n/a | 10.13 | only one side | 0 of 3 vs 3 of 3 | ? vs ? | not checked |
| hdr_2160p | 24.17 | 11.23 | 115% faster | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| oit_linked_lists | 28.27 | 17.12 | 65% faster | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| pipeline_barriers | n/a | 2.46 | too light, see pipeline_barriers_2160p | 3 of 3 vs 3 of 3 | ? vs ? | no large difference differs in 1712 small areas |
| pipeline_barriers_2160p | 8.59 | 9.15 | 6% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference differs in 1725 small areas |
| subpasses | 4.70 | 3.97 | too light, see subpasses_2160p | 3 of 3 vs 3 of 3 | ? vs ? | not checked |
| subpasses_2160p | 17.66 | 14.89 | 19% faster | 3 of 3 vs 3 of 3 | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in Qualcomm_849_adpkg (25)
- VK_ANDROID_external_format_resolve
- VK_EXT_astc_decode_mode
- VK_EXT_blend_operation_advanced
- VK_EXT_depth_range_unrestricted
- VK_EXT_device_fault
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_fragment_density_map2
- VK_EXT_image_compression_control_swapchain
- VK_EXT_pipeline_protected_access
- VK_EXT_pipeline_robustness
- VK_EXT_shader_subgroup_ballot
- VK_EXT_subpass_merge_feedback
- VK_KHR_pipeline_binary
- VK_KHR_ray_tracing_position_fetch
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shared_presentable_image
- VK_NV_optical_flow
- VK_QCOM_filter_cubic_weights
- VK_QCOM_image_processing2
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
- VK_QCOM_ycbcr_degamma
Extensions only in Turnip_Gen8_V36 (27)
- VK_AMD_buffer_marker
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_dma_buf
- VK_EXT_fragment_density_map_offset
- VK_EXT_image_drm_format_modifier
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_memory_budget
- VK_EXT_nested_command_buffer
- VK_EXT_primitive_restart_index
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_maintenance7
- VK_KHR_shader_relaxed_extended_instruction
- VK_NV_compute_shader_derivatives
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
Core features that differ (5)
| multiviewGeometryShader | pass to unsupported |
| protectedMemory | unsupported to pass |
| shaderInputAttachmentArrayDynamicIndexing | unsupported to pass |
| shaderInputAttachmentArrayNonUniformIndexing | unsupported to pass |
| pipelineProtectedAccess | unsupported to pass |
Limits that differ (22)
| Limit | Turnip_Gen8_V36 | Qualcomm_849_adpkg |
|---|---|---|
| maxTexelBufferElements | 536870911 | 134217728 |
| bufferImageGranularity | 64 | 1 |
| sparseAddressSpaceSize | 274877906944 | 4294967295 |
| maxPerStageResources | 16777216 | 50331648 |
| maxDescriptorSetUniformBuffersDynamic | 16 | 32 |
| maxDescriptorSetStorageBuffersDynamic | 8 | 16 |
| maxVertexInputAttributeOffset | 4095 | 4096 |
| maxGeometryInputComponents | 64 | 128 |
| maxGeometryOutputVertices | 256 | 1024 |
| maxGeometryTotalOutputComponents | 1024 | 131072 |
| maxFragmentInputComponents | 128 | 112 |
| maxComputeSharedMemorySize | 65536 | 32768 |
| maxComputeWorkGroupInvocations | 2048 | 1024 |
| minMemoryMapAlignment | 4096 | 64 |
| minUniformBufferOffsetAlignment | 64 | 256 |
| minStorageBufferOffsetAlignment | 4 | 64 |
| maxFramebufferLayers | 1024 | 2048 |
| discreteQueuePriorities | 2 | 4 |
| pointSizeRange | 1, 4092 | 1, 4095 |
| optimalBufferCopyOffsetAlignment | 128 | 64 |
| optimalBufferCopyRowPitchAlignment | 128 | 64 |
| nonCoherentAtomSize | 64 | 1 |
Formats supported by only one driver (3 gained, 5 lost)
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G16_B16R16_2PLANE_420_UNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT