gfx-rs / wgpu

A cross-platform, safe, pure-Rust graphics API.
https://wgpu.rs
Apache License 2.0
12.44k stars 909 forks source link

examples panic when using GL backend (software render) #1590

Closed Fenex closed 2 years ago

Fenex commented 3 years ago

Description I clone the repo and try to run examples cube , hello-triangle, and others with WGPU_BACKEND=gl env. All examples panic right after execute.

Repro steps

$ git clone https://github.com/gfx-rs/wgpu && cd wgpu
$ RUST_LOG=trace WGPU_BACKEND=gl cargo run --example hello-triangle

Expected vs observed behavior Expected: Show window with example. Observed: panic at start time.

Extra materials:

bash exe log ``` fenex@lubuntu-HP:~/repos/github/wgpu$ RUST_LOG=trace WGPU_BACKEND=gl cargo run --example hello-triangle Finished dev [unoptimized + debuginfo] target(s) in 0.12s Running `target/debug/examples/hello-triangle` [2021-07-02T13:09:06Z INFO wgpu_hal::vulkan::instance] Unable to find extension: VK_KHR_surface [2021-07-02T13:09:06Z INFO wgpu_hal::vulkan::instance] Unable to find extension: VK_KHR_xlib_surface [2021-07-02T13:09:06Z INFO wgpu_hal::vulkan::instance] Unable to find extension: VK_KHR_xcb_surface [2021-07-02T13:09:06Z INFO wgpu_hal::vulkan::instance] Unable to find extension: VK_KHR_wayland_surface [2021-07-02T13:09:06Z INFO wgpu_hal::vulkan::instance] Unable to find extension: VK_KHR_get_physical_device_properties2 [2021-07-02T13:09:06Z WARN wgpu_hal::vulkan::instance] Unable to find layer: VK_LAYER_KHRONOS_validation [2021-07-02T13:09:06Z WARN wgpu_hal::vulkan::instance] create_instance: VkError(ERROR_INCOMPATIBLE_DRIVER) [2021-07-02T13:09:06Z DEBUG wgpu_hal::gles::egl] Client extensions: [ "EGL_EXT_device_base", "EGL_EXT_device_enumeration", "EGL_EXT_device_query", "EGL_EXT_platform_base", "EGL_KHR_client_get_all_proc_addresses", "EGL_EXT_client_extensions", "EGL_KHR_debug", "EGL_EXT_platform_wayland", "EGL_EXT_platform_x11", "EGL_MESA_platform_gbm", "EGL_MESA_platform_surfaceless", "EGL_EXT_platform_device", ] [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Loading Wayland library to get the current display [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Loading X11 library to get the current display [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Using X11 platform [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Enabling EGL debug output libEGL warning: DRI2: failed to authenticate [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Display vendor "Mesa Project", version (1, 4) [2021-07-02T13:09:06Z DEBUG wgpu_hal::gles::egl] Display extensions: [ "EGL_KHR_cl_event2", "EGL_KHR_config_attribs", "EGL_KHR_context_flush_control", "EGL_KHR_create_context", "EGL_KHR_create_context_no_error", "EGL_KHR_fence_sync", "EGL_KHR_get_all_proc_addresses", "EGL_KHR_gl_colorspace", "EGL_KHR_gl_renderbuffer_image", "EGL_KHR_gl_texture_2D_image", "EGL_KHR_gl_texture_3D_image", "EGL_KHR_gl_texture_cubemap_image", "EGL_KHR_image_base", "EGL_KHR_no_config_context", "EGL_KHR_reusable_sync", "EGL_KHR_surfaceless_context", "EGL_EXT_pixel_format_float", "EGL_KHR_wait_sync", "EGL_MESA_configless_context", "EGL_MESA_drm_image", "EGL_MESA_query_driver", ] [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] Configurations: [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z TRACE wgpu_hal::gles::egl] CONFORMANT=0x4D, RENDERABLE=0x4D, NATIVE_RENDERABLE=0x1, SURFACE_TYPE=0x407 [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Trying native-render [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Max label length: 256 [2021-07-02T13:09:06Z INFO wgpu_hal::gles::egl] Enabling GLES debug output [2021-07-02T13:09:06Z INFO wgpu_hal::gles::adapter] Vendor: VMware, Inc. [2021-07-02T13:09:06Z INFO wgpu_hal::gles::adapter] Renderer: llvmpipe (LLVM 10.0.0, 256 bits) [2021-07-02T13:09:06Z INFO wgpu_hal::gles::adapter] Version: OpenGL ES 3.1 Mesa 20.0.8 [2021-07-02T13:09:06Z DEBUG wgpu_hal::gles::adapter] Extensions: { "GL_OES_texture_half_float", "GL_NV_conditional_render", "GL_OES_texture_storage_multisample_2d_array", "GL_EXT_sRGB_write_control", "GL_EXT_draw_buffers", "GL_KHR_texture_compression_astc_ldr", "GL_OES_texture_view", "GL_EXT_texture_format_BGRA8888", "GL_KHR_parallel_shader_compile", "GL_OES_vertex_array_object", "GL_OES_EGL_sync", "GL_OES_texture_float_linear", "GL_EXT_shader_integer_mix", "GL_OES_EGL_image_external_essl3", "GL_MESA_shader_integer_functions", "GL_OES_shader_io_blocks", "GL_EXT_texture_norm16", "GL_OES_surfaceless_context", "GL_EXT_texture_border_clamp", "GL_OES_copy_image", "GL_APPLE_texture_max_level", "GL_EXT_unpack_subimage", "GL_EXT_texture_query_lod", "GL_OES_get_program_binary", "GL_OES_EGL_image_external", "GL_EXT_texture_buffer", "GL_OES_texture_buffer", "GL_ANGLE_texture_compression_dxt3", "GL_MESA_framebuffer_flip_y", "GL_EXT_multi_draw_arrays", "GL_EXT_texture_compression_s3tc", "GL_EXT_color_buffer_float", "GL_EXT_frag_depth", "GL_EXT_texture_type_2_10_10_10_REV", "GL_NV_read_depth", "GL_OES_EGL_image", "GL_EXT_occlusion_query_boolean", "GL_EXT_texture_rg", "GL_OES_mapbuffer", "GL_OES_stencil8", "GL_OES_texture_npot", "GL_EXT_discard_framebuffer", "GL_EXT_copy_image", "GL_NV_read_buffer", "GL_NV_fbo_color_attachments", "GL_KHR_debug", "GL_EXT_clip_cull_distance", "GL_EXT_depth_clamp", "GL_OES_vertex_half_float", "GL_ANGLE_texture_compression_dxt5", "GL_OES_depth_texture", "GL_OES_draw_elements_base_vertex", "GL_EXT_texture_compression_s3tc_srgb", "GL_OES_texture_float", "GL_OES_compressed_ETC1_RGB8_texture", "GL_EXT_render_snorm", "GL_OES_depth_texture_cube_map", "GL_EXT_texture_compression_rgtc", "GL_OES_required_internalformat", "GL_OES_packed_depth_stencil", "GL_OES_rgb8_rgba8", "GL_EXT_disjoint_timer_query", "GL_KHR_no_error", "GL_OES_standard_derivatives", "GL_NV_image_formats", "GL_EXT_draw_buffers_indexed", "GL_OES_texture_half_float_linear", "GL_EXT_polygon_offset_clamp", "GL_KHR_texture_compression_astc_sliced_3d", "GL_EXT_texture_sRGB_decode", "GL_KHR_context_flush_control", "GL_EXT_read_format_bgra", "GL_EXT_shader_io_blocks", "GL_NV_read_depth_stencil", "GL_EXT_shader_implicit_conversions", "GL_EXT_blend_func_extended", "GL_NV_read_stencil", "GL_OES_element_index_uint", "GL_EXT_float_blend", "GL_EXT_clip_control", "GL_EXT_base_instance", "GL_OES_texture_border_clamp", "GL_EXT_texture_compression_bptc", "GL_EXT_texture_view", "GL_NV_draw_buffers", "GL_EXT_draw_elements_base_vertex", "GL_OES_depth24", "GL_OES_texture_stencil8", "GL_EXT_texture_compression_dxt1", "GL_EXT_compressed_ETC1_RGB8_sub_texture", "GL_OES_texture_3D", "GL_OES_draw_buffers_indexed", "GL_EXT_map_buffer_range", "GL_EXT_blend_minmax", "GL_EXT_texture_sRGB_R8", "GL_EXT_separate_shader_objects", "GL_OES_fbo_render_mipmap", "GL_EXT_buffer_storage", "GL_EXT_EGL_image_storage", "GL_OES_shader_image_atomic", } [2021-07-02T13:09:06Z INFO wgpu_hal::gles::adapter] SL version: OpenGL ES GLSL ES 3.10 [2021-07-02T13:09:06Z INFO wgpu_core::instance] Adapter GL AdapterInfo { name: "llvmpipe (LLVM 10.0.0, 256 bits)", vendor: 0, device: 0, device_type: DiscreteGpu, backend: Gl } [2021-07-02T13:09:06Z WARN wgpu_core::instance] Missing downlevel flags: BASE_VERTEX | READ_ONLY_DEPTH_STENCIL 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. [2021-07-02T13:09:06Z INFO wgpu_core::instance] DownlevelCapabilities { flags: COMPUTE_SHADERS | FRAGMENT_WRITABLE_STORAGE | INDIRECT_EXECUTION | DEVICE_LOCAL_IMAGE_COPIES | NON_POWER_OF_TWO_MIPMAPPED_TEXTURES | CUBE_ARRAY_TEXTURES | COMPARISON_SAMPLERS | INDEPENDENT_BLENDING, limits: DownlevelLimits, shader_model: Sm5, } thread 'main' panicked at 'Error in Adapter::request_device: some of the requested device limits are not supported', wgpu/src/backend/direct.rs:114:9 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [2021-07-02T13:09:06Z INFO wgpu_core::hub] Dropping Global ```
glxinfo log ``` fenex@lubuntu-HP:~/repos/github/wgpu$ glxinfo name of display: :0.0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 server glx extensions: GLX_ARB_context_flush_control, GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample, GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, GLX_EXT_libglvnd, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read client glx vendor string: Mesa Project and SGI client glx version string: 1.4 client glx extensions: GLX_ARB_context_flush_control, GLX_ARB_create_context, GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync GLX version: 1.4 GLX extensions: GLX_ARB_context_flush_control, GLX_ARB_create_context, GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read Extended renderer info (GLX_MESA_query_renderer): Vendor: VMware, Inc. (0xffffffff) Device: llvmpipe (LLVM 10.0.0, 256 bits) (0xffffffff) Version: 20.0.8 Accelerated: no Video memory: 4944MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 3.3 Max compat profile version: 3.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.1 OpenGL vendor string: VMware, Inc. OpenGL renderer string: llvmpipe (LLVM 10.0.0, 256 bits) OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.0.8 OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend, GL_AMD_gpu_shader_int64, GL_AMD_multi_draw_indirect, GL_AMD_query_buffer_object, GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export, GL_AMD_shader_trinary_minmax, GL_AMD_texture_texture4, GL_AMD_vertex_shader_layer, GL_AMD_vertex_shader_viewport_index, GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended, GL_ARB_buffer_storage, GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control, GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader, GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance, GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_derivative_control, GL_ARB_direct_state_access, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts, GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport, GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments, GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader_fp64, GL_ARB_gpu_shader_int64, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_indirect_parameters, GL_ARB_instanced_arrays, GL_ARB_internalformat_query, GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect, GL_ARB_occlusion_query2, GL_ARB_parallel_shader_compile, GL_ARB_pipeline_statistics_query, GL_ARB_pixel_buffer_object, GL_ARB_point_sprite, GL_ARB_polygon_offset_clamp, GL_ARB_program_interface_query, GL_ARB_provoking_vertex, GL_ARB_query_buffer_object, GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding, GL_ARB_shader_draw_parameters, GL_ARB_shader_group_vote, GL_ARB_shader_image_load_store, GL_ARB_shader_image_size, GL_ARB_shader_objects, GL_ARB_shader_stencil_export, GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine, GL_ARB_shader_texture_lod, GL_ARB_shading_language_420pack, GL_ARB_shading_language_include, GL_ARB_shading_language_packing, GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range, GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map_array, GL_ARB_texture_float, GL_ARB_texture_gather, GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_levels, GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_stencil8, GL_ARB_texture_storage, GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle, GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced, GL_ARB_transform_feedback_overflow_query, GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit, GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object, GL_ARB_vertex_shader, GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, GL_ATI_blend_equation_separate, GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_EXT_EGL_image_storage, GL_EXT_EGL_sync, GL_EXT_abgr, GL_EXT_blend_equation_separate, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_pixel_buffer_object, GL_EXT_polygon_offset_clamp, GL_EXT_provoking_vertex, GL_EXT_shader_integer_mix, GL_EXT_texture_array, GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc, GL_EXT_texture_integer, GL_EXT_texture_mirror_clamp, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_R8, GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm, GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback, GL_EXT_vertex_array_bgra, GL_EXT_vertex_attrib_64bit, GL_IBM_multimode_draw_arrays, GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error, GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr, GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_pack_invert, GL_MESA_shader_integer_functions, GL_MESA_texture_signed_rgba, GL_MESA_ycbcr_texture, GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_packed_depth_stencil, GL_OES_EGL_image, GL_S3_s3tc OpenGL version string: 3.1 Mesa 20.0.8 OpenGL shading language version string: 1.40 OpenGL context flags: (none) OpenGL extensions: GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend, GL_AMD_multi_draw_indirect, GL_AMD_query_buffer_object, GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export, GL_AMD_shader_trinary_minmax, GL_AMD_texture_texture4, GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, GL_APPLE_packed_pixels, GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended, GL_ARB_buffer_storage, GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control, GL_ARB_color_buffer_float, GL_ARB_compatibility, GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader, GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance, GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_derivative_control, GL_ARB_direct_state_access, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts, GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments, GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_indirect_parameters, GL_ARB_instanced_arrays, GL_ARB_internalformat_query, GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, GL_ARB_parallel_shader_compile, GL_ARB_pipeline_statistics_query, GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_polygon_offset_clamp, GL_ARB_program_interface_query, GL_ARB_provoking_vertex, GL_ARB_query_buffer_object, GL_ARB_robustness, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding, GL_ARB_shader_draw_parameters, GL_ARB_shader_group_vote, GL_ARB_shader_image_load_store, GL_ARB_shader_image_size, GL_ARB_shader_objects, GL_ARB_shader_stencil_export, GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine, GL_ARB_shader_texture_lod, GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, GL_ARB_shading_language_include, GL_ARB_shading_language_packing, GL_ARB_shadow, GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range, GL_ARB_texture_compression, GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_levels, GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_stencil8, GL_ARB_texture_storage, GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle, GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced, GL_ARB_transform_feedback_overflow_query, GL_ARB_transpose_matrix, GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers, GL_ATI_fragment_shader, GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc, GL_ATI_texture_env_combine3, GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_EXT_EGL_image_storage, GL_EXT_EGL_sync, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, GL_EXT_copy_texture, GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, GL_EXT_polygon_offset_clamp, GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object, GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_latc, GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_integer, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_R8, GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm, GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error, GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr, GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_pack_invert, GL_MESA_shader_integer_functions, GL_MESA_texture_signed_rgba, GL_MESA_window_pos, GL_MESA_ycbcr_texture, GL_NV_blend_square, GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_fog_distance, GL_NV_light_max_exponent, GL_NV_packed_depth_stencil, GL_NV_primitive_restart, GL_NV_texgen_reflection, GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_OES_EGL_image, GL_OES_read_format, GL_S3_s3tc, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.0.8 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10 OpenGL ES profile extensions: GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, GL_APPLE_texture_max_level, GL_EXT_EGL_image_storage, GL_EXT_base_instance, GL_EXT_blend_func_extended, GL_EXT_blend_minmax, GL_EXT_buffer_storage, GL_EXT_clip_control, GL_EXT_clip_cull_distance, GL_EXT_color_buffer_float, GL_EXT_compressed_ETC1_RGB8_sub_texture, GL_EXT_copy_image, GL_EXT_depth_clamp, GL_EXT_discard_framebuffer, GL_EXT_disjoint_timer_query, GL_EXT_draw_buffers, GL_EXT_draw_buffers_indexed, GL_EXT_draw_elements_base_vertex, GL_EXT_float_blend, GL_EXT_frag_depth, GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays, GL_EXT_occlusion_query_boolean, GL_EXT_polygon_offset_clamp, GL_EXT_read_format_bgra, GL_EXT_render_snorm, GL_EXT_sRGB_write_control, GL_EXT_separate_shader_objects, GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix, GL_EXT_shader_io_blocks, GL_EXT_texture_border_clamp, GL_EXT_texture_buffer, GL_EXT_texture_compression_bptc, GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc, GL_EXT_texture_compression_s3tc_srgb, GL_EXT_texture_format_BGRA8888, GL_EXT_texture_norm16, GL_EXT_texture_query_lod, GL_EXT_texture_rg, GL_EXT_texture_sRGB_R8, GL_EXT_texture_sRGB_decode, GL_EXT_texture_type_2_10_10_10_REV, GL_EXT_texture_view, GL_EXT_unpack_subimage, GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error, GL_KHR_parallel_shader_compile, GL_KHR_texture_compression_astc_ldr, GL_KHR_texture_compression_astc_sliced_3d, GL_MESA_framebuffer_flip_y, GL_MESA_shader_integer_functions, GL_NV_conditional_render, GL_NV_draw_buffers, GL_NV_fbo_color_attachments, GL_NV_image_formats, GL_NV_read_buffer, GL_NV_read_depth, GL_NV_read_depth_stencil, GL_NV_read_stencil, GL_OES_EGL_image, GL_OES_EGL_image_external, GL_OES_EGL_image_external_essl3, GL_OES_EGL_sync, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_copy_image, GL_OES_depth24, GL_OES_depth_texture, GL_OES_depth_texture_cube_map, GL_OES_draw_buffers_indexed, GL_OES_draw_elements_base_vertex, GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil, GL_OES_required_internalformat, GL_OES_rgb8_rgba8, GL_OES_shader_image_atomic, GL_OES_shader_io_blocks, GL_OES_standard_derivatives, GL_OES_stencil8, GL_OES_surfaceless_context, GL_OES_texture_3D, GL_OES_texture_border_clamp, GL_OES_texture_buffer, GL_OES_texture_float, GL_OES_texture_float_linear, GL_OES_texture_half_float, GL_OES_texture_half_float_linear, GL_OES_texture_npot, GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array, GL_OES_texture_view, GL_OES_vertex_array_object, GL_OES_vertex_half_float ```

