v863.1 vs Turnip_v26.1.0_R4
On Adreno (TM) 640 (Samsung Galaxy Note10+, Samsung Galaxy S10+, Samsung Galaxy S10+, Xiaomi Pad 5). The first driver named is compared against the second, which is the baseline.
StockTurnip_v26.1.0_R4
vsCustomv863.1
Graphics system version (Vulkan)1.3.344 to 1.1.295
Optional features (extensions)153 to 90+13 -76
Features that pass their check (validated)48 to 34Turnip_v26.1.0_R4 and v863.1: sent from a device this site could not confirm (unverified)1 pass only on v863.1 15 pass only on Turnip_v26.1.0_R4
Speed test scenes (benchmark)no shared scenes
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
Turnip_v26.1.0_R4 details v863.1 details
Feature checks that differ (38)
| Feature | Turnip_v26.1.0_R4 | v863.1 | Change |
|---|---|---|---|
| borderColorSwizzle | pass | unsupported | lost |
| colorWriteEnable | pass | unsupported | lost |
| depthClipControl | pass | unsupported | lost |
| extendedDynamicState | pass | unsupported | lost |
| extendedDynamicState2 | pass | unsupported | lost |
| extendedDynamicState2LogicOp | pass | unsupported | lost |
| extendedDynamicState3ColorBlendEnable | pass | unsupported | lost |
| extendedDynamicState3ColorBlendEquation | pass | unsupported | lost |
| extendedDynamicState3ColorWriteMask | pass | unsupported | lost |
| extendedDynamicState3DepthClampEnable | pass | unsupported | lost |
| extendedDynamicState3LogicOpEnable | pass | unsupported | lost |
| extendedDynamicState3PolygonMode | pass | unsupported | lost |
| inlineUniformBlock | pass | unsupported | lost |
| transformFeedback | pass | unsupported | lost |
| timelineSemaphore | pass | unsupported | lost |
| core.compute_udiv | fail | pass | gained |
| borderColorSwizzleFromImage | untested | unsupported | changed |
| extendedDynamicState2PatchControlPoints | untested | unsupported | changed |
| extendedDynamicState3AlphaToCoverageEnable | untested | unsupported | changed |
| extendedDynamicState3AlphaToOneEnable | untested | unsupported | changed |
| extendedDynamicState3DepthClipEnable | untested | unsupported | changed |
| extendedDynamicState3DepthClipNegativeOneToOne | untested | unsupported | changed |
| extendedDynamicState3LineRasterizationMode | untested | unsupported | changed |
| extendedDynamicState3ProvokingVertexMode | untested | unsupported | changed |
| extendedDynamicState3RasterizationSamples | untested | unsupported | changed |
| extendedDynamicState3RasterizationStream | untested | unsupported | changed |
| extendedDynamicState3SampleMask | untested | unsupported | changed |
| extendedDynamicState3TessellationDomainOrigin | untested | unsupported | changed |
| descriptorBindingInlineUniformBlockUpdateAfterBind | untested | unsupported | changed |
| geometryStreams | untested | unsupported | changed |
| logicOp | untested | unsupported | changed |
| shaderInt64 | untested | unsupported | changed |
| shaderResourceMinLod | untested | unsupported | changed |
| shaderResourceResidency | untested | unsupported | changed |
| sparseBinding | untested | unsupported | changed |
| sparseResidencyAliased | untested | unsupported | changed |
| sparseResidencyBuffer | untested | unsupported | changed |
| variableMultisampleRate | untested | unsupported | changed |
Speed test scenes (benchmark)
| Scene | Turnip_v26.1.0_R4 ms | v863.1 ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| hdr_2160p | 110.72 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
| oit_linked_lists | 39.00 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
| pipeline_barriers | 8.13 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
| subpasses | 12.72 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in v863.1 (13)
- VK_EXT_blend_operation_advanced
- VK_EXT_device_fault
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_fragment_density_map2
- VK_EXT_pipeline_robustness
- VK_EXT_shader_subgroup_ballot
- VK_EXT_shader_subgroup_vote
- VK_KHR_shared_presentable_image
- VK_QCOM_multiview_per_view_viewports
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
Extensions only in Turnip_v26.1.0_R4 (76)
- VK_AMD_buffer_marker
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_4444_formats
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_border_color_swizzle
- VK_EXT_color_write_enable
- VK_EXT_conditional_rendering
- VK_EXT_custom_resolve
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_control
- VK_EXT_descriptor_buffer
- VK_EXT_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_extended_dynamic_state3
- VK_EXT_fragment_density_map_offset
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_drm_format_modifier
- VK_EXT_image_view_min_lod
- VK_EXT_inline_uniform_block
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_load_store_op_none
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_multi_draw
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_mutable_descriptor_type
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_primitives_generated_query
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_shader_viewport_index_layer
- VK_EXT_texel_buffer_alignment
- VK_EXT_tooling_info
- VK_EXT_transform_feedback
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_compute_shader_derivatives
- VK_KHR_deferred_host_operations
- 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_maintenance7
- VK_KHR_map_memory2
- VK_KHR_pipeline_library
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_timeline_semaphore
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_KHR_zero_initialize_workgroup_memory
- VK_NV_compute_shader_derivatives
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
Core features that differ (59)
| multiview | pass to unsupported |
| samplerYcbcrConversion | pass to unsupported |
| shaderDrawParameters | 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 |
| 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 |
| 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 (33)
| Limit | Turnip_v26.1.0_R4 | v863.1 |
|---|---|---|
| maxPushConstantsSize | 256 | 128 |
| maxMemoryAllocationCount | 4294967295 | 4096 |
| maxSamplerAllocationCount | 65536 | 4000 |
| bufferImageGranularity | 64 | 1 |
| maxPerStageDescriptorSamplers | 16777216 | 524288 |
| maxPerStageDescriptorUniformBuffers | 16777216 | 524288 |
| maxPerStageDescriptorStorageBuffers | 16777216 | 524288 |
| maxPerStageDescriptorSampledImages | 16777216 | 524288 |
| maxPerStageDescriptorStorageImages | 16777216 | 524288 |
| maxPerStageResources | 16777216 | 1572864 |
| maxDescriptorSetSamplers | 16777216 | 524288 |
| maxDescriptorSetUniformBuffers | 16777216 | 524288 |
| maxDescriptorSetUniformBuffersDynamic | 16 | 32 |
| maxDescriptorSetStorageBuffers | 16777216 | 524288 |
| maxDescriptorSetStorageBuffersDynamic | 8 | 16 |
| maxDescriptorSetSampledImages | 16777216 | 524288 |
| maxDescriptorSetStorageImages | 16777216 | 524288 |
| maxVertexInputAttributeOffset | 4095 | 4096 |
| maxGeometryInputComponents | 64 | 128 |
| maxGeometryOutputVertices | 256 | 1024 |
| maxGeometryTotalOutputComponents | 1024 | 131072 |
| maxFragmentInputComponents | 124 | 112 |
| maxFragmentCombinedOutputResources | 33554440 | 72 |
| maxComputeWorkGroupInvocations | 2048 | 1024 |
| maxComputeWorkGroupSize | 1024, 1024, 1024 | 1024, 1024, 64 |
| minMemoryMapAlignment | 4096 | 64 |
| 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, 12 lost)
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G16_B16R16_2PLANE_420_UNORM
- A1B5G5R5_UNORM_PACK16
- A4B4G4R4_UNORM_PACK16
- A4R4G4B4_UNORM_PACK16
- A8_UNORM
- B8G8R8A8_SINT
- B8G8R8A8_SNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_UINT
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT