Webgpu adapter not available at KW?

Hi there, i have create a liteplayground, while in desktop browser displayed just fine!

from my mobile “Chrome” i got a blank scene with log,

“webgpu adapter not available at KW:.. liteplayground/engine/dev/_chunks/engine-entry.js:170:11”

is a bug?

I don’t think so. Is webgpu enable on your device?

seems like is enabled!

Android 11
chrome version: 151
WebGL: Hardware accelerated
webGPU: Hardware accelerated

i play with chrome://flags from

i install Opera and try it, same issue!

liteplayground /snippet/KCY4JL/v/0

What do you get when you open this page?: https://webgpureport.org/

WebGPU Report

#1 compatibilityMode

adapter info:

  • architecture:
    rogue
  • backend:
    vulkan
  • description:
    PowerVR Rogue GE8322
  • device:
    0x22104218
  • driver:
    PowerVR Rogue Vulkan Driver: 1.13@5776728 1.386.1368
  • isFallbackAdapter:
    false
  • memoryHeaps:
    [ size: 1960079360, properties: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | HOST_UNCACHED | HOST_CACHED ]
  • powerPreference:
    low-power
  • subgroupMatrixConfigs
  • subgroupMaxSize:
    0
  • subgroupMinSize:
    0
  • type:
    integrated GPU
  • vendor:
    img-tec
  • vkDriverVersion:
    5776728

limits:

  • maxBindGroups:
    4
  • maxBindGroupsPlusVertexBuffers:
    24
  • maxBindingsPerBindGroup:
    1000
  • maxBufferSize:
    1073741824 (1gb)
  • maxColorAttachmentBytesPerSample:
    128b
  • maxColorAttachments:
    8
  • maxComputeInvocationsPerWorkgroup:
    256
  • maxComputeWorkgroupSizeX:
    256
  • maxComputeWorkgroupSizeY:
    256
  • maxComputeWorkgroupSizeZ:
    64
  • maxComputeWorkgroupStorageSize:
    16384 (16k)
  • maxComputeWorkgroupsPerDimension:
    65535 (64k)
  • maxDynamicStorageBuffersPerPipelineLayout:
    4
  • maxDynamicUniformBuffersPerPipelineLayout:
    8
  • maxImmediateSize:
    64
  • maxInterStageShaderVariables:
    28
  • maxSampledTexturesPerShaderStage:
    16
  • maxSamplersPerShaderStage:
    16
  • maxStorageBufferBindingSize:
    134217728 (128mb)
  • maxStorageBuffersInFragmentStage:
    16
  • maxStorageBuffersInVertexStage:
    16
  • maxStorageBuffersPerShaderStage:
    16
  • maxStorageTexturesInFragmentStage:
    4
  • maxStorageTexturesInVertexStage:
    4
  • maxStorageTexturesPerShaderStage:
    4
  • maxTextureArrayLayers:
    256
  • maxTextureDimension1D:
    4096 (4k)
  • maxTextureDimension2D:
    4096 (4k)
  • maxTextureDimension3D:
    2048 (2k)
  • maxUniformBufferBindingSize:
    65536 (64k)
  • maxUniformBuffersPerShaderStage:
    12
  • maxVertexAttributes:
    16
  • maxVertexBufferArrayStride:
    2048 (2k)
  • maxVertexBuffers:
    8
  • minStorageBufferOffsetAlignment:
    256b
  • minUniformBufferOffsetAlignment:
    256b

features:

  • chromium-experimental-multi-draw-indirect
  • clip-distances
  • core-features-and-limits
  • depth-clip-control
  • float32-blendable
  • indirect-first-instance
  • rg11b10ufloat-renderable
  • shader-f16
  • texture-component-swizzle
  • texture-compression-astc
  • texture-compression-etc2
  • texture-formats-tier1
  • texture-formats-tier2

WGSL language features:

  • immediate_address_space
  • linear_indexing
  • packed_4x8_integer_dot_product
  • pointer_composite_access
  • readonly_and_readwrite_storage_textures
  • subgroup_id
  • subgroup_uniformity
  • swizzle_assignment
  • texture_and_sampler_let
  • uniform_buffer_standard_layout
  • unrestricted_pointer_parameters

warnings:

  • rgba16float canvas not supported

misc:

  • HDR canvas support:
    not supported
  • WebXR support:
    not supported
  • fallback adapter:
    not supported
  • getPreferredCanvasFormat:
    rgba8unorm

dedicated workers:

  • webgpu API:
    exists
  • requestAdapter(compat):
    successful
  • requestDevice:
    successful
  • getContext(“webgpu”):
    successful
  • requestAnimationFrame:
    successful
  • transferControlToOffscreen:
    successful
  • OffscreenCanvas:
    successful
  • CanvasRenderingContext2D:
    successful

shared workers:

  • webgpu API:
    exists
  • requestAdapter(compat):
    successful
  • requestDevice:
    successful
  • getContext(“webgpu”):
    successful
  • transferControlToOffscreen:
    successful
  • OffscreenCanvas:
    successful
  • CanvasRenderingContext2D:
    successful

service workers:

  • webgpu API:
    exists
  • requestAdapter(compat):
    successful
  • requestDevice:
    successful
  • getContext(“webgpu”):
    successful
  • transferControlToOffscreen:
    successful
  • OffscreenCanvas:
    successful
  • CanvasRenderingContext2D:
    successful

It seems that your device only support the WebGPU compatibilty mode.
@Deltakosh
Please correct me if i’m wrong but i think Babylon lite currently always requests the high-performance GPU which would fail on this device.

Yes you are right!

Babylon lite currently always requests the high-performance GPU.

I think is helpful if devices does not meet specific specifications, to inform user/visitor about this, instead of throwing error!

Is better practice as user understand immediately that is hardware issue and not code problem!