turnip_faux123_v1.2.1-rc4 vs Qualcomm Technologies Inc. Adreno Vulkan Driver
On Adreno (TM) 722 (Moorechip Retroid Pocket Duo, Nothing Phone (4a) Pro). The first driver named is compared against the second, which is the baseline.
StockQualcomm Technologies Inc. Adreno Vulkan Driver
vsCustomturnip_faux123_v1.2.1-rc4
Graphics system version (Vulkan)1.3.284 to 1.4.359
Optional features (extensions)145 to 168+40 -17
Features that pass their check (validated)61 to 687 pass only on turnip_faux123_v1.2.1-rc4 0 pass only on Qualcomm Technologies Inc. Adreno Vulkan Driver
Speed test scenes (benchmark)2 faster 3 slower40% 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_nbody30% faster
- hdr_2160p16% slower
- oit_linked_lists9% faster
- pipeline_barriers67% slower
- subpasses81% slower
Small areas of the picture differ from the stock driver in 1 scene (pipeline_barriers: 1333 of 2304 cells). The picture matches overall, so this is a local rendering fault, not a different scene.
Not on equal terms: the GPU clock differed during 5 of these scenes (for example compute_nbody: stock at 69% of the device's maximum, custom at 100%). Part of the frame-time difference comes from the clock the device chose, not from the driver.
Qualcomm Technologies Inc. Adreno Vulkan Driver details turnip_faux123_v1.2.1-rc4 details
Feature checks that differ (28)
| Feature | Stock | Custom | Change |
|---|---|---|---|
| extendedDynamicState3ColorBlendEnable | unsupported | pass | gained |
| extendedDynamicState3ColorBlendEquation | unsupported | pass | gained |
| extendedDynamicState3ColorWriteMask | unsupported | pass | gained |
| extendedDynamicState3DepthClampEnable | unsupported | pass | gained |
| extendedDynamicState3LogicOpEnable | unsupported | pass | gained |
| extendedDynamicState3PolygonMode | unsupported | pass | gained |
| core.copy_wide_row_length | fail | 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 |
| shaderResourceMinLod | unsupported | untested | changed |
| shaderResourceResidency | unsupported | untested | changed |
| sparseResidency16Samples | untested | unsupported | changed |
| sparseResidency2Samples | untested | unsupported | changed |
| sparseResidency4Samples | untested | unsupported | changed |
| sparseResidency8Samples | untested | unsupported | changed |
| sparseResidencyAliased | unsupported | untested | changed |
| sparseResidencyImage2D | untested | unsupported | changed |
Speed test scenes (benchmark)
| Scene | Stock ms | Custom ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | 15.32 | 11.75 | 30% faster | 3 of 3 vs 3 of 3 | 796 vs 1150 not comparable | no large difference no small difference |
| hdr_2160p | 41.15 | 49.09 | 16% slower | 3 of 3 vs 3 of 3 | 796 vs 1150 not comparable | no large difference no small difference |
| oit_linked_lists | 28.96 | 26.69 | 9% faster | 3 of 3 vs 3 of 3 | 796 vs 1150 not comparable | no large difference no small difference |
| pipeline_barriers | 5.79 | 17.29 | 67% slower | 3 of 3 vs 3 of 3 | 784 vs 1150 not comparable | no large difference differs in 1333 small areas |
| pipeline_barriers_2160p | 20.38 | n/a | only one side | 3 of 3 vs ? | 796 vs ? | not checked |
| subpasses | 8.92 | 46.05 | 81% slower | 3 of 3 vs 3 of 3 | 784 vs 1150 not comparable | not checked |
Technical differences (Vulkan)
Extensions only in turnip_faux123_v1.2.1-rc4 (40)
- 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_conditional_rendering
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_descriptor_buffer
- 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_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_compression_control
- VK_EXT_image_drm_format_modifier
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_mutable_descriptor_type
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_primitive_restart_index
- VK_EXT_primitives_generated_query
- VK_EXT_rasterization_order_attachment_access
- 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_compute_shader_derivatives
- VK_KHR_deferred_host_operations
- VK_KHR_maintenance7
- VK_KHR_pipeline_library
- VK_KHR_shader_relaxed_extended_instruction
- VK_NV_compute_shader_derivatives
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
Extensions only in Qualcomm Technologies Inc. Adreno Vulkan Driver (17)
- VK_ANDROID_external_format_resolve
- VK_EXT_astc_decode_mode
- VK_EXT_blend_operation_advanced
- VK_EXT_device_fault
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_fragment_density_map2
- VK_EXT_pipeline_protected_access
- VK_EXT_shader_subgroup_ballot
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shared_presentable_image
- VK_NV_optical_flow
- VK_QCOM_image_processing
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
Core features that differ (20)
| multiviewGeometryShader | unsupported to pass |
| protectedMemory | pass to unsupported |
| shaderInputAttachmentArrayDynamicIndexing | pass to unsupported |
| shaderInputAttachmentArrayNonUniformIndexing | pass to unsupported |
| bresenhamLines | unsupported to pass |
| dynamicRenderingLocalRead | unsupported to pass |
| globalPriorityQuery | unsupported to pass |
| hostImageCopy | unsupported to pass |
| indexTypeUint8 | unsupported to pass |
| maintenance5 | unsupported to pass |
| maintenance6 | unsupported to pass |
| pipelineRobustness | unsupported to pass |
| pushDescriptor | unsupported to pass |
| rectangularLines | unsupported to pass |
| shaderExpectAssume | unsupported to pass |
| shaderFloatControls2 | unsupported to pass |
| shaderSubgroupRotate | unsupported to pass |
| shaderSubgroupRotateClustered | unsupported to pass |
| vertexAttributeInstanceRateDivisor | unsupported to pass |
| vertexAttributeInstanceRateZeroDivisor | unsupported to pass |
Limits that differ (19)
| Limit | Stock | Custom |
|---|---|---|
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 562949953421311 | 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 |
| maxComputeWorkGroupInvocations | 1024 | 2048 |
| minMemoryMapAlignment | 64 | 4096 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 3 | 2 |
| pointSizeRange | 1, 4095 | 1, 4092 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
Formats supported by only one driver (5 gained, 1 lost)
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16