Closed tachyon-ops closed 2 years ago
Hey @nmpribeiro, I'd recommend trying to get one of the wgpu examples running first (if you haven't already) and then if those succeed, try and spot any differences between those and the all_winit_wgpu
example that might be causing issues.
@mitchmindtree wgpu
example triangle (I tried the hello-triangle
in android so far) works fine. I am going through conrad_core
and conrad backend wgpu
to try to spot exactly what's causing my fatal error with all_winit_wgpu
.
I have updated to wgpu
v0.10
and it seems to have more meaningful errors.
If I try to force GL
on android:
W/rust-app: wgpu_core::instance: Missing downlevel flags: READ_ONLY_DEPTH_STENCIL | VERTEX_STORAGE
The underlying API or device in use does not support enough features to be a fully compliant implementation of WebGPU. A subset of the features can still be used. If you are running this program on native and not in a browser and wish to limit the features you use to the supported subset, call Adapter::downlevel_properties or Device::downlevel_properties to get a listing of the features the current platform supports.
I/rust-app: wgpu_core::instance: DownlevelCapabilities {
flags: COMPUTE_SHADERS | FRAGMENT_WRITABLE_STORAGE | INDIRECT_EXECUTION | BASE_VERTEX | DEVICE_LOCAL_IMAGE_COPIES | NON_POWER_OF_TWO_MIPMAPPED_TEXTURES | CUBE_ARRAY_TEXTURES | COMPARISON_SAMPLERS | INDEPENDENT_BLENDING,
limits: DownlevelLimits,
shader_model: Sm5,
}
E/rust-app: wgpu::backend::direct: Error in Adapter::request_device: Limit 'max_texture_array_layers' value 2048 is better than allowed 256
I/RustStdoutStderr: thread '<unnamed>' panicked at 'Failed to create device: RequestDeviceError', libs/graphics/src/state.rs:90:14
If I use .all()
backends:
graphics::state: Device and Queue!
W/rust-app: wgpu_hal::vulkan::adapter: Missing extensions: ["VK_EXT_sampler_filter_minmax", "VK_KHR_timeline_semaphore"]
D/rust-app: wgpu_hal::vulkan::adapter: Supported extensions: ["VK_KHR_swapchain"]
I/rust-app: wgpu_hal::vulkan::adapter: Private capabilities: PrivateCapabilities { flip_y_requires_shift: true, imageless_framebuffers: false, image_view_usage: true, timeline_semaphores: false, texture_d24: true, texture_d24_s8: true, can_present: true, non_coherent_map_mask: 63 }
E/rust-app: wgpu::backend::direct: Error in Adapter::request_device: Limit 'max_texture_array_layers' value 2048 is better than allowed 256
I/RustStdoutStderr: thread '<unnamed>' panicked at 'Failed to create device: RequestDeviceError', libs/graphics/src/state.rs:87:14
I will research a bit more what these logs mean, but it seems Concord is trying to use capabilities that my testing android device doesn't have.
@mitchmindtree would you agree this is wgpu
related?
Could conrod
request max_texture_array_layers
value of 256 in the limits instead of the default? We are going to fix the default as well, it matches a recent change in the spec.
FYI, I looked into @kvark's PR and decided to use his repo/branch in my cargo. It turns out that it runs perfectly in Android.
I'll wait for conrod
to update to current wgpu
.
Hi,
I am trying conrod_wgpu GUI example in android and am having a mysterious error.
I added
log::info!
to all calls I am doing while setting up the renderer and figured that the program seems to be exiting when tryingLast output is the following:
Can anyone help me figure/debug this out?
Versions: