aardvark-platform / aardvark.docs

Simple examples combining multiple packages provided by the aardvark platform. Each platform repository comes with separate examples -- here we collect overarching examples using for example aardvark.rendering and aardvark.media.
https://aardvarkians.com/
MIT License
108 stars 5 forks source link

Unable to run HelloWorld on Fedora 35 #34

Open tymokvo opened 2 years ago

tymokvo commented 2 years ago

Hello,

I came across Aardvark today and was trying to get started running the HelloWorld program on Linux (Fedora 35). Using either the GL or Vulkan backend fails, however.

I'd be happy to start a PR to update the docs with steps to resolve if someone can point me in the direction of a solution.

GL

 0: initializing aardvark ....................................................
 0:   System Information:
 0:     System:      Linux 5.16.20-200.fc35.x86_64 #1 SMP PREEMPT Wed Apr 13 22:09:20 UTC 2022
 0:     Processor:   8 core x64
 0:     Process:     x64
 0:     Framework:   .NET Core 3.1.24
 0:   Loading plugins ................................................ 0.027 s
 0:   initializing CustomPicklerProvider ............................. 0.018 s
 0:   initializing Constants ......................................... 0.004 s
 0:   initializing PixImageSharp ..................................... 0.021 s
 0: initializing aardvark .................................... [0.05x] 0.160 s
 0: OpenGL 4.6 working
Unhandled exception. System.Exception: GLFW could not create window
   at <StartupCode$Aardvark-Application-Slim>.$GLFW.CreateWindow@646.Invoke(Unit unitVar0)
   at Aardvark.Application.Slim.OpenGlApplication.createContext()
   at <StartupCode$Aardvark-Application-Slim-GL>.$Application.-ctor@319-1.Invoke(Unit arg10@)
   at Aardvark.Rendering.GL.Context..ctor(IRuntime runtime, FSharpFunc`2 createContext)
   at Aardvark.Application.Slim.OpenGlApplication..ctor(Boolean forceNvidia, DebugLevel debug, FSharpOption`1 shaderCachePath)
   at Aardvark.Application.Slim.OpenGlApplication..ctor(Boolean forceNvidia, DebugLevel debug)
   at Aardvark.Application.Utilities.createApplication(RenderConfig cfg)
   at Aardvark.Application.Utilities.createMonoScreen(RenderConfig cfg)
   at Aardvark.Application.Utilities.createWindow(RenderConfig cfg)
   at Aardvark.Application.Utilities.runConfig(RenderConfig cfg)
   at Program.main(String[] argv)

Vulkan

Warning: long stacktrace ahead!

```console Unhandled exception. System.Exception: [Vulkan] could not allocate DescriptorSet (-1000069000) at Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThenFail@1433.Invoke(String message) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\printf.fs:line 1433 at Aardvark.Rendering.Vulkan.Utilities.check(String str, VkResult err) at Aardvark.Rendering.Vulkan.DescriptorSetModule.f@41-158(DescriptorSetLayout layout, DescriptorPool pool, VkDescriptorSetAllocateInfo* pInfo, VkDescriptorSet* pHandle) at Aardvark.Rendering.Vulkan.DescriptorSetModule.f@41-157(DescriptorSetLayout layout, DescriptorPool pool, VkDescriptorSetAllocateInfo* pInfo) at Aardvark.Rendering.Vulkan.DescriptorSetModule.f@41-156(DescriptorSetLayout layout, DescriptorPool pool, VkDescriptorSetLayout* pLayoutHandle) at Aardvark.Rendering.Vulkan.DescriptorSetModule.action@1-45(DescriptorSetLayout layout, DescriptorPool pool, Unit unitVar0) at Aardvark.Rendering.Vulkan.DescriptorSetModule.tryAlloc(DescriptorSetLayout layout, DescriptorPool pool) at .$DescriptorSet.CreateDescriptorSet@325.Invoke(DescriptorSetLayout layout, DescriptorPool pool) at .$DescriptorSet.action@1-42(DescriptorPoolBag x, FSharpFunc`2 tryAllocSet, DescriptorSetLayout layout, Unit unitVar0) at Aardvark.Rendering.Vulkan.DescriptorPoolBag.CreateSet(DescriptorSetLayout layout, FSharpFunc`2 tryAllocSet) at Aardvark.Rendering.Vulkan.ContextDescriptorSetExtensions.CreateDescriptorSet(Device this, DescriptorSetLayout layout) at Aardvark.Rendering.Vulkan.Resources.DescriptorSetResource.GetHandle(AdaptiveToken token, RenderToken renderToken) at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Update(AdaptiveToken token, RenderToken renderToken) at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Aardvark.Rendering.Vulkan.IResourceLocation<'a>.Update(AdaptiveToken t, RenderToken rt) at Aardvark.Rendering.Vulkan.Resources.DescriptorSetBindingResource.Compute(AdaptiveToken token, RenderToken renderToken) at Aardvark.Rendering.Vulkan.AbstractPointerResource`1.GetHandle(AdaptiveToken token, RenderToken renderToken) at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Update(AdaptiveToken token, RenderToken renderToken) at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Aardvark.Rendering.Vulkan.IResourceLocation.Update(AdaptiveToken t, RenderToken rt) at .$ResourceManager.arg20@1974(ResourceLocationReader x, RenderToken renderToken, AdaptiveToken t) at .$ResourceManager.arg10@1-1(ResourceLocationReader x, RenderToken renderToken, AdaptiveToken token) at Aardvark.Rendering.Vulkan.ResourceLocationReader.Update(AdaptiveToken token, RenderToken renderToken) at .$ResourceManager.run@2048-12(ResourceLocationSet x, RenderToken renderToken, AdaptiveToken t, Boolean changed) at .$ResourceManager.arg10@2045-2(ResourceLocationSet x, RenderToken renderToken, AdaptiveToken t) at Aardvark.Rendering.Vulkan.ResourceLocationSet.Update(AdaptiveToken token, RenderToken renderToken) at Aardvark.Rendering.Vulkan.CommandTask.Perform(AdaptiveToken token, RenderToken renderToken, OutputDescription desc) at .$AbstractRenderTask.Run@87-3.Invoke(AdaptiveToken token) at Aardvark.Rendering.AbstractRenderTask.UseValues[a](AdaptiveToken token, OutputDescription output, FSharpFunc`2 f) at .$AbstractRenderTask.arg10@83-9(AbstractRenderTask x, RenderToken renderToken, OutputDescription out, AdaptiveToken token) at .$AbstractRenderTask.action@1-47(AbstractRenderTask x, AdaptiveToken token, RenderToken renderToken, OutputDescription out, Unit _arg1) at Aardvark.Rendering.AbstractRenderTask.Run(AdaptiveToken token, RenderToken renderToken, OutputDescription out) at Aardvark.Rendering.AbstractRenderTask.Aardvark.Rendering.IRenderTask.Run(AdaptiveToken token, RenderToken renderToken, OutputDescription out) at Aardvark.Application.Slim.Vulkan.createSurface@56-2.Invoke(Framebuffer fbo) at .$Swapchain.f@248-223(Swapchain x, FSharpFunc`2 render, TokenCommandBuilder builder@, Framebuffer framebuffer, ImageView colorView, FSharpRef`1 currentImage, FSharpRef`1 backbuffer, Unit _arg7) at .$Swapchain.f@248-222(Swapchain x, FSharpFunc`2 render, TokenCommandBuilder builder@, Framebuffer framebuffer, ImageView colorView, FSharpOption`1 depthView, FSharpRef`1 currentImage, FSharpRef`1 backbuffer, Unit _arg5) at .$Swapchain.RenderFrame@223-1.Invoke(Unit unitVar) at Aardvark.Rendering.Vulkan.CommandAPI.TokenCommandBuilder.Run[a](FSharpFunc`2 f) at .$Swapchain.action@1-52(Swapchain x, FSharpFunc`2 render, Unit unitVar0) at Aardvark.Rendering.Vulkan.Swapchain.RenderFrame(FSharpFunc`2 render) at Aardvark.Glfw.Window.Redraw() at Aardvark.Glfw.Application.Run(Window[] ws) at Aardvark.Glfw.Window.Run() at Aardvark.Glfw.Window.Aardvark.Application.IRenderWindow.Run() at Aardvark.Application.Utilities.SimpleRenderWindow.Run(FSharpOption`1 preventDisposal) at Program.main(String[] argv) ```
krauthaufen commented 2 years ago

Hey, glad to see you here, we never actually had aardvark running on Fedora yet, so some issues were to be expected sadly.

The OpenGL problem looks pretty weird to me since the OpenGL 4.6 working print already created a hidden window to determine whether or not that works. It may be related to some particular window-hint we use. Sadly these things tend to be pretty involved, but you could try removing window-hints until something works (in Aardvark.Application.Slim.GL)

The vulkan problem could possibly be related to the use of a different UI framework but essentially we just use GLFWs functionality for vulkan interop. Could you share the log output prior to the error?

Maybe I can install Fedora on one of my machines, but sadly I'm quite busy at the Moment. Maybe @hyazinthh has some more ideas what happens here, he always keeps things running on linux.

haraldsteinlechner commented 2 years ago

strange, i have never seen glfw to fail except for headless scenarios. do vulkaninfo or glxinfo/glxgears work?

tymokvo commented 2 years ago

vulkaninfo works, but there are a lot of features set to false.

Here is the (long) log output from running with the Vulkan backend:

``` MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0 0: Multiple GPUs detected (please select one) 0: 0: Intel Corporation Intel(R) Xe Graphics (TGL GT2) 0: 1: Unknown llvmpipe (LLVM 13.0.0, 256 bits) 0: 0 0: instance: 0: layers: 0: VK_LAYER_MESA_device_select (v1.2.73) ( ) 0: extensions: 0: VK_KHR_device_group_creation (v0.0.1) ( ) 0: VK_KHR_display (v0.0.23) ( ) 0: VK_KHR_external_fence_capabilities (v0.0.1) ( ) 0: VK_KHR_external_memory_capabilities (v0.0.1) ( ) 0: VK_KHR_external_semaphore_capabilities (v0.0.1) ( ) 0: VK_KHR_get_display_properties2 (v0.0.1) ( ) 0: VK_KHR_get_physical_device_properties2 (v0.0.2) (X) 0: VK_KHR_get_surface_capabilities2 (v0.0.1) ( ) 0: VK_KHR_surface (v0.0.25) (X) 0: VK_KHR_surface_protected_capabilities (v0.0.1) ( ) 0: VK_KHR_wayland_surface (v0.0.6) (X) 0: VK_KHR_xcb_surface (v0.0.6) (X) 0: VK_KHR_xlib_surface (v0.0.6) (X) 0: VK_EXT_acquire_drm_display (v0.0.1) ( ) 0: VK_EXT_acquire_xlib_display (v0.0.1) ( ) 0: VK_EXT_debug_report (v0.0.10) ( ) 0: VK_EXT_direct_mode_display (v0.0.1) ( ) 0: VK_EXT_display_surface_counter (v0.0.1) ( ) 0: VK_EXT_debug_utils (v0.0.2) ( ) 0: devices: 0: 0: 0: CHOSEN DEVICE 0: type: IntegratedGpu 0: vendor: Intel Corporation 0: name: Intel(R) Xe Graphics (TGL GT2) 0: version: 1.2.195 0: driver: 21.3.8 0: layers: 0: VK_LAYER_MESA_device_select (v1.2.73) 0: extensions: 0: VK_KHR_8bit_storage (v0.0.1) 0: VK_KHR_16bit_storage (v0.0.1) 0: VK_KHR_bind_memory2 (v0.0.1) 0: VK_KHR_buffer_device_address (v0.0.1) 0: VK_KHR_copy_commands2 (v0.0.1) 0: VK_KHR_create_renderpass2 (v0.0.1) 0: VK_KHR_dedicated_allocation (v0.0.3) 0: VK_KHR_deferred_host_operations (v0.0.4) 0: VK_KHR_depth_stencil_resolve (v0.0.1) 0: VK_KHR_descriptor_update_template (v0.0.1) 0: VK_KHR_device_group (v0.0.4) 0: VK_KHR_draw_indirect_count (v0.0.1) 0: VK_KHR_driver_properties (v0.0.1) 0: VK_KHR_external_fence (v0.0.1) 0: VK_KHR_external_fence_fd (v0.0.1) 0: VK_KHR_external_memory (v0.0.1) 0: VK_KHR_external_memory_fd (v0.0.1) 0: VK_KHR_external_semaphore (v0.0.1) 0: VK_KHR_external_semaphore_fd (v0.0.1) 0: VK_KHR_format_feature_flags2 (v0.0.1) 0: VK_KHR_fragment_shading_rate (v0.0.2) 0: VK_KHR_get_memory_requirements2 (v0.0.1) 0: VK_KHR_image_format_list (v0.0.1) 0: VK_KHR_imageless_framebuffer (v0.0.1) 0: VK_KHR_incremental_present (v0.0.2) 0: VK_KHR_maintenance1 (v0.0.2) 0: VK_KHR_maintenance2 (v0.0.1) 0: VK_KHR_maintenance3 (v0.0.1) 0: VK_KHR_maintenance4 (v0.0.1) 0: VK_KHR_multiview (v0.0.1) 0: VK_KHR_pipeline_executable_properties (v0.0.1) 0: VK_KHR_push_descriptor (v0.0.2) 0: VK_KHR_relaxed_block_layout (v0.0.1) 0: VK_KHR_sampler_mirror_clamp_to_edge (v0.0.3) 0: VK_KHR_sampler_ycbcr_conversion (v0.0.14) 0: VK_KHR_separate_depth_stencil_layouts (v0.0.1) 0: VK_KHR_shader_atomic_int64 (v0.0.1) 0: VK_KHR_shader_clock (v0.0.1) 0: VK_KHR_shader_draw_parameters (v0.0.1) 0: VK_KHR_shader_float16_int8 (v0.0.1) 0: VK_KHR_shader_float_controls (v0.0.4) 0: VK_KHR_shader_integer_dot_product (v0.0.1) 0: VK_KHR_shader_non_semantic_info (v0.0.1) 0: VK_KHR_shader_subgroup_extended_types (v0.0.1) 0: VK_KHR_shader_subgroup_uniform_control_flow (v0.0.1) 0: VK_KHR_shader_terminate_invocation (v0.0.1) 0: VK_KHR_spirv_1_4 (v0.0.1) 0: VK_KHR_storage_buffer_storage_class (v0.0.1) 0: VK_KHR_swapchain (v0.0.70) 0: VK_KHR_swapchain_mutable_format (v0.0.1) 0: VK_KHR_synchronization2 (v0.0.1) 0: VK_KHR_timeline_semaphore (v0.0.2) 0: VK_KHR_uniform_buffer_standard_layout (v0.0.1) 0: VK_KHR_variable_pointers (v0.0.1) 0: VK_KHR_vulkan_memory_model (v0.0.3) 0: VK_KHR_workgroup_memory_explicit_layout (v0.0.1) 0: VK_KHR_zero_initialize_workgroup_memory (v0.0.1) 0: VK_EXT_4444_formats (v0.0.1) 0: VK_EXT_buffer_device_address (v0.0.2) 0: VK_EXT_calibrated_timestamps (v0.0.2) 0: VK_EXT_color_write_enable (v0.0.1) 0: VK_EXT_conditional_rendering (v0.0.2) 0: VK_EXT_conservative_rasterization (v0.0.1) 0: VK_EXT_custom_border_color (v0.0.12) 0: VK_EXT_depth_clip_enable (v0.0.1) 0: VK_EXT_descriptor_indexing (v0.0.2) 0: VK_EXT_display_control (v0.0.1) 0: VK_EXT_extended_dynamic_state (v0.0.1) 0: VK_EXT_extended_dynamic_state2 (v0.0.1) 0: VK_EXT_external_memory_dma_buf (v0.0.1) 0: VK_EXT_external_memory_host (v0.0.1) 0: VK_EXT_fragment_shader_interlock (v0.0.1) 0: VK_EXT_global_priority (v0.0.2) 0: VK_EXT_host_query_reset (v0.0.1) 0: VK_EXT_image_drm_format_modifier (v0.0.2) 0: VK_EXT_image_robustness (v0.0.1) 0: VK_EXT_index_type_uint8 (v0.0.1) 0: VK_EXT_inline_uniform_block (v0.0.1) 0: VK_EXT_line_rasterization (v0.0.1) 0: VK_EXT_memory_budget (v0.0.1) 0: VK_EXT_multi_draw (v0.0.1) 0: VK_EXT_pci_bus_info (v0.0.2) 0: VK_EXT_physical_device_drm (v0.0.1) 0: VK_EXT_pipeline_creation_cache_control (v0.0.3) 0: VK_EXT_pipeline_creation_feedback (v0.0.1) 0: VK_EXT_post_depth_coverage (v0.0.1) 0: VK_EXT_primitive_topology_list_restart (v0.0.1) 0: VK_EXT_private_data (v0.0.1) 0: VK_EXT_provoking_vertex (v0.0.1) 0: VK_EXT_queue_family_foreign (v0.0.1) 0: VK_EXT_robustness2 (v0.0.1) 0: VK_EXT_sample_locations (v0.0.1) 0: VK_EXT_sampler_filter_minmax (v0.0.2) 0: VK_EXT_scalar_block_layout (v0.0.1) 0: VK_EXT_separate_stencil_usage (v0.0.1) 0: VK_EXT_shader_atomic_float (v0.0.1) 0: VK_EXT_shader_atomic_float2 (v0.0.1) 0: VK_EXT_shader_demote_to_helper_invocation (v0.0.1) 0: VK_EXT_shader_stencil_export (v0.0.1) 0: VK_EXT_shader_subgroup_ballot (v0.0.1) 0: VK_EXT_shader_subgroup_vote (v0.0.1) 0: VK_EXT_shader_viewport_index_layer (v0.0.1) 0: VK_EXT_subgroup_size_control (v0.0.2) 0: VK_EXT_texel_buffer_alignment (v0.0.1) 0: VK_EXT_transform_feedback (v0.0.1) 0: VK_EXT_vertex_attribute_divisor (v0.0.3) 0: VK_EXT_ycbcr_image_arrays (v0.0.1) 0: VK_GOOGLE_decorate_string (v0.0.1) 0: VK_GOOGLE_hlsl_functionality1 (v0.0.1) 0: VK_GOOGLE_user_type (v0.0.1) 0: VK_INTEL_shader_integer_functions2 (v0.0.1) 0: VK_NV_compute_shader_derivatives (v0.0.1) 0: features: 0: memory: 0: robust buffer access: true 0: sparse binding: false 0: sparse buffers: false 0: sparse 2D images: false 0: sparse 2D images (2x): false 0: sparse 2D images (4x): false 0: sparse 2D images (8x): false 0: sparse 2D images (16x): false 0: sparse 3D images: false 0: sparse aliased data: false 0: protected memory: false 0: buffer device address: 0: supported: true 0: capture & replay: true 0: multidevice: false 0: descriptors: 0: update after bind: 0: uniform buffers: true 0: sampled images: true 0: storage images: true 0: storage buffers: true 0: uniform texel buffers: true 0: storage texel buffers: true 0: acceleration structures: false 0: update unused while pending: true 0: partially bound: true 0: variable count: true 0: runtime array: true 0: images: 0: cube arrays: true 0: ETC2 compression: true 0: ASTC LDR compression: true 0: BC compression: true 0: samplers: 0: anisotropy: true 0: ycbcr: true 0: shaders: 0: geometry: true 0: tesselation: true 0: geometry / tesselation point size: true 0: vertex stores / atomics: true 0: fragment stores / atomics: true 0: image gather: true 0: storage images: 0: extended formats: true 0: multisampled: false 0: read without format: false 0: write without format: true 0: dynamic indexing: 0: uniform bufferss: true 0: sampled images: true 0: storage buffers: true 0: storage images: true 0: input attachments: false 0: uniform texel buffers: true 0: storage texel buffers: true 0: non-uniform indexing: 0: uniform buffers: true 0: sampled images: true 0: storage buffers: true 0: storage images: true 0: input attachments: false 0: uniform texel buffers: true 0: storage texel buffers: true 0: 16-bit members: 0: storage buffers: true 0: uniform / storage buffers: true 0: push constants: true 0: input / output: false 0: clip distance: true 0: cull distance: true 0: special types: 0: float64: false 0: int16: true 0: int64: true 0: resources: 0: residency: false 0: min lod: true 0: variable pointers: true 0: variable pointers (storage buffer): true 0: draw parameters: true 0: queries: 0: precise occlusion: true 0: pipeline statistics: true 0: inherited queries: true 0: graphics pipeline: 0: depth: 0: clamping: true 0: bias clamping: true 0: bounds test: true 0: blending: 0: per-attachment: true 0: dual-source: true 0: logic operations: true 0: drawing: 0: full 32-bit indices: true 0: multi draw indirect: true 0: draw indirect first instance: true 0: multiview: 0: multiple viewports: true 0: rasterizer: 0: wide lines: true 0: large points: true 0: non-solid fill mode: true 0: sample rate shading: true 0: alpha to one: true 0: variable multisample rate: true 0: raytracing: 0: pipeline: false 0: ray queries: false 0: shader group handles: 0: capture & replay: false 0: capture & replay (mixed): false 0: trace rays indirect: false 0: ray traversal primitive culling: false 0: acceleration structures: 0: supported: false 0: capture & replay: false 0: indirect build: false 0: host commands: false 0: limits: 0: image: 0: max 1D size: 16384 0: max 2D size: [16384, 16384] 0: max 3D size: [2048, 2048, 2048] 0: max Cube size: [16384, 16384] 0: max layers: 2048 0: sampled image: 0: color samples: [1; 2; 4; 8; 16] 0: integer samples: [1; 2; 4; 8; 16] 0: depth samples: [1; 2; 4; 8; 16] 0: stencil samples: [1; 2; 4; 8; 16] 0: storage samples: [1] 0: sampler: 0: max allocations: 65536 0: max lod bias: 16.0 0: max anisotropy: 16.0 0: uniform: 0: max buffer range: 128.00MiB 0: max storage range: 1.000GiB 0: max texel elements: 134217728 0: max push constants: 128B 0: memory: 0: max allocations: -1 0: max allocation size: 2.000GiB 0: sparse size: 0 0: buffer/image distance: 64 0: map alignment: 4096 0: texel offset align: 16 0: storage offset align: 4 0: buffer/image offset align: 128 0: buffer/image row align: 128 0: non coherent atom size: 64 0: descriptors: 0: max bound sets: 8 0: max samplers: 393210 0: max uniform buffers: 384 0: max dyn-uniform buffers: 8 0: max storage buffers: 393210 0: max dyn-storage buffers: 8 0: max sampled images: 393210 0: max storage images: 393210 0: max input attachments: 256 0: per stage: 0: max samplers: 65535 0: max uniform buffers: 64 0: max storage buffers: 65535 0: max sampled images: 65535 0: max storage images: 65535 0: max input attachments: 64 0: max resources: -1 0: vertex shader: 0: max in attributes: 28 0: max in bindings: 28 0: max in offset: 2047 0: max in stride: 2048 0: max out components: 128 0: tessellation shader: 0: max gen level: 64 0: max patch size: 32 0: control: 0: max vertex in components: 128 0: max vertex out components: 128 0: max patch out components: 128 0: max total out components: 2048 0: evaluation: 0: max in components: 128 0: max out components: 128 0: geometry shader: 0: max invocations: 32 0: max out vertices: 256 0: max in components: 128 0: max out components: 0: per vertex: 128 0: total: 1024 0: fragment shader: 0: max in components: 116 0: max out attachments: 8 0: max src1 attachments: 1 0: max out resources: 8 0: max sample masks: 1 0: shader sampling: 0: max clip distances: 8 0: max cull distances: 8 0: max clip/cull distances: 8 0: subpixel offset bits: 4 0: texel offset: [-8 .. 7] 0: texel grather offset: [-32 .. 31] 0: interpolation offset: [-0.500000 .. 0.437500] 0: compute shader: 0: shared memory: 64.0KiB 0: max group counts: [65535, 65535, 65535] 0: max group invocations: 2048 0: max group size: [2048, 2048, 2048] 0: precision: 0: subpixel bits: 8 0: subtexel bits: 8 0: mipmap bits: 8 0: timestamps: true 0: timestamp period: 52.083ns 0: queue priorities: 2 0: draw: 0: max index value: 4294967295 0: max indirect count: 4294967295 0: framebuffer: 0: max size: [16384, 16384] 0: max layers: 2048 0: max colors: 8 0: samples: 0: color: set [1; 2; 4; 8; 16] 0: depth: set [1; 2; 4; 8; 16] 0: stencil: set [1; 2; 4; 8; 16] 0: empty: set [1; 2; 4; 8; 16] 0: viewports: 0: max count: 16 0: max size: [16384, 16384] 0: bounds: [[-32768, -32768], [32767, 32767]] 0: subpixel bits: 13 0: rasterizer: 0: point size: [0.125000 .. 0.125000 .. 255.875000] 0: line width: [0.000000 .. 0.007812 .. 7.992188] 0: strict lines: false 0: standard samples: true 0: heaps: 0: 0: 46.943GiB (device local) 0: memories: 0: 0: DeviceLocal, HostVisible, HostCoherent, HostCached (heap: 0) 0: queues: 0: 0: 0: capabilities: compute, graphics, transfer 0: count: 1 0: timestamp bits: 36 0: img transfer: [1, 1, 1] 0: device: Intel Corporation Intel(R) Xe Graphics (TGL GT2) 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_surface' since it is not available 0: [Vulkan] enabled extension "vk_khr_swapchain" 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_wayland_surface' since it is not available 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_xcb_surface' since it is not available 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_xlib_surface' since it is not available 0: [Vulkan] enabled extension "vk_ext_shader_subgroup_vote" 0: [Vulkan] enabled extension "vk_ext_shader_subgroup_ballot" 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_get_physical_device_properties2' since it is not available 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_ray_tracing_pipeline' since it is not available 0: WARNING: [Vulkan] could not enable device-extension 'vk_khr_acceleration_structure' since it is not available 0: [Vulkan] enabled extension "vk_khr_buffer_device_address" 0: [Vulkan] enabled extension "vk_khr_deferred_host_operations" 0: [Vulkan] enabled extension "vk_ext_descriptor_indexing" 0: [Vulkan] enabled extension "vk_khr_spirv_1_4" 0: [Vulkan] enabled extension "vk_khr_shader_float_controls" 0: realloc 28.0KiB -> 56.0KiB 0: realloc 56.0KiB -> 112.0KiB 0: realloc 112.0KiB -> 224.0KiB 0: realloc 224.0KiB -> 448.0KiB 0: realloc 448.0KiB -> 896.0KiB 0: realloc 896.0KiB -> 1.75MiB 0: realloc 1.75MiB -> 3.50MiB 0: WARNING: [Vulkan] renderpass order BackToFront not implemented 0: [Vulkan] using 1 descriptor pools 0: ERROR: [Vulkan] could not allocate DescriptorSet (-1000069000) ```

glxinfo and glxgears both work.

I'm also running on X11 if that matters.

hyazinthh commented 2 years ago

The GL issue should be fixed now.

tymokvo commented 2 years ago

Awesome! I looked into trying it, but I don't know paket very well and haven't been able to figure out how to use the Aardvark.Rendering git repo as the package source for the demo since it looks like the nuget package isn't updated with that patch yet.

hyazinthh commented 2 years ago

We released new packages (5.2.8) which contain the fix, please let us know if this resolves the GL issue for you.

tymokvo commented 2 years ago

I updated the packages with paket update, ran HelloWorld (which got a bit further!) but got a new error:

 0: initializing aardvark ....................................................
 0:   System Information:
 0:     System:      Linux 5.18.13-100.fc35.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 22 14:20:24 UTC 2022
 0:     Processor:   8 core x64
 0:     Process:     x64
 0:     Framework:   .NET Core 3.1.27
 0:   Loading plugins ........................................................
 0:     WARNING: [LoadPlugins] could not load plugins: Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

 0:   Loading plugins ................................................ 0.050 s
 0:   initializing CustomPicklerProvider ............................. 0.678 s
 0:   initializing Constants ......................................... 0.014 s
 0:   initializing PixImageSharp ..................................... 0.042 s
 0: initializing aardvark .................................... [0.60x] 2.791 s
 0: OpenGL 4.6 working
 0: initializing OpenGL runtime ..............................................
 0:   vendor:   "Intel"
 0:   renderer: "Mesa Intel(R) Xe Graphics (TGL GT2)"
 0:   version:  OpenGL 4.6.0 / GLSL 4.6.0  Core
 0: initializing OpenGL runtime ...................................... 0.235 s
Unhandled exception. System.Exception: mprotect failed
   at Aardvark.Base.ExecutableMemory.alloc(IntPtr size)
   at Aardvark.Rendering.Management.MemoryManager`1..ctor(Memory`1 mem, IntPtr initialCapacity)
   at Aardvark.Rendering.GL.ChangeableProgram.FragmentProgram..ctor()
   at Aardvark.Rendering.GL.Command.arg20@1265-1(Command x, CompilerInfo info, AdaptiveToken token)
   at Aardvark.Rendering.GL.Command.Command.Update(AdaptiveToken token, CompilerInfo info)
   at Aardvark.Rendering.GL.RenderTasks.NewRenderTask.ProcessDeltas(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.GL.RenderTasks.AbstractOpenGlRenderTask.Perform(AdaptiveToken token, RenderToken renderToken, OutputDescription desc)
   at <StartupCode$Aardvark-Rendering>.$AbstractRenderTask.Run@87-3.Invoke(AdaptiveToken token)
   at Aardvark.Rendering.AbstractRenderTask.UseValues[a](AdaptiveToken token, OutputDescription output, FSharpFunc`2 f)
   at <StartupCode$Aardvark-Rendering>.$AbstractRenderTask.arg10@83-9(AbstractRenderTask x, RenderToken renderToken, OutputDescription out, AdaptiveToken token)
   at <StartupCode$Aardvark-Rendering>.$AbstractRenderTask.action@1-47(AbstractRenderTask x, AdaptiveToken token, RenderToken renderToken, OutputDescription out, Unit _arg1)
   at Aardvark.Rendering.AbstractRenderTask.Run(AdaptiveToken token, RenderToken renderToken, OutputDescription out)
   at Aardvark.Rendering.AbstractRenderTask.Aardvark.Rendering.IRenderTask.Run(AdaptiveToken token, RenderToken renderToken, OutputDescription out)
   at Aardvark.Application.Slim.OpenGL.createSwapchain@210-1.Invoke(RenderingLockDisposable _arg2)
   at Microsoft.FSharp.Core.Operators.Using[T,TResult](T resource, FSharpFunc`2 action) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\prim-types.fs:line 4750
   at Aardvark.Application.Slim.OpenGL.createSwapchain@206.Aardvark.Glfw.ISwapchain.Run(IRenderTask task, IQuery query)
   at Aardvark.Glfw.Window.Redraw()
   at Aardvark.Glfw.Application.Run(Window[] ws)
   at Aardvark.Glfw.Window.Run()
   at Aardvark.Glfw.Window.Aardvark.Application.IRenderWindow.Run()
   at Aardvark.Application.Utilities.SimpleRenderWindow.Run(FSharpOption`1 preventDisposal)
   at Program.main(String[] argv)
krauthaufen commented 2 years ago

Hey, we never tested it on a fedora, but I think we're not too far away from seeing something. You could for the moment try to use the vulkan backend since it doesn't need that particular feature.

If you want to help us out you could try to run the tests/demo in https://github.com/aardvark-community/aardvark.assembler and see if those crash too

tymokvo commented 2 years ago

Will do! I actually tried Vulkan too and it also crashed. But, figured it was easier to focus on one code path at a time.

stefanmaierhofer commented 2 years ago

Maybe nothing, but the log says

Framework: .NET Core 3.1.27

and then it tries to load net5.0 assembly

Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0,

Could this just be some package dependency/resolve problem?

@tymokvo If you let paket resolve everything from scratch in your project, does this change anything? E.g.

cd <your-project>
git clean -dxf
rm paket.lock
dotnet paket install
./build.sh
stefanmaierhofer commented 2 years ago

... or, alternatively, is it possible to up upgrade your project to net6.0?

tymokvo commented 2 years ago

I'll give it a go!

krauthaufen commented 2 years ago

I did a little research and it may be that fedora prohibts executable&writable memory. We've had a similar issue on Mac M1, so I 'll setup a VM and test that once I have the time. However if the Aardvark.Assembler demo/tests run without crashing my theory is wrong

tymokvo commented 2 years ago

I ran the Aardvark.Assembler tests (just with dotnet test in the root of the repo, if that's the right way) and got all greens.

Running the demo (with dotnet run -c Release src/Demo/Demo.fsproj) failed with a similar mprotect failed error:

 0: initializing aardvark ....................................................
 0:   System Information:
 0:     System:      Linux 5.18.13-100.fc35.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 22 14:20:24 UTC 2022
 0:     Processor:   8 core x64
 0:     Process:     x64
 0:     Framework:   .NET 6.0.6
 0:   Loading plugins ................................................ 0.109 s
 0:   initializing CustomPicklerProvider ............................. 0.283 s
 0:   initializing Constants ......................................... 0.014 s
 0: initializing aardvark .................................... [0.20x] 0.619 s
Unhandled exception. System.Exception: mprotect failed
   at Aardvark.Base.ExecutableMemory.alloc(IntPtr size)
   at <StartupCode$Aardvark-Assembler>.$FragmentProgram.-cctor@28.Invoke(IntPtr size)
   at Aardvark.Base.MemoryManager..ctor(IntPtr capacity, MemoryManagerConfig config)
   at Aardvark.Assembler.FragmentProgram`1..ctor(Boolean differential, FSharpFunc`2 compile)
krauthaufen commented 2 years ago

Thanks for trying, so I guess I won't get around setting up a fedora VM to fix this. Thankfully it happens without any GPU involvement s.t. i don't need a native machine...

I will pursue the issue when I have a little time left and will get back to you. (Might be a few days)

The fix should be fairly easy if my suspicions are confirmed...

krauthaufen commented 2 years ago

Hey, I had a little time today and may have a potential fix. There's a branch here called fedora-bug which might work (updated packages).

Please test!

krauthaufen commented 2 years ago

I tested it on my native Manjaro (Arch) machine and it worked, the old version crashed just like yours (however i had to upgrade the projects to net6.0)

tymokvo commented 2 years ago

Awesome, will do! How do I upgrade them to net6.0? Just change the TargetFramework in the .fsproj?

tymokvo commented 2 years ago

Awesome, the patch on fedora-bug works, thank you! And even when using the netcoreapp3.1 build.

I added the output here in case it is useful at all. It still has the warning about System.Reflection.Metadata 5.0.0.0 that @stefanmaierhofer pointed out, but it doesn't seem to be an issue.

```console 0: initializing aardvark .................................................... 0: System Information: 0: System: Linux 5.18.13-100.fc35.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 22 14:20:24 UTC 2022 0: Processor: 8 core x64 0: Process: x64 0: Framework: .NET Core 3.1.27 0: Loading plugins ........................................................ 0: WARNING: [LoadPlugins] could not load plugins: Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. 0: Loading plugins ................................................ 0.046 s 0: initializing CustomPicklerProvider ............................. 0.628 s 0: initializing Constants ......................................... 0.014 s 0: initializing PixImageSharp ..................................... 0.043 s 0: initializing aardvark .................................... [0.69x] 3.108 s 0: OpenGL 4.6 working 0: initializing OpenGL runtime .............................................. 0: vendor: "Intel" 0: renderer: "Mesa Intel(R) Xe Graphics (TGL GT2)" 0: version: OpenGL 4.6.0 / GLSL 4.6.0 Core 0: initializing OpenGL runtime ...................................... 0.215 s 0: Compiling shader: 1: #version 460 2: #define __SHADER_STAGE__ 3: 4: 5: 6: 7: layout(std140, binding = 0) 8: uniform PerLight 9: { 10: vec3 LightLocation; 11: }; 12: 13: layout(std140, binding = 1) 14: uniform PerModel 15: { 16: mat4x4 ModelTrafo; 17: mat4x4 ModelTrafoInv; 18: }; 19: 20: layout(std140, binding = 2) 21: uniform PerView 22: { 23: mat4x4 ViewProjTrafo; 24: }; 25: 26: 27: #ifdef Vertex 28: 29: layout(location = 0) in vec4 Colors; 30: layout(location = 1) in vec3 Normals; 31: layout(location = 2) in vec4 Positions; 32: layout(location = 0) out vec4 fs_Colors; 33: layout(location = 1) out vec3 fs_Normals; 34: layout(location = 2) out vec4 fs_WorldPosition; 35: void main() 36: { 37: vec4 wp = (Positions * ModelTrafo); 38: fs_Colors = Colors; 39: fs_Normals = (ModelTrafoInv * vec4(Normals, 0.0)).xyz; 40: gl_Position = (wp * ViewProjTrafo); 41: fs_WorldPosition = wp; 42: } 43: 44: #endif 45: 46: 47: 48: #ifdef Fragment 49: 50: layout(location = 0) in vec4 fs_Colors; 51: layout(location = 1) in vec3 fs_Normals; 52: layout(location = 2) in vec4 fs_WorldPosition; 53: layout(location = 0) out vec4 ColorsOut; 54: void main() 55: { 56: ColorsOut = vec4((fs_Colors.xyz * abs(dot(normalize((LightLocation - fs_WorldPosition.xyz)), normalize(fs_Normals)))), fs_Colors.w); 57: } 58: 59: #endif 0: Compiling shader: 1: #version 460 2: #define __SHADER_STAGE__ 3: 4: 5: 6: 7: layout(std140, binding = 0) 8: uniform Global 9: { 10: float DepthBias; 11: bool FillGlyphs; 12: }; 13: 14: layout(std140, binding = 1) 15: uniform PerModel 16: { 17: mat4x4 ModelViewTrafo; 18: }; 19: 20: layout(std140, binding = 2) 21: uniform PerView 22: { 23: mat4x4 ProjTrafo; 24: }; 25: 26: 27: #ifdef Vertex 28: 29: layout(location = 0) in vec4 KLMKind; 30: layout(location = 1) in vec4 PathColor; 31: layout(location = 2) in vec4 Positions; 32: layout(location = 3) in vec4 ShapeTrafoR0; 33: layout(location = 4) in vec4 ShapeTrafoR1; 34: layout(location = 0) sample out vec4 fs_KLMKind; 35: layout(location = 1) out vec4 fs_PathColor; 36: void main() 37: { 38: vec4 p = vec4(0.0, 0.0, 0.0, 0.0); 39: vec2 pm = vec2(dot(ShapeTrafoR0.xyz, vec3(Positions.xy, 1.0)), dot(ShapeTrafoR1.xyz, vec3(Positions.xy, 1.0))); 40: if((ShapeTrafoR0.w < 0.0)) 41: { 42: if(((((abs(ProjTrafo[3][0]) < 1E-05) && (abs(ProjTrafo[3][1]) < 1E-05)) && (abs(ProjTrafo[3][2]) < 1E-05)) ? (ModelViewTrafo[0][0] > 0.0) : (dot(vec3(ModelViewTrafo[0][3], ModelViewTrafo[1][3], ModelViewTrafo[2][3]), vec3(ModelViewTrafo[0][2], ModelViewTrafo[1][2], ModelViewTrafo[2][2])) < 0.0))) 43: { 44: p = (vec4(pm.x, pm.y, Positions.z, Positions.w) * ModelViewTrafo); 45: } 46: else 47: { 48: p = (vec4((-pm.x), pm.y, Positions.z, Positions.w) * ModelViewTrafo); 49: } 50: } 51: else 52: { 53: p = (vec4(pm.x, pm.y, Positions.z, Positions.w) * ModelViewTrafo); 54: } 55: vec4 PositionsC = (p * ProjTrafo); 56: fs_KLMKind = KLMKind; 57: fs_PathColor = PathColor; 58: gl_Position = (PositionsC - vec4(0.0, 0.0, (0.0 * DepthBias), 0.0)); 59: } 60: 61: #endif 62: 63: 64: 65: #ifdef Fragment 66: 67: layout(location = 0) sample in vec4 fs_KLMKind; 68: layout(location = 1) in vec4 fs_PathColor; 69: layout(location = 0) out vec4 ColorsOut; 70: void main() 71: { 72: float kind = (fs_KLMKind.w + (0.001 * gl_SamplePosition.x)); 73: vec4 color = fs_PathColor; 74: if(FillGlyphs) 75: { 76: if(((kind > 1.5) && (kind < 3.5))) 77: { 78: if(((((fs_KLMKind.xyz.x * fs_KLMKind.xyz.x) - fs_KLMKind.xyz.y) * fs_KLMKind.xyz.z) > 0.0)) 79: { 80: discard; 81: } 82: } 83: else 84: { 85: if(((kind > 3.5) && (kind < 5.5))) 86: { 87: if((((((fs_KLMKind.xyz.x * fs_KLMKind.xyz.x) + (fs_KLMKind.xyz.y * fs_KLMKind.xyz.y)) - 1.0) * fs_KLMKind.xyz.z) > 0.0)) 88: { 89: discard; 90: } 91: } 92: else 93: { 94: if((kind > 5.5)) 95: { 96: if(((((fs_KLMKind.xyz.x * fs_KLMKind.xyz.x) * fs_KLMKind.xyz.x) - (fs_KLMKind.xyz.y * fs_KLMKind.xyz.z)) > 0.0)) 97: { 98: discard; 99: } 100: } 101: } 102: } 103: } 104: else 105: { 106: if(((kind > 1.5) && (kind < 3.5))) 107: { 108: color = vec4(1.0, 0.0, 0.0, 1.0); 109: } 110: else 111: { 112: if(((kind > 3.5) && (kind < 5.5))) 113: { 114: color = vec4(0.0, 1.0, 0.0, 1.0); 115: } 116: else 117: { 118: if((kind > 5.5)) 119: { 120: color = vec4(0.0, 0.0, 1.0, 1.0); 121: } 122: } 123: } 124: } 125: ColorsOut = color; 126: } 127: 128: #endif ```
krauthaufen commented 2 years ago

Glad to see something working. I just pushed updated project files (net6.0) with some minor fixes for linux (wrong file-paths, etc.)

tymokvo commented 2 years ago

Nice, that is working well for GL. Vulkan is still an issue though. But the GL performance seems pretty great for the hardware I'm using so that's minor.

 0: WARNING: [Vulkan] renderpass order BackToFront not implemented
 0: [Vulkan] using 1 descriptor pools
 0: ERROR: [Vulkan] could not allocate DescriptorSet (-1000069000)
Unhandled exception. System.Exception: [Vulkan] could not allocate DescriptorSet (-1000069000)
   at Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThenFail@1433.Invoke(String message) in D:\workspace\_work\1\s\src\fsharp\FSharp.Core\printf.fs:line 1433
   at Aardvark.Rendering.Vulkan.Utilities.check(String str, VkResult err)
   at Aardvark.Rendering.Vulkan.DescriptorSetModule.f@41-148(DescriptorSetLayout layout, DescriptorPool pool, VkDescriptorSetAllocateInfo* pInfo, VkDescriptorSet* pHandle)
   at Aardvark.Rendering.Vulkan.DescriptorSetModule.f@41-147(DescriptorSetLayout layout, DescriptorPool pool, VkDescriptorSetAllocateInfo* pInfo)
   at Aardvark.Rendering.Vulkan.DescriptorSetModule.f@41-146(DescriptorSetLayout layout, DescriptorPool pool, VkDescriptorSetLayout* pLayoutHandle)
   at Aardvark.Rendering.Vulkan.DescriptorSetModule.action@1-41(DescriptorSetLayout layout, DescriptorPool pool, Unit unitVar0)
   at Aardvark.Rendering.Vulkan.DescriptorSetModule.tryAlloc(DescriptorSetLayout layout, DescriptorPool pool)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$DescriptorSet.CreateDescriptorSet@325.Invoke(DescriptorSetLayout layout, DescriptorPool pool)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$DescriptorSet.action@1-38(DescriptorPoolBag x, FSharpFunc`2 tryAllocSet, DescriptorSetLayout layout, Unit unitVar0)
   at Aardvark.Rendering.Vulkan.DescriptorPoolBag.CreateSet(DescriptorSetLayout layout, FSharpFunc`2 tryAllocSet)
   at Aardvark.Rendering.Vulkan.ContextDescriptorSetExtensions.CreateDescriptorSet(Device this, DescriptorSetLayout layout)
   at Aardvark.Rendering.Vulkan.Resources.DescriptorSetResource.GetHandle(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Update(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Aardvark.Rendering.Vulkan.IResourceLocation<'a>.Update(AdaptiveToken t, RenderToken rt)
   at Aardvark.Rendering.Vulkan.Resources.DescriptorSetBindingResource.Compute(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.Vulkan.AbstractPointerResource`1.GetHandle(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Update(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.Vulkan.AbstractResourceLocation`1.Aardvark.Rendering.Vulkan.IResourceLocation.Update(AdaptiveToken t, RenderToken rt)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$ResourceManager.arg20@1974(ResourceLocationReader x, RenderToken renderToken, AdaptiveToken t)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$ResourceManager.arg10@1-1(ResourceLocationReader x, RenderToken renderToken, AdaptiveToken token)
   at Aardvark.Rendering.Vulkan.ResourceLocationReader.Update(AdaptiveToken token, RenderToken renderToken)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$ResourceManager.run@2048-12(ResourceLocationSet x, RenderToken renderToken, AdaptiveToken t, Boolean changed)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$ResourceManager.arg10@2045-2(ResourceLocationSet x, RenderToken renderToken, AdaptiveToken t)
   at Aardvark.Rendering.Vulkan.ResourceLocationSet.Update(AdaptiveToken token, RenderToken renderToken)
   at Aardvark.Rendering.Vulkan.CommandTask.Perform(AdaptiveToken token, RenderToken renderToken, OutputDescription desc)
   at <StartupCode$Aardvark-Rendering>.$AbstractRenderTask.Run@87-3.Invoke(AdaptiveToken token)
   at <StartupCode$Aardvark-Rendering>.$AbstractRenderTask.arg10@83-9(AbstractRenderTask x, RenderToken renderToken, OutputDescription out, AdaptiveToken token)
   at <StartupCode$Aardvark-Rendering>.$AbstractRenderTask.action@1-47(AbstractRenderTask x, AdaptiveToken token, RenderToken renderToken, OutputDescription out, Unit _arg1)
   at Aardvark.Rendering.AbstractRenderTask.Run(AdaptiveToken token, RenderToken renderToken, OutputDescription out)
   at Aardvark.Rendering.AbstractRenderTask.Aardvark.Rendering.IRenderTask.Run(AdaptiveToken token, RenderToken renderToken, OutputDescription out)
   at Aardvark.Application.Slim.Vulkan.createSurface@73-2.Invoke(Framebuffer fbo)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$Swapchain.f@248-213(Swapchain x, FSharpFunc`2 render, TokenCommandBuilder builder@, Framebuffer framebuffer, ImageView colorView, FSharpRef`1 currentImage, FSharpRef`1 backbuffer, Unit _arg7)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$Swapchain.f@248-212(Swapchain x, FSharpFunc`2 render, TokenCommandBuilder builder@, Framebuffer framebuffer, ImageView colorView, FSharpOption`1 depthView, FSharpRef`1 currentImage, FSharpRef`1 backbuffer, Unit _arg5)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$Swapchain.RenderFrame@223-1.Invoke(Unit unitVar)
   at Aardvark.Rendering.Vulkan.CommandAPI.TokenCommandBuilder.Run[a](FSharpFunc`2 f)
   at <StartupCode$Aardvark-Rendering-Vulkan>.$Swapchain.action@1-48(Swapchain x, FSharpFunc`2 render, Unit unitVar0)
   at Aardvark.Rendering.Vulkan.Swapchain.RenderFrame(FSharpFunc`2 render)
   at Aardvark.Glfw.Window.Redraw()
   at Aardvark.Glfw.Application.Run(Window[] ws)
   at Aardvark.Glfw.Window.Run()
   at Aardvark.Glfw.Window.Aardvark.Application.IRenderWindow.Run()
   at Aardvark.Application.Utilities.SimpleRenderWindow.Run(FSharpOption`1 preventDisposal)
   at Program.main(String[] argv) 
tymokvo commented 2 years ago

Btw, (this is unrelated but I didn't see another repo in your org to raise this) the https://aardworx.com/ domain seems to have an invalid TLS cert. Both Firefox and curl refuse to connect.

krauthaufen commented 2 years ago

Hey, I'll forward the issue with aardworx.com, but there's a lot of (not so well curated and documented) demos/examples out there at https://github.com/aardvark-platform and https://github.com/aardvark-community

These things are a bit rough around the edges but we're happy to help on discord, github, mail, github, etc

krauthaufen commented 2 years ago

Most recently we published a simple multiplayer game made with aardvark done by two interns (with help of course)

https://github.com/aardvark-community/aardwars

It's not the tidiest code but it uses ELM-style updates for the game-logic, so it's fairly straight-forward (note that packages are not yet properly updated there)

tymokvo commented 2 years ago

Are the patches from the 5.2.9-prerelease0002 library versions present in versions >= 5.2.9? I just tried starting a new dotnet cli project using 5.2.12, but got the mprotect failed error again.

This is what my package reference section looks like:

    <PackageReference Include="Aardvark.Application" Version="5.2.12" />
    <PackageReference Include="Aardvark.Application.Utilities" Version="5.2.12" />
    <PackageReference Include="Aardvark.Rendering" Version="5.2.12" />
    <PackageReference Include="Aardvark.Scenegraph" Version="5.2.12" />
krauthaufen commented 2 years ago

Hey, I'll check that as soon as i have time (maybe some merge problem or i simply forgot to merge it)