Turnip_Gen8_V38 vs Qualcomm Technologies Inc. Adreno Vulkan Driver
On Adreno (TM) 840 (HONOR Magic8 pro, iQOO 15, LENOVO TB324ZC, nubia NX809J, OnePlus 15, POCO F8 Ultra, POCO F9 Ultra, realme RMX5210, Samsung Galaxy S26, Samsung Galaxy S26, Samsung Galaxy S26 Ultra, Samsung Galaxy S26 Ultra, Samsung Galaxy S26 Ultra, Samsung Galaxy Z Fold8, Samsung Galaxy Z Fold8 Ultra, Xiaomi 17, Xiaomi 2512BPNDAG). The first driver named is compared against the second, which is the baseline.
- compute_nbody_2x25% slower
- hdr_2160p27% slower
- oit_linked_lists12% slower
- pipeline_barriers_2160p24% slower
Small areas of the picture differ from the stock driver in 2 scenes (pipeline_barriers: 1605 of 2304 cells, pipeline_barriers_2160p: 1207 of 2304 cells). The picture matches overall, so this is a local rendering fault, not a different scene.
Qualcomm Technologies Inc. Adreno Vulkan Driver details Turnip_Gen8_V38 details
Feature checks that differ (28)
| Feature | Stock | Custom | Change |
|---|---|---|---|
| compat.nested_map | pass | crash | lost |
| core.compute_udiv | pass | fail | lost |
| extendedDynamicState3ColorBlendEnable | unsupported | pass | gained |
| extendedDynamicState3ColorBlendEquation | unsupported | pass | gained |
| extendedDynamicState3ColorWriteMask | unsupported | pass | gained |
| extendedDynamicState3DepthClampEnable | unsupported | pass | gained |
| extendedDynamicState3LogicOpEnable | unsupported | pass | gained |
| extendedDynamicState3PolygonMode | unsupported | pass | gained |
| depthClamp | untested | pass | gained |
| largePoints | untested | pass | gained |
| extendedDynamicState3AlphaToCoverageEnable | unsupported | untested | changed |
| extendedDynamicState3AlphaToOneEnable | unsupported | untested | changed |
| extendedDynamicState3ConservativeRasterizationMode | unsupported | untested | changed |
| extendedDynamicState3DepthClipEnable | unsupported | untested | changed |
| extendedDynamicState3DepthClipNegativeOneToOne | unsupported | untested | changed |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | unsupported | untested | changed |
| extendedDynamicState3LineRasterizationMode | unsupported | untested | changed |
| extendedDynamicState3ProvokingVertexMode | unsupported | untested | changed |
| extendedDynamicState3RasterizationSamples | unsupported | untested | changed |
| extendedDynamicState3RasterizationStream | unsupported | untested | changed |
| extendedDynamicState3SampleLocationsEnable | unsupported | untested | changed |
| extendedDynamicState3SampleMask | unsupported | untested | changed |
| extendedDynamicState3TessellationDomainOrigin | unsupported | untested | changed |
| shaderSharedInt64Atomics | untested | unsupported | changed |
| shaderResourceMinLod | unsupported | untested | changed |
| shaderResourceResidency | unsupported | untested | changed |
| sparseResidency16Samples | untested | unsupported | changed |
| sparseResidencyAliased | 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 | Stock ms | Custom ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | 8.12 | n/a | too light, see compute_nbody_2x | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| compute_nbody_2x | 7.94 | 10.55 | 25% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| hdr_2160p | 6.53 | 8.91 | 27% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| oit_linked_lists | 11.29 | 12.89 | 12% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| pipeline_barriers | 1.10 | 1.56 | too light, see pipeline_barriers_2160p | 3 of 3 vs 3 of 3 | ? vs ? | no large difference differs in 1605 small areas |
| pipeline_barriers_2160p | 5.09 | 6.71 | 24% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference differs in 1207 small areas |
| subpasses | 2.18 | n/a | only one side | 3 of 3 vs 3 of 3 | ? vs ? | not checked |
| subpasses_2160p | 11.91 | n/a | only one side | 3 of 3 vs 3 of 3 | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in Turnip_Gen8_V38 (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_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_non_seamless_cube_map
- 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_shader_relaxed_extended_instruction
- VK_NV_compute_shader_derivatives
- VK_VALVE_buffer_device_address_allocation_alignment
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
Extensions only in Qualcomm Technologies Inc. Adreno Vulkan Driver (32)
- VK_ANDROID_external_format_resolve
- VK_ARM_data_graph
- VK_ARM_tensors
- 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_mesh_shader
- VK_EXT_pipeline_protected_access
- VK_EXT_pipeline_robustness
- VK_EXT_shader_subgroup_ballot
- VK_EXT_subpass_merge_feedback
- VK_KHR_cooperative_matrix
- VK_KHR_pipeline_binary
- VK_KHR_ray_tracing_pipeline
- VK_KHR_ray_tracing_position_fetch
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shared_presentable_image
- VK_NV_optical_flow
- VK_QCOM_data_graph_model
- VK_QCOM_filter_cubic_weights
- VK_QCOM_image_processing2
- VK_QCOM_queue_perf_hint
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_tile_memory_heap
- VK_QCOM_tile_properties
- VK_QCOM_tile_shading
- VK_QCOM_ycbcr_degamma
Core features that differ (6)
| multiviewGeometryShader | unsupported to pass |
| protectedMemory | pass to unsupported |
| shaderInputAttachmentArrayDynamicIndexing | pass to unsupported |
| shaderInputAttachmentArrayNonUniformIndexing | pass to unsupported |
| shaderSharedInt64Atomics | pass to unsupported |
| pipelineProtectedAccess | pass to unsupported |
Limits that differ (22)
| Limit | Stock | Custom |
|---|---|---|
| maxTexelBufferElements | 134217728 | 536870911 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 4294967295 | 274877906944 |
| maxPerStageResources | 50331648 | 16777216 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffersDynamic | 16 | 8 |
| maxVertexInputAttributeOffset | 4096 | 4095 |
| maxGeometryInputComponents | 128 | 64 |
| maxGeometryOutputVertices | 1024 | 256 |
| maxGeometryTotalOutputComponents | 131072 | 1024 |
| maxFragmentInputComponents | 112 | 128 |
| maxComputeSharedMemorySize | 32768 | 65536 |
| maxComputeWorkGroupInvocations | 1024 | 2048 |
| minMemoryMapAlignment | 64 | 4096 |
| minUniformBufferOffsetAlignment | 256 | 64 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 4 | 2 |
| pointSizeRange | 1, 4095 | 1, 4092 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
Formats supported by only one driver (5 gained, 3 lost)
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G16_B16R16_2PLANE_420_UNORM