Platform Ubuntu 18.04 amd64 running inside VirtualBox 6.0 Software render. wgpu is currently master (43c26e57e0bd7c6f5db807cbe7533b4a6f1ce4d8)

Fenex commented 3 years ago

Limits struct on my conf is:

Limits {
    max_texture_dimension_1d: 8192,
    max_texture_dimension_2d: 8192,
    max_texture_dimension_3d: 2048,
    max_texture_array_layers: 512,
    max_bind_groups: 8,
    max_dynamic_uniform_buffers_per_pipeline_layout: 15,
    max_dynamic_storage_buffers_per_pipeline_layout: 8,
    max_sampled_textures_per_shader_stage: 16,
    max_samplers_per_shader_stage: 16,
    max_storage_buffers_per_shader_stage: 8,
    max_storage_textures_per_shader_stage: 8,
    max_uniform_buffers_per_shader_stage: 15,
    max_uniform_buffer_binding_size: 65536,
    max_storage_buffer_binding_size: 134217728,
    max_vertex_buffers: 16,
    max_vertex_attributes: 16,
    max_vertex_buffer_array_stride: 2048,
    max_push_constant_size: 0,
}

UPD: the problem is gone if change the property Limits::Default::default()::max_texture_array_layers to 512 . ( thx kvark! )

cwfitzgerald commented 3 years ago

This is actually also an issue on the raspberry pi on GL, all the examples have limits which are too high, I've yet to properly compare but we might need to reduce the limits pulled by the examples.

cwfitzgerald commented 2 years ago

Closing as stale and likely fixed