Qualcomm Technologies Inc. Adreno Vulkan Driver vs Qualcomm Technologies Inc. Adreno Vulkan Driver
On Adreno (TM) 710 (Motorola moto g stylus, Motorola moto g57 power, POCO X6 5G, POCO X6 5G). The first driver named is compared against the second, which is the baseline.
StockQualcomm Technologies Inc. Adreno Vulkan Driver
vsCustomQualcomm Technologies Inc. Adreno Vulkan Driver
Graphics system version (Vulkan)1.3.284 to 1.1.128
Optional features (extensions)143 to 89+0 -54
Features that pass their check (validated)43 to 350 pass only on Qualcomm Technologies Inc. Adreno Vulkan Driver 8 pass only on Qualcomm Technologies Inc. Adreno Vulkan Driver
Speed test scenes (benchmark)3 faster 2 slower13% slower 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
- compute_nbody20% faster
- hdr_2160p37% faster
- oit_linked_lists8% faster
- pipeline_barriers43% slower
- subpasses51% slower
Qualcomm Technologies Inc. Adreno Vulkan Driver details Qualcomm Technologies Inc. Adreno Vulkan Driver details
Feature checks that differ (14)
| Feature | Stock | Qualcomm Technologies Inc. Adreno Vulkan Driver | Change |
|---|---|---|---|
| borderColorSwizzle | pass | unsupported | lost |
| colorWriteEnable | pass | unsupported | lost |
| depthClipControl | pass | unsupported | lost |
| extendedDynamicState2 | pass | unsupported | lost |
| extendedDynamicState2LogicOp | pass | unsupported | lost |
| inlineUniformBlock | pass | unsupported | lost |
| vertexInputDynamicState | pass | unsupported | lost |
| multiViewport | pass | unsupported | lost |
| borderColorSwizzleFromImage | untested | unsupported | changed |
| extendedDynamicState2PatchControlPoints | untested | unsupported | changed |
| descriptorBindingInlineUniformBlockUpdateAfterBind | untested | unsupported | changed |
| shaderInt64 | untested | unsupported | changed |
| shaderTessellationAndGeometryPointSize | untested | unsupported | changed |
| variableMultisampleRate | 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 | Stock ms | Qualcomm Technologies Inc. Adreno Vulkan Driver ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | 26.84 | 22.40 | 20% faster | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| hdr_2160p | 167.92 | 122.29 | 37% faster | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| oit_linked_lists | 40.17 | 37.16 | 8% faster | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| pipeline_barriers | 11.06 | 19.35 | 43% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| subpasses | 17.38 | 35.33 | 51% slower | 3 of 3 vs 3 of 3 | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in Qualcomm Technologies Inc. Adreno Vulkan Driver (0)
- None
Extensions only in Qualcomm Technologies Inc. Adreno Vulkan Driver (54)
- VK_ANDROID_external_format_resolve
- VK_EXT_4444_formats
- VK_EXT_border_color_swizzle
- VK_EXT_color_write_enable
- VK_EXT_conservative_rasterization
- 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_fault
- VK_EXT_extended_dynamic_state2
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_global_priority_query
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_view_min_lod
- VK_EXT_inline_uniform_block
- VK_EXT_load_store_op_none
- VK_EXT_multi_draw
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_pipeline_protected_access
- VK_EXT_shader_module_identifier
- VK_EXT_shader_subgroup_ballot
- VK_EXT_shader_subgroup_vote
- VK_EXT_shader_viewport_index_layer
- VK_EXT_tooling_info
- VK_EXT_vertex_input_dynamic_state
- 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_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_map_memory2
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_swapchain_mutable_format
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_KHR_zero_initialize_workgroup_memory
- VK_NV_optical_flow
- VK_QCOM_fragment_density_map_offset
- VK_QCOM_multiview_per_view_render_areas
- VK_QCOM_multiview_per_view_viewports
- VK_QCOM_tile_properties
Core features that differ (64)
| multiview | pass to unsupported |
| protectedMemory | pass to unsupported |
| samplerYcbcrConversion | pass to unsupported |
| shaderDrawParameters | pass to unsupported |
| storageBuffer16BitAccess | pass to unsupported |
| variablePointers | pass to unsupported |
| variablePointersStorageBuffer | pass to unsupported |
| bufferDeviceAddress | pass to unsupported |
| bufferDeviceAddressCaptureReplay | 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 |
| drawIndirectCount | pass to unsupported |
| hostQueryReset | pass to unsupported |
| imagelessFramebuffer | pass to unsupported |
| runtimeDescriptorArray | pass to unsupported |
| samplerFilterMinmax | 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 |
| shaderOutputLayer | 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 |
| subgroupBroadcastDynamicId | pass to unsupported |
| timelineSemaphore | 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 (17)
| Limit | Stock | Qualcomm Technologies Inc. Adreno Vulkan Driver |
|---|---|---|
| maxMemoryAllocationCount | 4294967295 | 4096 |
| maxSamplerAllocationCount | 65536 | 4000 |
| maxPerStageDescriptorSamplers | 16777216 | 524288 |
| maxPerStageDescriptorUniformBuffers | 16777216 | 524288 |
| maxPerStageDescriptorStorageBuffers | 16777216 | 524288 |
| maxPerStageDescriptorSampledImages | 16777216 | 524288 |
| maxPerStageDescriptorStorageImages | 16777216 | 524288 |
| maxPerStageResources | 50331648 | 1572864 |
| maxDescriptorSetSamplers | 16777216 | 524288 |
| maxDescriptorSetUniformBuffers | 16777216 | 524288 |
| maxDescriptorSetStorageBuffers | 16777216 | 524288 |
| maxDescriptorSetSampledImages | 16777216 | 524288 |
| maxDescriptorSetStorageImages | 16777216 | 524288 |
| maxFragmentCombinedOutputResources | 33554440 | 72 |
| maxComputeWorkGroupSize | 1024, 1024, 1024 | 1024, 1024, 64 |
| maxViewports | 16 | 1 |
| pointSizeRange | 1, 4095 | 1, 4092 |
Formats supported by only one driver (0 gained, 29 lost)
- None
- A1B5G5R5_UNORM_PACK16
- A2B10G10R10_SSCALED_PACK32
- A2B10G10R10_USCALED_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A4B4G4R4_UNORM_PACK16
- A4R4G4B4_UNORM_PACK16
- A8B8G8R8_SSCALED_PACK32
- A8B8G8R8_USCALED_PACK32
- A8_UNORM
- B8G8R8A8_SINT
- B8G8R8A8_SNORM
- B8G8R8A8_UINT
- R16G16B16A16_SSCALED
- R16G16B16A16_USCALED
- R16G16B16_SSCALED
- R16G16B16_USCALED
- R16G16_SSCALED
- R16G16_USCALED
- R16_SSCALED
- R16_USCALED
- R8G8B8A8_SSCALED
- R8G8B8A8_USCALED
- R8G8B8_SSCALED
- R8G8B8_USCALED
- R8G8_SSCALED
- R8G8_USCALED
- R8_SSCALED
- R8_USCALED